Changeset 19041


Ignore:
Timestamp:
01/26/15 18:43:11 (10 years ago)
Author:
Eric.Larour
Message:

CHG: fixing some issues in constructor.

File:
1 edited

Legend:

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

    r18994 r19041  
    2424                        self.incomplete_adjoint          = 0
    2525                        self.control_parameters          = float('NaN')
     26                        self.control_scaling_factors     = float('NaN')
    2627                        self.maxsteps                    = 0
    2728                        self.maxiter                     = 0
     
    4344                        print 'converting inversion to m1qn3inversion'
    4445                        inv=args[0]
     46                        #first call setdefaultparameters:
     47                        self.setdefaultparameters()
     48
     49                        #then go fish whatever is available in the inversion object provided to the constructor
    4550                        self.iscontrol                   = inv.iscontrol
    4651                        self.incomplete_adjoint          = inv.incomplete_adjoint
     
    6469                string="%s\n%s"%(string,fielddisplay(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity'))
    6570                string="%s\n%s"%(string,fielddisplay(self,'control_parameters','ex: [''FrictionCoefficient''], or [''MaterialsRheologyBbar'']'))
     71                string="%s\n%s"%(string,fielddisplay(self,'control_scaling_factors','order of magnitude of each control (useful for multi-parameter optimization)'))
    6672                string="%s\n%s"%(string,fielddisplay(self,'maxsteps','maximum number of iterations (gradient computation)'))
    6773                string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)'))
     
    96102                #drag and B are supported yet)
    97103                self.control_parameters='FrictionCoefficient'
     104               
     105                #Scaling factor for each control
     106                self.control_scaling_factors=1
    98107
    99108                #number of iterations
     
    122131                md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])
    123132                md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())
     133                md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1)
    124134                md = checkfield(md,'fieldname','inversion.maxsteps','numel',[1],'>=',0)
    125135                md = checkfield(md,'fieldname','inversion.maxiter','numel',[1],'>=',0)
     
    148158                        return
    149159                WriteData(fid,'object',self,'class','inversion','fieldname','incomplete_adjoint','format','Boolean')
     160                WriteData(fid,'object',self,'class','inversion','fieldname','control_scaling_factors','format','DoubleMat','mattype',3)
    150161                WriteData(fid,'object',self,'class','inversion','fieldname','maxsteps','format','Integer')
    151162                WriteData(fid,'object',self,'class','inversion','fieldname','maxiter','format','Integer')
Note: See TracChangeset for help on using the changeset viewer.