Changeset 14338


Ignore:
Timestamp:
02/11/13 13:35:10 (12 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added v4 interpolation for pKriging

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp

    r14330 r14338  
    6969                /*partition loop across threads: */
    7070                for(int idx=my_rank;idx<n_interp;idx+=num_procs){
    71                         _pprintLine_("      interpolation progress: "<<setw(6)<<setprecision(2)<<double(idx)/double(n_interp)*100<<"%");
     71                        _pprintLine_("      interpolation progress: "<<setw(6)<<setprecision(2)<<double(idx)/double(n_interp)*100.<<"%");
    7272                        observations->InterpolationKriging(&predictions[idx],&error[idx],x_interp[idx],y_interp[idx],radius,mindata,maxdata,variogram);
    7373                }
     
    8383#endif
    8484        }
     85        else if(strcmp(output,"v4")==0){
     86
     87                /*partition loop across threads: */
     88                for(int idx=my_rank;idx<n_interp;idx+=num_procs){
     89                        _pprintLine_("      interpolation progress: "<<setw(6)<<setprecision(2)<<double(idx)/double(n_interp)*100.<<"%");
     90                        observations->InterpolationV4(&predictions[idx],x_interp[idx],y_interp[idx],radius,mindata,maxdata);
     91                }
     92                _pprintLine_("      interpolation progress: "<<fixed<<setw(6)<<setprecision(2)<<100.<<"%");
     93
     94#ifdef _HAVE_MPI_
     95                double *sumpredictions =xNew<double>(n_interp);
     96                MPI_Allreduce(predictions,sumpredictions,n_interp,MPI_DOUBLE,MPI_SUM,IssmComm::GetComm());
     97                xDelete<double>(predictions); predictions=sumpredictions;
     98#endif
     99        }
    85100        else if(strcmp(output,"nearestneighbor")==0){
    86101
    87102                /*partition loop across threads: */
    88103                for(int idx=my_rank;idx<n_interp;idx+=num_procs){
    89                         _pprintLine_("      interpolation progress: "<<setw(6)<<setprecision(2)<<double(idx)/double(n_interp)*100<<"%");
     104                        _pprintLine_("      interpolation progress: "<<setw(6)<<setprecision(2)<<double(idx)/double(n_interp)*100.<<"%");
    90105                        observations->InterpolationNearestNeighbor(&predictions[idx],x_interp[idx],y_interp[idx],radius);
    91106                }
     
    104119                /*partition loop across threads: */
    105120                for(int idx=my_rank;idx<n_interp;idx+=num_procs){
    106                         _pprintLine_("      interpolation progress: "<<setw(6)<<setprecision(2)<<double(idx)/double(n_interp)*100<<"%");
     121                        _pprintLine_("      interpolation progress: "<<setw(6)<<setprecision(2)<<double(idx)/double(n_interp)*100.<<"%");
    107122                        observations->InterpolationIDW(&predictions[idx],x_interp[idx],y_interp[idx],radius,mindata,maxdata,power);
    108123                }
Note: See TracChangeset for help on using the changeset viewer.