Changeset 27766
- Timestamp:
- 05/19/23 08:08:54 (22 months ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/adm1qn3inversion.m
r22515 r27766 10 10 maxiter = 0 11 11 dxmin = 0 12 dfmin_frac = 0 12 13 gttol = 0 13 14 … … 38 39 39 40 %m1qn3 parameters 40 self.dxmin = 0.1; 41 self.gttol = 1e-4; 41 self.dxmin = 0.1; 42 self.dfmin_frac = 1.; 43 self.gttol = 1e-4; 42 44 43 45 end % }}} … … 55 57 md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0); 56 58 md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0); 59 md = checkfield(md,'fieldname','inversion.dfmin_frac','numel',1,'>=',0., '<=', 1.); 57 60 md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>',0); 58 61 … … 64 67 fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)'); 65 68 fielddisplay(self,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical'); 69 fielddisplay(self,'dfmin_frac','expected reduction of J during the first step (e.g., 0.3=30% reduction in cost function)'); 66 70 fielddisplay(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'); 67 71 end % }}} … … 76 80 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','maxiter','format','Integer'); 77 81 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','dxmin','format','Double'); 82 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','dfmin_frac','format','Double'); 78 83 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','gttol','format','Double'); 79 84 … … 85 90 writejsdouble(fid,[modelname '.inversion.maxiter'],self.maxiter); 86 91 writejsdouble(fid,[modelname '.inversion.dxmin'],self.dxmin); 92 writejsdouble(fid,[modelname '.inversion.dfmin_frac'],self.dfmin_frac); 87 93 writejsdouble(fid,[modelname '.inversion.gttol'],self.gttol); 88 94 -
issm/trunk-jpl/src/m/classes/m1qn3inversion.m
r25421 r27766 13 13 maxiter = 0 14 14 dxmin = 0 15 dfmin_frac = 0 15 16 gttol = 0 16 17 cost_functions = NaN … … 66 67 67 68 %m1qn3 parameters 68 self.dxmin = 0.1; 69 self.gttol = 1e-4; 69 self.dxmin = 0.1; 70 self.dfmin_frac = 1; 71 self.gttol = 1e-4; 70 72 71 73 end % }}} … … 88 90 md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0); 89 91 md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0); 92 md = checkfield(md,'fieldname','inversion.dfmin_frac','numel',1,'>=',0,'<=',1); 90 93 md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>',0); 91 94 md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',supportedcostfunctions()); … … 115 118 fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)'); 116 119 fielddisplay(self,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical'); 120 fielddisplay(self,'dfmin_frac','expected reduction of J during the first step (e.g., 0.3=30% reduction in cost function)'); 117 121 fielddisplay(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'); 118 122 fielddisplay(self,'cost_functions','indicate the type of response for each optimization step'); … … 148 152 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','maxiter','format','Integer'); 149 153 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','dxmin','format','Double'); 154 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','dfmin_frac','format','Double'); 150 155 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','gttol','format','Double'); 151 156 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1); … … 184 189 writejsdouble(fid,[modelname '.inversion.maxiter'],self.maxiter); 185 190 writejsdouble(fid,[modelname '.inversion.dxmin'],self.dxmin); 191 writejsdouble(fid,[modelname '.inversion.dfmin_frac'],self.dfmin_frac); 186 192 writejsdouble(fid,[modelname '.inversion.gttol'],self.gttol); 187 193 writejs2Darray(fid,[modelname '.inversion.cost_functions'],self.cost_functions); -
issm/trunk-jpl/src/m/classes/m1qn3inversion.py
r27458 r27766 19 19 if not len(args): 20 20 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 30 31 self.cost_functions_coefficients = np.nan 31 self.min_parameters = np.nan32 self.max_parameters = np.nan33 self.vx_obs = np.nan34 self.vy_obs = np.nan35 self.vz_obs = np.nan36 self.vel_obs = np.nan37 self.thickness_obs = np.nan32 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 38 39 39 40 self.setdefaultparameters() … … 71 72 s += '{}\n'.format(fielddisplay(self, 'maxiter', 'maximum number of Function evaluation (forward run)')) 72 73 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)')) 73 75 s += '{}\n'.format(fielddisplay(self, 'gttol', '||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)')) 74 76 s += '{}\n'.format(fielddisplay(self, 'cost_functions', 'indicate the type of response for each optimization step')) … … 108 110 #m1qn3 parameters 109 111 self.dxmin = 0.1 112 self.dfmin_frac = 1. 110 113 self.gttol = 1e-4 111 114 … … 142 145 md = checkfield(md, 'fieldname', 'inversion.maxiter', 'numel', [1], '>=', 0) 143 146 md = checkfield(md, 'fieldname', 'inversion.dxmin', 'numel', [1], '>', 0.) 147 md = checkfield(md, 'fieldname', 'inversion.dfmin_frac', 'numel', [1], '>=', 0., '<=', 1.) 144 148 md = checkfield(md, 'fieldname', 'inversion.gttol', 'numel', [1], '>', 0.) 145 149 md = checkfield(md, 'fieldname', 'inversion.cost_functions', 'size', [num_costfunc], 'values', supportedcostfunctions()) … … 169 173 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'maxiter', 'format', 'Integer') 170 174 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'dxmin', 'format', 'Double') 175 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'dfmin_frac', 'format', 'Double') 171 176 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'gttol', 'format', 'Double') 172 177 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.