Changeset 5383


Ignore:
Timestamp:
08/18/10 15:26:45 (15 years ago)
Author:
Mathieu Morlighem
Message:

Fixed according to new framework

Location:
issm/trunk/src/m/classes/public/parameterization
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/public/parameterization/parametercontrolB.m

    r5359 r5383  
    44%   It is possible to specify the number of steps, values for the
    55%   minimum and maximum values of B, specify a noise dampening, the
    6 %   kind of fit to use or the the optscal.
     6%   kind of cm_responses to use or the the optscal.
    77%   
    88%   Usage:
     
    1111%   Example:
    1212%      md=parametercontrolB(md)
    13 %      md=parametercontrolB(md,'nsteps',20,'cm_noisedmp',10^-15,'fit',0)
     13%      md=parametercontrolB(md,'nsteps',20,'cm_noisedmp',10^-15,'cm_responses',0)
    1414%      md=parametercontrolB(md,'cm_min',10,'cm_max',10^8,'cm_jump',0.99,'maxiter',20)
    1515%      md=parametercontrolB(md,'cm_maxdmp_value',5*10^8,'cm_maxdmp_slope',10^-20,,'cm_mindmp_value',10^7,'cm_mindmp_slope',10^-17)
     
    118118end
    119119
    120 %fit
     120%cm_responses
    121121found=0;
    122 if exist(options,'fit'),
    123         fit=getfieldvalue(options,'fit');
    124         if ~any(fit~=0 & fit~=1 & fit~=2),
    125                 md.fit=repmat(fit(:),md.nsteps,1);
    126                 md.fit(md.nsteps+1:end)=[];
     122if exist(options,'cm_responses'),
     123        cm_responses=getfieldvalue(options,'cm_responses');
     124        if ~any(~ismember(cm_responses,[ SurfaceAbsVelMisfitEnum, SurfaceRelVelMisfitEnum, SurfaceLogVelMisfitEnum, SurfaceLogVxVyMisfitEnum, SurfaceAverageVelMisfitEnum ]));
     125                md.cm_responses=repmat(cm_responses(:),md.nsteps,1);
     126                md.cm_responses(md.nsteps+1:end)=[];
    127127                found=1;
    128128        end
     
    130130if ~found
    131131        third=ceil(md.nsteps/3);
    132         md.fit=[2*ones(third,1);0*ones(third,1);repmat([0;0;2;0],third,1)];
    133         md.fit(md.nsteps+1:end)=[];
     132        md.cm_responses=[...
     133                SurfaceLogVelMisfitEnum*ones(third,1);...
     134                SurfaceAbsVelMisfitEnum*ones(third,1);...
     135                repmat([SurfaceAbsVelMisfitEnum;SurfaceAbsVelMisfitEnum;SurfaceLogVelMisfitEnum;SurfaceAbsVelMisfitEnum],third,1)...
     136                ];
     137        md.cm_responses(md.nsteps+1:end)=[];
    134138end
    135139
  • issm/trunk/src/m/classes/public/parameterization/parametercontroldrag.m

    r5359 r5383  
    44%   It is possible to specify the number of steps, values for the
    55%   minimum and maximum values of the drag, specify a noise dampening, the
    6 %   kind of fit to use or the the optscal.
     6%   kind of cm_responses to use or the the optscal.
    77%   
    88%   Usage:
     
    1111%   Example:
    1212%      md=parametercontroldrag(md)
    13 %      md=parametercontroldrag(md,'nsteps',20,'cm_noisedmp',10^-8,'fit',0)
     13%      md=parametercontroldrag(md,'nsteps',20,'cm_noisedmp',10^-8,'cm_responses',0)
    1414%      md=parametercontroldrag(md,'cm_min',1,'cm_max',150,'cm_jump',0.99,'maxiter',20)
    1515%      md=parametercontroldrag(md,'cm_maxdmp_value',100,'cm_maxdmp_slope',10^-13,,'cm_mindmp_value',10,'cm_mindmp_slope',10^-17)
     
    118118end
    119119
    120 %fit
     120%cm_responses
    121121found=0;
    122 if exist(options,'fit'),
    123         fit=getfieldvalue(options,'fit');
    124         if ~any(fit~=0 & fit~=1 & fit~=2),
    125                 md.fit=repmat(fit(:),md.nsteps,1);
    126                 md.fit(md.nsteps+1:end)=[];
     122if exist(options,'cm_responses'),
     123        cm_responses=getfieldvalue(options,'cm_responses');
     124        if ~any(~ismember(cm_responses,[ SurfaceAbsVelMisfitEnum, SurfaceRelVelMisfitEnum, SurfaceLogVelMisfitEnum, SurfaceLogVxVyMisfitEnum, SurfaceAverageVelMisfitEnum ]));
     125                md.cm_responses=repmat(cm_responses(:),md.nsteps,1);
     126                md.cm_responses(md.nsteps+1:end)=[];
    127127                found=1;
    128128        end
     
    130130if ~found
    131131        third=ceil(md.nsteps/3);
    132         md.fit=[2*ones(third,1);0*ones(third,1);repmat([0;0;2;0],third,1)];
    133         md.fit(md.nsteps+1:end)=[];
     132        md.cm_responses=[...
     133                SurfaceLogVelMisfitEnum*ones(third,1);...
     134                SurfaceAbsVelMisfitEnum*ones(third,1);...
     135                repmat([SurfaceAbsVelMisfitEnum;SurfaceAbsVelMisfitEnum;SurfaceLogVelMisfitEnum;SurfaceAbsVelMisfitEnum],third,1)...
     136                ];
     137        md.cm_responses(md.nsteps+1:end)=[];
    134138end
    135139
Note: See TracChangeset for help on using the changeset viewer.