Changeset 16249
- Timestamp:
- 09/25/13 08:49:05 (11 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 1 added
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/inversion.m
r16246 r16249 19 19 max_parameters = NaN 20 20 step_threshold = NaN 21 gradient_only = 022 21 vx_obs = NaN 23 22 vy_obs = NaN … … 50 49 obj.step_threshold = .99*ones(in.nsteps,1); 51 50 obj.vx_obs = in.vx_obs; 52 obj.gradient_only = 0;53 51 obj.vy_obs = in.vy_obs; 54 52 obj.vz_obs = in.vz_obs; … … 95 93 obj.step_threshold=.7*ones(obj.nsteps,1); %30 per cent decrement. 96 94 97 %stop control solution at the gradient computation and return it?98 obj.gradient_only=0;99 100 95 %cost_function_threshold is a criteria to stop the control methods. 101 96 %if J[n]-J[n-1]/J[n] < criteria, the control run stops … … 117 112 md = checkfield(md,'inversion.control_parameters','cell',1,'values',... 118 113 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'DamageDbar' 'Vx' 'Vy' 'Thickness'}); 119 %md = checkfield(md,'inversion.nsteps','numel',1,'>=',1);114 md = checkfield(md,'inversion.nsteps','numel',1,'>=',0); 120 115 md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0); 121 116 md = checkfield(md,'inversion.step_threshold','size',[md.inversion.nsteps 1]); 122 117 md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps num_costfunc],'values',[101:105 201 501:506]); 123 118 md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0); 124 md = checkfield(md,'inversion.gradient_only','values',[0 1]);125 119 md = checkfield(md,'inversion.gradient_scaling','size',[md.inversion.nsteps num_controls]); 126 120 md = checkfield(md,'inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]); … … 157 151 fielddisplay(obj,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex'); 158 152 fielddisplay(obj,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex'); 159 fielddisplay(obj,'gradient_only','stop control method solution at gradient');160 153 fielddisplay(obj,'vx_obs','observed velocity x component [m/yr]'); 161 154 fielddisplay(obj,'vy_obs','observed velocity y component [m/yr]'); … … 189 182 WriteData(fid,'object',obj,'fieldname','max_parameters','format','DoubleMat','mattype',3); 190 183 WriteData(fid,'object',obj,'fieldname','step_threshold','format','DoubleMat','mattype',3); 191 WriteData(fid,'object',obj,'fieldname','gradient_only','format','Boolean');192 184 WriteData(fid,'object',obj,'fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts); 193 185 WriteData(fid,'object',obj,'fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts); -
issm/trunk-jpl/src/m/classes/inversion.py
r16167 r16249 29 29 self.max_parameters = float('NaN') 30 30 self.step_threshold = float('NaN') 31 self.gradient_only = 032 31 self.vx_obs = float('NaN') 33 32 self.vy_obs = float('NaN') … … 54 53 string="%s\n%s"%(string,fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex')) 55 54 string="%s\n%s"%(string,fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex')) 56 string="%s\n%s"%(string,fielddisplay(self,'gradient_only','stop control method solution at gradient'))57 55 string="%s\n%s"%(string,fielddisplay(self,'vx_obs','observed velocity x component [m/yr]')) 58 56 string="%s\n%s"%(string,fielddisplay(self,'vy_obs','observed velocity y component [m/yr]')) … … 102 100 self.step_threshold=.7*numpy.ones(self.nsteps) #30 per cent decrement 103 101 104 #stop control solution at the gradient computation and return it?105 self.gradient_only=0106 107 102 #cost_function_threshold is a criteria to stop the control methods. 108 103 #if J[n]-J[n-1]/J[n] < criteria, the control run stops … … 125 120 md = checkfield(md,'inversion.incomplete_adjoint','values',[0,1]) 126 121 md = checkfield(md,'inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar','DamageDbar','Vx','Vy']) 127 md = checkfield(md,'inversion.nsteps','numel',[1],'>=', 1)122 md = checkfield(md,'inversion.nsteps','numel',[1],'>=',0) 128 123 md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0) 129 124 md = checkfield(md,'inversion.step_threshold','size',[md.inversion.nsteps]) 130 125 md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps,num_costfunc],'values',[101,102,103,104,105,201,501,502,503,504,505]) 131 126 md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0) 132 md = checkfield(md,'inversion.gradient_only','values',[0,1])133 127 md = checkfield(md,'inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls]) 134 128 md = checkfield(md,'inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls]) … … 165 159 WriteData(fid,'object',self,'fieldname','max_parameters','format','DoubleMat','mattype',3) 166 160 WriteData(fid,'object',self,'fieldname','step_threshold','format','DoubleMat','mattype',3) 167 WriteData(fid,'object',self,'fieldname','gradient_only','format','Boolean')168 161 WriteData(fid,'object',self,'fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts) 169 162 WriteData(fid,'object',self,'fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts) -
issm/trunk-jpl/src/m/classes/taoinversion.m
r16246 r16249 75 75 md = checkfield(md,'inversion.control_parameters','cell',1,'values',... 76 76 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness'}); 77 %md = checkfield(md,'inversion.nsteps','numel',1,'>=',1);77 md = checkfield(md,'inversion.nsteps','numel',1,'>=',0); 78 78 md = checkfield(md,'inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]); 79 79 md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0); -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r16243 r16249 127 127 def InversionCostFunctionsCoefficientsEnum(): return StringToEnum("InversionCostFunctionsCoefficients")[0] 128 128 def InversionCostFunctionsEnum(): return StringToEnum("InversionCostFunctions")[0] 129 def InversionGradientOnlyEnum(): return StringToEnum("InversionGradientOnly")[0]130 129 def InversionGradientScalingEnum(): return StringToEnum("InversionGradientScaling")[0] 131 130 def InversionIscontrolEnum(): return StringToEnum("InversionIscontrol")[0]
Note:
See TracChangeset
for help on using the changeset viewer.