Ignore:
Timestamp:
01/07/15 08:48:32 (10 years ago)
Author:
Mathieu Morlighem
Message:

NEW: merging cost functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/inversion.m

    r18993 r18994  
    136136                        md = checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0);
    137137                        md = checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps 1]);
    138                         md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:507 601:604]);
     138                        md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',supportedcostfunctions());
    139139                        md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
    140140                        md = checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps num_controls]);
     
    227227                        %process cost functions
    228228                        num_cost_functions=size(obj.cost_functions,2);
    229                         data=obj.cost_functions;
    230                         pos=find(obj.cost_functions==101); data(pos)=SurfaceAbsVelMisfitEnum();
    231                         pos=find(obj.cost_functions==102); data(pos)=SurfaceRelVelMisfitEnum();
    232                         pos=find(obj.cost_functions==103); data(pos)=SurfaceLogVelMisfitEnum();
    233                         pos=find(obj.cost_functions==104); data(pos)=SurfaceLogVxVyMisfitEnum();
    234                         pos=find(obj.cost_functions==105); data(pos)=SurfaceAverageVelMisfitEnum();
    235                         pos=find(obj.cost_functions==201); data(pos)=ThicknessAbsMisfitEnum();
    236                         pos=find(obj.cost_functions==501); data(pos)=DragCoefficientAbsGradientEnum();
    237                         pos=find(obj.cost_functions==502); data(pos)=RheologyBbarAbsGradientEnum();
    238                         pos=find(obj.cost_functions==503); data(pos)=ThicknessAbsGradientEnum();
    239                         pos=find(obj.cost_functions==504); data(pos)=ThicknessAlongGradientEnum();
    240                         pos=find(obj.cost_functions==505); data(pos)=ThicknessAcrossGradientEnum();
    241                         pos=find(obj.cost_functions==506); data(pos)=BalancethicknessMisfitEnum();
    242                         pos=find(obj.cost_functions==507); data(pos)=RheologyBAbsGradientEnum();
    243                         pos=find(obj.cost_functions==601); data(pos)=SurfaceAbsMisfitEnum();
     229                        data=marshallcostfunctions(obj.cost_functions);
    244230                        WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
    245231                        WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
Note: See TracChangeset for help on using the changeset viewer.