Ignore:
Timestamp:
01/26/15 18:40:38 (10 years ago)
Author:
Mathieu Morlighem
Message:

CHG: renmaned obj -> self to look like python

File:
1 edited

Legend:

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

    r18994 r19040  
    2727        end
    2828        methods
    29                 function obj = m1qn3inversion(varargin) % {{{
     29                function self = m1qn3inversion(varargin) % {{{
    3030                        switch nargin
    3131                                case 0
    32                                         obj=setdefaultparameters(obj);
     32                                        self=setdefaultparameters(self);
    3333                                case 1
    34                                         obj=structtoobj(m1qn3inversion(),varargin{1});
     34                                        self=structtoobj(m1qn3inversion(),varargin{1});
    3535                                otherwise
    3636                                        error('constructor not supported');
     
    6161
    6262                end % }}}
    63                 function md = checkconsistency(obj,md,solution,analyses) % {{{
     63                function md = checkconsistency(self,md,solution,analyses) % {{{
    6464
    6565                        %Early return
    66                         if ~obj.iscontrol, return; end
     66                        if ~self.iscontrol, return; end
    6767
    6868                        if ~IssmConfig('_HAVE_M1QN3_'),
     
    9797                        end
    9898                end % }}}
    99                 function disp(obj) % {{{
     99                function disp(self) % {{{
    100100                        disp(sprintf('   m1qn3inversion parameters:'));
    101                         fielddisplay(obj,'iscontrol','is inversion activated?');
    102                         fielddisplay(obj,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity');
    103                         fielddisplay(obj,'control_parameters','ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}');
    104                         fielddisplay(obj,'control_scaling_factors','order of magnitude of each control (useful for multi-parameter optimization)');
    105                         fielddisplay(obj,'maxsteps','maximum number of iterations (gradient computation)');
    106                         fielddisplay(obj,'maxiter','maximum number of Function evaluation (forward run)');
    107                         fielddisplay(obj,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical');
    108                         fielddisplay(obj,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)');
    109                         fielddisplay(obj,'cost_functions','indicate the type of response for each optimization step');
    110                         fielddisplay(obj,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter');
    111                         fielddisplay(obj,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex');
    112                         fielddisplay(obj,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex');
    113                         fielddisplay(obj,'vx_obs','observed velocity x component [m/yr]');
    114                         fielddisplay(obj,'vy_obs','observed velocity y component [m/yr]');
    115                         fielddisplay(obj,'vel_obs','observed velocity magnitude [m/yr]');
    116                         fielddisplay(obj,'thickness_obs','observed thickness [m]');
    117                         fielddisplay(obj,'surface_obs','observed surface elevation [m]');
     101                        fielddisplay(self,'iscontrol','is inversion activated?');
     102                        fielddisplay(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity');
     103                        fielddisplay(self,'control_parameters','ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}');
     104                        fielddisplay(self,'control_scaling_factors','order of magnitude of each control (useful for multi-parameter optimization)');
     105                        fielddisplay(self,'maxsteps','maximum number of iterations (gradient computation)');
     106                        fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)');
     107                        fielddisplay(self,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical');
     108                        fielddisplay(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)');
     109                        fielddisplay(self,'cost_functions','indicate the type of response for each optimization step');
     110                        fielddisplay(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter');
     111                        fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex');
     112                        fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex');
     113                        fielddisplay(self,'vx_obs','observed velocity x component [m/yr]');
     114                        fielddisplay(self,'vy_obs','observed velocity y component [m/yr]');
     115                        fielddisplay(self,'vel_obs','observed velocity magnitude [m/yr]');
     116                        fielddisplay(self,'thickness_obs','observed thickness [m]');
     117                        fielddisplay(self,'surface_obs','observed surface elevation [m]');
    118118                        disp('Available cost functions:');
    119119                        disp('   101: SurfaceAbsVelMisfit');
     
    127127                        disp('   503: ThicknessAbsGradient');
    128128                end % }}}
    129                 function marshall(obj,md,fid) % {{{
     129                function marshall(self,md,fid) % {{{
    130130
    131131                        yts=365.0*24.0*3600.0;
    132132
    133                         WriteData(fid,'object',obj,'class','inversion','fieldname','iscontrol','format','Boolean');
     133                        WriteData(fid,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean');
    134134                        WriteData(fid,'enum',InversionTypeEnum(),'data',2,'format','Integer');
    135                         if ~obj.iscontrol, return; end
    136                         WriteData(fid,'object',obj,'class','inversion','fieldname','incomplete_adjoint','format','Boolean');
    137                         WriteData(fid,'object',obj,'class','inversion','fieldname','control_scaling_factors','format','DoubleMat','mattype',3);
    138                         WriteData(fid,'object',obj,'class','inversion','fieldname','maxsteps','format','Integer');
    139                         WriteData(fid,'object',obj,'class','inversion','fieldname','maxiter','format','Integer');
    140                         WriteData(fid,'object',obj,'class','inversion','fieldname','dxmin','format','Double');
    141                         WriteData(fid,'object',obj,'class','inversion','fieldname','gttol','format','Double');
    142                         WriteData(fid,'object',obj,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1);
    143                         WriteData(fid,'object',obj,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3);
    144                         WriteData(fid,'object',obj,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3);
    145                         WriteData(fid,'object',obj,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts);
    146                         WriteData(fid,'object',obj,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts);
    147                         WriteData(fid,'object',obj,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts);
    148                         if(numel(obj.thickness_obs)==md.mesh.numberofelements),
     135                        if ~self.iscontrol, return; end
     136                        WriteData(fid,'object',self,'class','inversion','fieldname','incomplete_adjoint','format','Boolean');
     137                        WriteData(fid,'object',self,'class','inversion','fieldname','control_scaling_factors','format','DoubleMat','mattype',3);
     138                        WriteData(fid,'object',self,'class','inversion','fieldname','maxsteps','format','Integer');
     139                        WriteData(fid,'object',self,'class','inversion','fieldname','maxiter','format','Integer');
     140                        WriteData(fid,'object',self,'class','inversion','fieldname','dxmin','format','Double');
     141                        WriteData(fid,'object',self,'class','inversion','fieldname','gttol','format','Double');
     142                        WriteData(fid,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1);
     143                        WriteData(fid,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3);
     144                        WriteData(fid,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3);
     145                        WriteData(fid,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts);
     146                        WriteData(fid,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts);
     147                        WriteData(fid,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts);
     148                        if(numel(self.thickness_obs)==md.mesh.numberofelements),
    149149                                mattype=2;
    150150                        else
    151151                                mattype=1;
    152152                        end
    153                         WriteData(fid,'object',obj,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',mattype);
    154                         WriteData(fid,'object',obj,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',mattype);
     153                        WriteData(fid,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',mattype);
     154                        WriteData(fid,'object',self,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',mattype);
    155155
    156156                        %process control parameters
    157                         num_control_parameters=numel(obj.control_parameters);
     157                        num_control_parameters=numel(self.control_parameters);
    158158                        data=zeros(1,num_control_parameters);
    159159                        for i=1:num_control_parameters,
    160                                 data(i)=StringToEnum(obj.control_parameters{i});
     160                                data(i)=StringToEnum(self.control_parameters{i});
    161161                        end
    162162                        WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3);
     
    164164
    165165                        %process cost functions
    166                         num_cost_functions=size(obj.cost_functions,2);
    167                         data=marshallcostfunctions(obj.cost_functions);
     166                        num_cost_functions=size(self.cost_functions,2);
     167                        data=marshallcostfunctions(self.cost_functions);
    168168                        WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
    169169                        WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
Note: See TracChangeset for help on using the changeset viewer.