Ignore:
Timestamp:
05/19/23 08:08:54 (22 months ago)
Author:
Mathieu Morlighem
Message:

CHG: adding new field to m1qn3 inversions (initial cost function reduction)

File:
1 edited

Legend:

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

    r27458 r27766  
    1919        if not len(args):
    2020            print('empty init')
    21             self.iscontrol = 0
    22             self.incomplete_adjoint = 0
    23             self.control_parameters = np.nan
    24             self.control_scaling_factors = np.nan
    25             self.maxsteps = 0
    26             self.maxiter = 0
    27             self.dxmin = 0.
    28             self.gttol = 0.
    29             self.cost_functions = np.nan
     21            self.iscontrol                   = 0
     22            self.incomplete_adjoint          = 0
     23            self.control_parameters          = np.nan
     24            self.control_scaling_factors     = np.nan
     25            self.maxsteps                    = 0
     26            self.maxiter                     = 0
     27            self.dxmin                       = 0.
     28            self.dfmin_frac                  = 0.
     29            self.gttol                       = 0.
     30            self.cost_functions              = np.nan
    3031            self.cost_functions_coefficients = np.nan
    31             self.min_parameters = np.nan
    32             self.max_parameters = np.nan
    33             self.vx_obs = np.nan
    34             self.vy_obs = np.nan
    35             self.vz_obs = np.nan
    36             self.vel_obs = np.nan
    37             self.thickness_obs = np.nan
     32            self.min_parameters              = np.nan
     33            self.max_parameters              = np.nan
     34            self.vx_obs                      = np.nan
     35            self.vy_obs                      = np.nan
     36            self.vz_obs                      = np.nan
     37            self.vel_obs                     = np.nan
     38            self.thickness_obs               = np.nan
    3839
    3940            self.setdefaultparameters()
     
    7172        s += '{}\n'.format(fielddisplay(self, 'maxiter', 'maximum number of Function evaluation (forward run)'))
    7273        s += '{}\n'.format(fielddisplay(self, 'dxmin', 'convergence criterion: two points less than dxmin from eachother (sup - norm) are considered identical'))
     74        s += '{}\n'.format(fielddisplay(self, 'dfmin_frac', 'expected reduction of J during the first step (e.g., 0.3=30% reduction in cost function)'))
    7375        s += '{}\n'.format(fielddisplay(self, 'gttol', '||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'))
    7476        s += '{}\n'.format(fielddisplay(self, 'cost_functions', 'indicate the type of response for each optimization step'))
     
    108110        #m1qn3 parameters
    109111        self.dxmin = 0.1
     112        self.dfmin_frac = 1.
    110113        self.gttol = 1e-4
    111114
     
    142145        md = checkfield(md, 'fieldname', 'inversion.maxiter', 'numel', [1], '>=', 0)
    143146        md = checkfield(md, 'fieldname', 'inversion.dxmin', 'numel', [1], '>', 0.)
     147        md = checkfield(md, 'fieldname', 'inversion.dfmin_frac', 'numel', [1], '>=', 0., '<=', 1.)
    144148        md = checkfield(md, 'fieldname', 'inversion.gttol', 'numel', [1], '>', 0.)
    145149        md = checkfield(md, 'fieldname', 'inversion.cost_functions', 'size', [num_costfunc], 'values', supportedcostfunctions())
     
    169173        WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'maxiter', 'format', 'Integer')
    170174        WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'dxmin', 'format', 'Double')
     175        WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'dfmin_frac', 'format', 'Double')
    171176        WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'gttol', 'format', 'Double')
    172177        WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'cost_functions_coefficients', 'format', 'DoubleMat', 'mattype', 1)
Note: See TracChangeset for help on using the changeset viewer.