Changeset 2188


Ignore:
Timestamp:
09/10/09 15:02:06 (16 years ago)
Author:
Eric.Larour
Message:

Added new jump capability to BrentSearch.
Some minor debugging otherwise.

Location:
issm/trunk
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/etc/cluster.rc

    r2110 r2188  
    4747
    4848cluster_name=gemini
    49 cluster_codepath=/workg/acm/larour/issm-1.0/bin
    50 cluster_executionpath=/workg/acm/larour/Testing/Execution
     49cluster_codepath=/workg/edw/larour/issm-2.0/bin
     50cluster_executionpath=/workg/edw/larour/Testing/Execution
    5151
    5252cluster_name=castor
    53 cluster_codepath=/workc/acm/larour/issm-1.0/bin
    54 cluster_executionpath=/workc/acm/larour/Testing/Execution
     53cluster_codepath=/workc/edw/larour/issm-2.0/bin
     54cluster_executionpath=/workc/edw/larour/Testing/Execution
    5555
    5656cluster_name=pollux
    57 cluster_codepath=/workp/acm/larour/issm-1.0/bin
    58 cluster_executionpath=/workp/acm/larour/Testing/Execution
    59 
    60 
     57cluster_codepath=/workp/edw/larour/issm-2.0/bin
     58cluster_executionpath=/workp/edw/larour/Testing/Execution
    6159
    6260end
  • issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp

    r2038 r2188  
    2424
    2525        double* fit=NULL;
     26        double* cmjump=NULL;
    2627        double* optscal=NULL;
    2728        double* maxiter=NULL;
     
    107108                /*Now, recover fit, optscal and maxiter as vectors: */
    108109                IoModelFetchData((void**)&iomodel->fit,NULL,NULL,iomodel_handle,"fit","Matrix","Mat");
     110                IoModelFetchData((void**)&iomodel->cmjump,NULL,NULL,iomodel_handle,"cmjump","Matrix","Mat");
    109111                IoModelFetchData((void**)&iomodel->optscal,NULL,NULL,iomodel_handle,"optscal","Matrix","Mat");
    110112                IoModelFetchData((void**)&iomodel->maxiter,NULL,NULL,iomodel_handle,"maxiter","Matrix","Mat");
     
    113115                param= new Param(count,"fit",DOUBLEVEC);
    114116                param->SetDoubleVec(iomodel->fit,iomodel->nsteps);
     117                parameters->AddObject(param);
     118
     119                count++;
     120                param= new Param(count,"cmjump",DOUBLEVEC);
     121                param->SetDoubleVec(iomodel->cmjump,iomodel->nsteps);
    115122                parameters->AddObject(param);
    116123
     
    126133
    127134                xfree((void**)&iomodel->fit);
     135                xfree((void**)&iomodel->cmjump);
    128136                xfree((void**)&iomodel->optscal);
    129137                xfree((void**)&iomodel->maxiter);
  • issm/trunk/src/c/ModelProcessorx/IoModel.cpp

    r1916 r2188  
    108108        /*!solution parameters: */
    109109        iomodel->fit=NULL;
     110        iomodel->cmjump=NULL;
    110111        iomodel->meanvel=0;
    111112        iomodel->epsvel=0;
     
    238239        xfree((void**)&iomodel->n);
    239240        xfree((void**)&iomodel->fit);
     241        xfree((void**)&iomodel->cmjump);
    240242        xfree((void**)&iomodel->optscal);
    241243        xfree((void**)&iomodel->maxiter);
  • issm/trunk/src/c/ModelProcessorx/IoModel.h

    r1916 r2188  
    107107        /*solution parameters: */
    108108        double* fit;
     109        double* cmjump;
    109110        double  meanvel,epsvel;
    110111        int     artificial_diffusivity;
  • issm/trunk/src/c/objects/OptPars.h

    r46 r2188  
    1111        double xmax;
    1212        double tolerance;
     13        double cmjump;
    1314        int maxiter;
    1415
  • issm/trunk/src/c/parallel/control_core.cpp

    r2000 r2188  
    2929        int     gsize;
    3030        double* maxiter=NULL;
     31        double* cmjump=NULL;
    3132        double  tolx;
    3233        double* param_g=NULL;
     
    5960        model->FindParam(&optscal,"optscal");
    6061        model->FindParam(&maxiter,"maxiter");
     62        model->FindParam(&cmjump,"cmjump");
    6163        model->FindParam(&tolx,"tolx");
    6264        model->FindParam(&mincontrolconstraint,"mincontrolconstraint");
     
    105107                optargs.model=model;
    106108                optargs.param_g=param_g; optargs.grad_g=grad_g_double; optargs.inputs=inputs;optargs.n=n;
    107                 optpars.xmin=0; optpars.xmax=1; optpars.tolerance=tolx; optpars.maxiter=(int)maxiter[n];
     109                optpars.xmin=0; optpars.xmax=1; optpars.tolerance=tolx; optpars.maxiter=(int)maxiter[n];optpars.cmjump=cmjump[n];
    108110                BrentSearch(&search_scalar,J+n,&optpars,&objectivefunctionC,&optargs);
    109111                _printf_("%s\n","      done.");
     
    155157        xfree((void**)&optscal);
    156158        xfree((void**)&maxiter);
     159        xfree((void**)&cmjump);
    157160        VecFree(&new_grad_g); //do not VecFree grad_g and grad_g_old, they point to new_grad_g
    158161        xfree((void**)&grad_g_double);
  • issm/trunk/src/c/shared/Numerics/BrentSearch.cpp

    r2187 r2188  
    3939        double tol1,tol2,seps,tolerance;
    4040        int    maxiter;
     41        double cmjump;
    4142
    4243        /*counters: */
     
    6869
    6970                //test ration between fxmin and fxmax. if < criterion, return
    70                 if((fxmin/fxmax)<cmjump){
     71                if((fxmax/fxmin)<cmjump){
    7172
    7273                        /*Assign output pointers: */
  • issm/trunk/src/m/classes/@model/model.m

    r2110 r2188  
    183183        md.maxcontrolconstraint=0;
    184184        md.fit=[];
     185        md.cmjump=[];
    185186        md.epsvel=0;
    186187        md.meanvel=0;
  • issm/trunk/src/m/classes/@model/setdefaultparameters.m

    r2047 r2188  
    189189md.fit=0*ones(md.nsteps,1);
    190190
     191%cmjump
     192md.cmjump=.7*ones(md.nsteps,1); %30 % decrement.
     193
    191194%minimum velocity to avoid the misfit to be singular
    192195md.epsvel=eps;
  • issm/trunk/src/m/classes/public/display/displaycontrol.m

    r1899 r2188  
    1515        fielddisplay(md,'optscal','scaling factor on gradient direction during optimization, for each optimization step');
    1616        fielddisplay(md,'fit','''absolute: 0'', ''relative: 1'', or ''logarithmic: 2''. default is ''absolute: 0'', for each optimization steps');
     17        fielddisplay(md,'cmjump','decrease threshold for misfit, default is 30%');
    1718        fielddisplay(md,'maxiter','maximum iterations during each optimization step');
    1819        fielddisplay(md,'tolx','minimum tolerance which will stop one optimization search');
  • issm/trunk/src/m/classes/public/extrude.m

    r1996 r2188  
    183183
    184184%increase connectivity if less than 25:
    185 if md.connectivity<25,
    186         md.connectivity=70;
     185if md.connectivity<=25,
     186        md.connectivity=100;
    187187end
    188188
  • issm/trunk/src/m/classes/public/loadresultsfromcluster.m

    r2115 r2188  
    1616        packages{end+1}=[md.name '.qmu.err'];
    1717        packages{end+1}=[md.name '.qmu.out'];
    18         %packages{end+1}='dakota_tabular.dat'; not for now.
     18        if md.qmu_params.tabular_graphics_data==true,
     19                packages{end+1}='dakota_tabular.dat';
     20        end
    1921else
    2022        packages{end+1}=[md.name '.outbin'];
  • issm/trunk/src/m/classes/public/marshall.m

    r1916 r2188  
    101101%Write solution parameters
    102102WriteData(fid,md.fit,'Mat','fit');
     103WriteData(fid,md.cmjump,'Mat','cmjump');
    103104WriteData(fid,md.yts,'Scalar','yts');
    104105WriteData(fid,md.meanvel,'Scalar','meanvel');
  • issm/trunk/src/m/classes/public/plot/plot_manager.m

    r1879 r2188  
    2929                case 'segmentnumbering',
    3030                        plot_segmentnumbering(md,options_structure,width,i);
    31                         return;
    32                 case 'importancefactors',
    33                         plot_qmuimportancefactors(md,options_structure,width,i);
    3431                        return;
    3532                case 'normplot',
  • issm/trunk/src/m/solutions/cielo/control_core.m

    r1845 r2188  
    6363
    6464        displaystring(debug,'\n%s',['      optimizing along gradient direction...']);
    65         [search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,models,inputs,param_g,c(n).grad_g,n,model.parameters.analysis_type,model.parameters.sub_analysis_type);
     65        [search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,models,inputs,param_g,c(n).grad_g,n,model.parameters);
    6666
    6767        displaystring(debug,'\n%s',['      updating parameter using optimized search scalar...']);
  • issm/trunk/src/m/solutions/dakota/dakota_out_parse.m

    r1014 r2188  
    375375
    376376    while ~isempty(fline)
     377                if fline==-1,
     378                        break
     379                end
    377380        [ntokens,tokens]=fltokens(fline);
    378381
     
    403406        while ~isempty(fline) && ...
    404407              ~strncmpi(fline,'Cumulative Distribution Function',32)
    405             [ntokens,tokens]=fltokens(fline);
     408                          if fline==-1,
     409                                  break
     410                          end
     411                          [ntokens,tokens]=fltokens(fline);
    406412            icdf=icdf+1;
    407413            dresp(idresp).cdf(icdf,1)=tokens{1}{ 1};
  • issm/trunk/src/mex/ControlOptimization/ControlOptimization.cpp

    r1810 r2188  
    2828        mxArray* grad_g=NULL;
    2929        mxArray* n=NULL;
     30        int      n_value;
     31        double*  cmjump=NULL;
    3032
    3133        /*Boot module: */
     
    4244        FetchData((void**)&maxiter,NULL,NULL,mxGetField(OPTIONS,0,"MaxIter"),"Integer",NULL);
    4345
     46        /*Parameters: */
     47        FetchData((void**)&cmjump,NULL,NULL,mxGetField(PARAMETERS,0,"cmjump"),"Matrix","Mat");
     48        FetchData((void**)&n_value,NULL,NULL,STEP,"Integer",NULL);
     49
    4450        optargs.function_name=function_name;
    4551        optargs.models=MODELS;
     
    4854        optargs.grad_g=GRADIENT;
    4955        optargs.n=STEP;
    50         optargs.analysis_type=ANALYSIS;
    51         optargs.sub_analysis_type=SUBANALYSIS;
     56        optargs.analysis_type=mxGetField(PARAMETERS,0,"analysis_type");
     57        optargs.sub_analysis_type=mxGetField(PARAMETERS,0,"sub_analysis_type");
    5258
    5359        optpars.xmin=xmin;
     
    5561        optpars.tolerance=tolerance;
    5662        optpars.maxiter=maxiter;
     63        optpars.cmjump=cmjump[n_value-1];
    5764
    5865        BrentSearch(&search_scalar,&J,&optpars,&OptFunc,&optargs);
     
    6471        /*Free ressources: */
    6572        xfree((void**)&function_name);
     73        xfree((void**)&cmjump);
    6674
    6775        /*end module: */
     
    7280{
    7381        _printf_("\n");
    74         _printf_("   usage: [search_scalar J] = %s(function_name,xmin,xmax,options,m,inputs,p_g,grad_g,step,analysis_type,sub_analysis_type)\n",__FUNCT__);
     82        _printf_("   usage: [search_scalar J] = %s(function_name,xmin,xmax,options,m,inputs,p_g,grad_g,step,parameters)\n",__FUNCT__);
    7583        _printf_("\n");
    7684}
  • issm/trunk/src/mex/ControlOptimization/ControlOptimization.h

    r1810 r2188  
    2626#define GRADIENT (mxArray*)prhs[7]
    2727#define STEP (mxArray*)prhs[8]
    28 #define ANALYSIS (mxArray*)prhs[9]
    29 #define SUBANALYSIS (mxArray*)prhs[10]
     28#define PARAMETERS (mxArray*)prhs[9]
    3029
    3130/* serial output macros: */
     
    3736#define NLHS  2
    3837#undef NRHS
    39 #define NRHS  11
     38#define NRHS  10
    4039
    4140
  • issm/trunk/test/Verification/IceSheetIceFrontM2dDakota_25/Square.par

    r2184 r2188  
    5454md.qmu_params.evaluation_concurrency=1;
    5555md.qmu_params.interval_type='forward';
     56md.qmu_params.tabular_graphics_data=true
    5657
    5758md.part=0:1:md.numberofgrids-1;
Note: See TracChangeset for help on using the changeset viewer.