Changeset 16764
- Timestamp:
- 11/14/13 14:50:13 (11 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 64 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/m/classes/autodiff.m ¶
r16400 r16764 42 42 43 43 %Driver value: 44 md = checkfield(md,' autodiff.driver','values',{'fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'});44 md = checkfield(md,'fieldname','autodiff.driver','values',{'fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'}); 45 45 46 46 %buffer values: 47 md = checkfield(md,' autodiff.obufsize','>=',16);48 md = checkfield(md,' autodiff.lbufsize','>=',16);49 md = checkfield(md,' autodiff.cbufsize','>=',16);50 md = checkfield(md,' autodiff.tbufsize','>=',16);51 md = checkfield(md,' autodiff.gcTriggerRatio','>=',0);52 md = checkfield(md,' autodiff.gcTriggerMaxSize','>=',65536);47 md = checkfield(md,'fieldname','autodiff.obufsize','>=',16); 48 md = checkfield(md,'fieldname','autodiff.lbufsize','>=',16); 49 md = checkfield(md,'fieldname','autodiff.cbufsize','>=',16); 50 md = checkfield(md,'fieldname','autodiff.tbufsize','>=',16); 51 md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',0); 52 md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',65536); 53 53 54 54 %go through our dependents and independents and check consistency: -
TabularUnified issm/trunk-jpl/src/m/classes/autodiff.py ¶
r16400 r16764 62 62 return md 63 63 64 md = checkfield(md,' autodiff.obufsize','>=',524288)65 md = checkfield(md,' autodiff.lbufsize','>=',524288)66 md = checkfield(md,' autodiff.cbufsize','>=',524288)67 md = checkfield(md,' autodiff.tbufsize','>=',524288)68 md = checkfield(md,' autodiff.gcTriggerRatio','>=',2.0)69 md = checkfield(md,' autodiff.gcTriggerMaxSize','>=',2000000)64 md = checkfield(md,'fieldname','autodiff.obufsize','>=',524288) 65 md = checkfield(md,'fieldname','autodiff.lbufsize','>=',524288) 66 md = checkfield(md,'fieldname','autodiff.cbufsize','>=',524288) 67 md = checkfield(md,'fieldname','autodiff.tbufsize','>=',524288) 68 md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0) 69 md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',2000000) 70 70 71 71 #Driver value: 72 md = checkfield(md,' autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])72 md = checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all']) 73 73 74 74 #go through our dependents and independents and check consistency: -
TabularUnified issm/trunk-jpl/src/m/classes/balancethickness.m ¶
r15567 r16764 29 29 if solution~=BalancethicknessSolutionEnum(), return; end 30 30 31 md = checkfield(md,' balancethickness.spcthickness');32 md = checkfield(md,' balancethickness.thickening_rate','size',[md.mesh.numberofvertices 1],'NaN',1);33 md = checkfield(md,' balancethickness.stabilization','size',[1 1],'values',[0 1 2 3]);31 md = checkfield(md,'fieldname','balancethickness.spcthickness'); 32 md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices 1],'NaN',1); 33 md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1 1],'values',[0 1 2 3]); 34 34 end % }}} 35 35 function disp(obj) % {{{ -
TabularUnified issm/trunk-jpl/src/m/classes/balancethickness.py ¶
r15567 r16764 42 42 return md 43 43 44 md = checkfield(md,' balancethickness.spcthickness')45 md = checkfield(md,' balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)46 md = checkfield(md,' balancethickness.stabilization','size',[1],'values',[0,1,2,3])44 md = checkfield(md,'fieldname','balancethickness.spcthickness') 45 md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1) 46 md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1],'values',[0,1,2,3]) 47 47 48 48 return md -
TabularUnified issm/trunk-jpl/src/m/classes/basalforcings.m ¶
r15767 r16764 25 25 26 26 if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport==0), 27 md = checkfield(md,' basalforcings.melting_rate','NaN',1,'forcing',1);27 md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1); 28 28 end 29 29 if ismember(BalancethicknessAnalysisEnum(),analyses), 30 md = checkfield(md,' basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);30 md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]); 31 31 end 32 32 if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0), 33 md = checkfield(md,' basalforcings.melting_rate','NaN',1,'forcing',1);34 md = checkfield(md,' basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0);33 md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1); 34 md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0); 35 35 end 36 36 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/basalforcings.py ¶
r15767 r16764 36 36 37 37 if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport): 38 md = checkfield(md,' basalforcings.melting_rate','NaN',1,'forcing',1)38 md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1) 39 39 40 40 if BalancethicknessAnalysisEnum() in analyses: 41 md = checkfield(md,' basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices])41 md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices]) 42 42 43 43 if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal): 44 md = checkfield(md,' basalforcings.melting_rate','NaN',1,'forcing',1)45 md = checkfield(md,' basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0)44 md = checkfield(md,'fieldname','basalforcings.melting_rate','NaN',1,'forcing',1) 45 md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0) 46 46 47 47 return md -
TabularUnified issm/trunk-jpl/src/m/classes/constants.m ¶
r15131 r16764 33 33 function md = checkconsistency(obj,md,solution,analyses) % {{{ 34 34 35 % md = checkfield(md,' constants.g','>',0,'size',[1 1]);36 md = checkfield(md,' constants.yts','>',0,'size',[1 1]);37 md = checkfield(md,' constants.referencetemperature','size',[1 1]);35 % md = checkfield(md,'fieldname','constants.g','>',0,'size',[1 1]); 36 md = checkfield(md,'fieldname','constants.yts','>',0,'size',[1 1]); 37 md = checkfield(md,'fieldname','constants.referencetemperature','size',[1 1]); 38 38 39 39 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/constants.py ¶
r15131 r16764 45 45 def checkconsistency(self,md,solution,analyses): # {{{ 46 46 47 md = checkfield(md,' constants.g','>',0,'size',[1])48 md = checkfield(md,' constants.yts','>',0,'size',[1])49 md = checkfield(md,' constants.referencetemperature','size',[1])47 md = checkfield(md,'fieldname','constants.g','>',0,'size',[1]) 48 md = checkfield(md,'fieldname','constants.yts','>',0,'size',[1]) 49 md = checkfield(md,'fieldname','constants.referencetemperature','size',[1]) 50 50 51 51 return md -
TabularUnified issm/trunk-jpl/src/m/classes/damage.m ¶
r16304 r16764 80 80 function md = checkconsistency(obj,md,solution,analyses) % {{{ 81 81 82 md = checkfield(md,' damage.D','>=',0,'<=',obj.max_damage,'size',[md.mesh.numberofvertices 1]);83 md = checkfield(md,' damage.max_damage','<',1,'>=',0);84 md = checkfield(md,' damage.law','values',{'undamaged','pralong'});85 md = checkfield(md,' damage.spcdamage','forcing',1);82 md = checkfield(md,'fieldname','damage.D','>=',0,'<=',obj.max_damage,'size',[md.mesh.numberofvertices 1]); 83 md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0); 84 md = checkfield(md,'fieldname','damage.law','values',{'undamaged','pralong'}); 85 md = checkfield(md,'fieldname','damage.spcdamage','forcing',1); 86 86 87 md = checkfield(md,' damage.stabilization','numel',[1],'values',[0 1 2]);88 md = checkfield(md,' damage.maxiter','>=0',0);89 md = checkfield(md,' damage.penalty_factor','>=0',0);90 md = checkfield(md,' damage.penalty_lock','>=0',0);91 md = checkfield(md,' damage.penalty_threshold','>=0',0);87 md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0 1 2]); 88 md = checkfield(md,'fieldname','damage.maxiter','>=0',0); 89 md = checkfield(md,'fieldname','damage.penalty_factor','>=0',0); 90 md = checkfield(md,'fieldname','damage.penalty_lock','>=0',0); 91 md = checkfield(md,'fieldname','damage.penalty_threshold','>=0',0); 92 92 93 93 if strcmpi(obj.law,'pralong'), 94 md = checkfield(md,' damage.healing','>=',0);95 md = checkfield(md,' damage.c1','>=',0);96 md = checkfield(md,' damage.c2','>=',0);97 md = checkfield(md,' damage.c3','>=',0);98 md = checkfield(md,' damage.c4','>=',0);99 md = checkfield(md,' damage.stress_threshold','>=',0);94 md = checkfield(md,'fieldname','damage.healing','>=',0); 95 md = checkfield(md,'fieldname','damage.c1','>=',0); 96 md = checkfield(md,'fieldname','damage.c2','>=',0); 97 md = checkfield(md,'fieldname','damage.c3','>=',0); 98 md = checkfield(md,'fieldname','damage.c4','>=',0); 99 md = checkfield(md,'fieldname','damage.stress_threshold','>=',0); 100 100 elseif strcmpi(obj.law,'undamaged'), 101 101 if (solution==DamageEvolutionSolutionEnum), -
TabularUnified issm/trunk-jpl/src/m/classes/damage.py ¶
r16198 r16764 99 99 def checkconsistency(self,md,solution,analyses): # {{{ 100 100 101 md = checkfield(md,' damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])102 md = checkfield(md,' damage.max_damage','<',1,'>=',0)103 md = checkfield(md,' damage.law','values',['undamaged','pralong'])104 md = checkfield(md,' damage.spcdamage','forcing',1)101 md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices]) 102 md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0) 103 md = checkfield(md,'fieldname','damage.law','values',['undamaged','pralong']) 104 md = checkfield(md,'fieldname','damage.spcdamage','forcing',1) 105 105 106 md = checkfield(md,' damage.stabilization','numel',[1],'values',[0,1,2]);107 md = checkfield(md,' damage.maxiter','>=0',0);108 md = checkfield(md,' damage.penalty_factor','>=0',0);109 md = checkfield(md,' damage.penalty_lock','>=0',0);110 md = checkfield(md,' damage.penalty_threshold','>=0',0);106 md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2]); 107 md = checkfield(md,'fieldname','damage.maxiter','>=0',0); 108 md = checkfield(md,'fieldname','damage.penalty_factor','>=0',0); 109 md = checkfield(md,'fieldname','damage.penalty_lock','>=0',0); 110 md = checkfield(md,'fieldname','damage.penalty_threshold','>=0',0); 111 111 112 112 if self.law == 'pralong': 113 md = checkfield(md,' damage.healing','>=',0);114 md = checkfield(md,' damage.c1','>=',0)115 md = checkfield(md,' damage.c2','>=',0)116 md = checkfield(md,' damage.c3','>=',0)117 md = checkfield(md,' damage.c4','>=',0)118 md = checkfield(md,' damage.stress_threshold','>=',0)113 md = checkfield(md,'fieldname','damage.healing','>=',0); 114 md = checkfield(md,'fieldname','damage.c1','>=',0) 115 md = checkfield(md,'fieldname','damage.c2','>=',0) 116 md = checkfield(md,'fieldname','damage.c3','>=',0) 117 md = checkfield(md,'fieldname','damage.c4','>=',0) 118 md = checkfield(md,'fieldname','damage.stress_threshold','>=',0) 119 119 elif strcmpi(self.law,'undamaged'): 120 120 if (solution==DamageEvolutionSolutionEnum): -
TabularUnified issm/trunk-jpl/src/m/classes/flaim.m ¶
r13646 r16764 37 37 if solution~=FlaimSolutionEnum(), return; end 38 38 39 md = checkfield(md,'f laim.tracks','file',1);39 md = checkfield(md,'fieldname','flaim.tracks','file',1); 40 40 if any(isnan(md.flaim.criterion)) || isempty(md.flaim.criterion) 41 md = checkfield(md,'f laim.targets','file',1);41 md = checkfield(md,'fieldname','flaim.targets','file',1); 42 42 else 43 md = checkfield(md,'f laim.criterion','numel',[md.mesh.numberofvertices md.mesh.numberofelements]);43 md = checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices md.mesh.numberofelements]); 44 44 end 45 45 -
TabularUnified issm/trunk-jpl/src/m/classes/flaim.py ¶
r14640 r16764 63 63 return md 64 64 65 md = checkfield(md,'f laim.tracks','file',1)65 md = checkfield(md,'fieldname','flaim.tracks','file',1) 66 66 if numpy.any(numpy.isnan(md.flaim.criterion)) or not md.flaim.criterion: 67 md = checkfield(md,'f laim.targets','file',1)67 md = checkfield(md,'fieldname','flaim.targets','file',1) 68 68 else: 69 md = checkfield(md,'f laim.criterion','numel',[md.mesh.numberofvertices,md.mesh.numberofelements])69 md = checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices,md.mesh.numberofelements]) 70 70 71 71 return md -
TabularUnified issm/trunk-jpl/src/m/classes/flowequation.m ¶
r16332 r16764 80 80 if ismember(StressbalanceAnalysisEnum(),analyses), 81 81 82 md = checkfield(md,'f lowequation.isSIA','numel',[1],'values',[0 1]);83 md = checkfield(md,'f lowequation.isSSA','numel',[1],'values',[0 1]);84 md = checkfield(md,'f lowequation.isL1L2','numel',[1],'values',[0 1]);85 md = checkfield(md,'f lowequation.isHO','numel',[1],'values',[0 1]);86 md = checkfield(md,'f lowequation.isFS','numel',[1],'values',[0 1]);87 md = checkfield(md,'f lowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'});88 md = checkfield(md,'f lowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'});89 md = checkfield(md,'f lowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'});90 md = checkfield(md,'f lowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);91 md = checkfield(md,'f lowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]);92 md = checkfield(md,'f lowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]);82 md = checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0 1]); 83 md = checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0 1]); 84 md = checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0 1]); 85 md = checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0 1]); 86 md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0 1]); 87 md = checkfield(md,'fieldname','flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'}); 88 md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'}); 89 md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'}); 90 md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]); 91 md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]); 92 md = checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]); 93 93 if strcmp(meshtype(md.mesh),'2Dhorizontal') 94 md = checkfield(md,'f lowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[1:2]);95 md = checkfield(md,'f lowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]);94 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[1:2]); 95 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]); 96 96 elseif strcmp(meshtype(md.mesh),'2Dvertical') 97 md = checkfield(md,'f lowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[4]);98 md = checkfield(md,'f lowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[4]);97 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[4]); 98 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[4]); 99 99 elseif strcmp(meshtype(md.mesh),'3D'), 100 md = checkfield(md,'f lowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]);101 md = checkfield(md,'f lowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:8]);100 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]); 101 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:8]); 102 102 else 103 103 error('Case not supported yet'); -
TabularUnified issm/trunk-jpl/src/m/classes/flowequation.py ¶
r16295 r16764 68 68 69 69 if StressbalanceAnalysisEnum() in analyses: 70 md = checkfield(md,'f lowequation.isSIA','numel',[1],'values',[0,1])71 md = checkfield(md,'f lowequation.isSSA','numel',[1],'values',[0,1])72 md = checkfield(md,'f lowequation.isL1L2','numel',[1],'values',[0,1])73 md = checkfield(md,'f lowequation.isHO','numel',[1],'values',[0,1])74 md = checkfield(md,'f lowequation.isFS','numel',[1],'values',[0,1])75 md = checkfield(md,'f lowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2'])76 md = checkfield(md,'f lowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'])77 md = checkfield(md,'f lowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'])78 md = checkfield(md,'f lowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1])79 md = checkfield(md,'f lowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])80 md = checkfield(md,'f lowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1])70 md = checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0,1]) 71 md = checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0,1]) 72 md = checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0,1]) 73 md = checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0,1]) 74 md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0,1]) 75 md = checkfield(md,'fieldname','flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2']) 76 md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2']) 77 md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood']) 78 md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1]) 79 md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1]) 80 md = checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1]) 81 81 if strcmp(md.mesh.meshtype(),'2Dhorizontal'): 82 md = checkfield(md,'f lowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2])83 md = checkfield(md,'f lowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2])82 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2]) 83 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2]) 84 84 elif strcmp(md.mesh.meshtype(),'3D'): 85 md = checkfield(md,'f lowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',numpy.arange(0,8+1))86 md = checkfield(md,'f lowequation.element_equation','size',[md.mesh.numberofelements],'values',numpy.arange(0,8+1))85 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',numpy.arange(0,8+1)) 86 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',numpy.arange(0,8+1)) 87 87 else: 88 88 raise RuntimeError('mesh type not supported yet') -
TabularUnified issm/trunk-jpl/src/m/classes/friction.m ¶
r15771 r16764 27 27 if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end 28 28 29 md = checkfield(md,'f riction.coefficient','NaN',1,'size',[md.mesh.numberofvertices 1]);30 md = checkfield(md,'f riction.q','NaN',1,'size',[md.mesh.numberofelements 1]);31 md = checkfield(md,'f riction.p','NaN',1,'size',[md.mesh.numberofelements 1]);29 md = checkfield(md,'fieldname','friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices 1]); 30 md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]); 31 md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]); 32 32 end % }}} 33 33 function disp(obj) % {{{ -
TabularUnified issm/trunk-jpl/src/m/classes/friction.py ¶
r15771 r16764 38 38 return md 39 39 40 md = checkfield(md,'f riction.coefficient','NaN',1,'size',[md.mesh.numberofvertices])41 md = checkfield(md,'f riction.q','NaN',1,'size',[md.mesh.numberofelements])42 md = checkfield(md,'f riction.p','NaN',1,'size',[md.mesh.numberofelements])40 md = checkfield(md,'fieldname','friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices]) 41 md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements]) 42 md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements]) 43 43 44 44 return md -
TabularUnified issm/trunk-jpl/src/m/classes/geometry.m ¶
r16335 r16764 27 27 28 28 if (solution==TransientSolutionEnum() & md.transient.isgia) | (solution==GiaSolutionEnum()), 29 md = checkfield(md,' geometry.thickness','forcing',1,'NaN',1,'>=',0);29 md = checkfield(md,'fieldname','geometry.thickness','forcing',1,'NaN',1,'>=',0); 30 30 else 31 md = checkfield(md,' geometry.surface' ,'NaN',1,'size',[md.mesh.numberofvertices 1]);32 md = checkfield(md,' geometry.bed' ,'NaN',1,'size',[md.mesh.numberofvertices 1]);33 md = checkfield(md,' geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);31 md = checkfield(md,'fieldname','geometry.surface' ,'NaN',1,'size',[md.mesh.numberofvertices 1]); 32 md = checkfield(md,'fieldname','geometry.bed' ,'NaN',1,'size',[md.mesh.numberofvertices 1]); 33 md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0); 34 34 if any((obj.thickness-obj.surface+obj.bed)>10^-9), 35 35 md = checkmessage(md,['equality thickness=surface-bed violated']); 36 36 end 37 37 if solution==TransientSolutionEnum() & md.transient.isgroundingline, 38 md = checkfield(md,' geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices 1]);38 md = checkfield(md,'fieldname','geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices 1]); 39 39 end 40 40 end -
TabularUnified issm/trunk-jpl/src/m/classes/geometry.py ¶
r15133 r16764 38 38 def checkconsistency(self,md,solution,analyses): # {{{ 39 39 40 md = checkfield(md,' geometry.surface' ,'NaN',1,'size',[md.mesh.numberofvertices])41 md = checkfield(md,' geometry.bed' ,'NaN',1,'size',[md.mesh.numberofvertices])42 md = checkfield(md,' geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'forcing',1)40 md = checkfield(md,'fieldname','geometry.surface' ,'NaN',1,'size',[md.mesh.numberofvertices]) 41 md = checkfield(md,'fieldname','geometry.bed' ,'NaN',1,'size',[md.mesh.numberofvertices]) 42 md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'forcing',1) 43 43 if any((self.thickness-self.surface+self.bed)>10**-9): 44 44 md.checkmessage("equality thickness=surface-bed violated") 45 45 if solution==TransientSolutionEnum() and md.transient.isgroundingline: 46 md = checkfield(md,' geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices])46 md = checkfield(md,'fieldname','geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices]) 47 47 48 48 return md -
TabularUnified issm/trunk-jpl/src/m/classes/gia.m ¶
r15767 r16764 25 25 26 26 if ~ismember(GiaAnalysisEnum(),analyses), return; end 27 md = checkfield(md,' gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);28 md = checkfield(md,' gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);29 md = checkfield(md,' gia.cross_section_shape','numel',[1],'values',[1,2]);27 md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0); 28 md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0); 29 md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2]); 30 30 31 31 %be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings -
TabularUnified issm/trunk-jpl/src/m/classes/gia.py ¶
r15767 r16764 42 42 return md 43 43 44 md = checkfield(md,' gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)45 md = checkfield(md,' gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)46 md = checkfield(md,' gia.cross_section_shape','numel',[1],'values',[1,2])44 md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0) 45 md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0) 46 md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2]) 47 47 48 48 #be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings -
TabularUnified issm/trunk-jpl/src/m/classes/groundingline.m ¶
r15987 r16764 29 29 function md = checkconsistency(obj,md,solution,analyses) % {{{ 30 30 31 md = checkfield(md,' groundingline.migration','values',{'None' 'AgressiveMigration' 'SoftMigration' 'SubelementMigration','SubelementMigration2'});31 md = checkfield(md,'fieldname','groundingline.migration','values',{'None' 'AgressiveMigration' 'SoftMigration' 'SubelementMigration','SubelementMigration2'}); 32 32 33 33 if ~strcmp(obj.migration,'None'), -
TabularUnified issm/trunk-jpl/src/m/classes/groundingline.py ¶
r16005 r16764 42 42 def checkconsistency(self,md,solution,analyses): # {{{ 43 43 44 md = checkfield(md,' groundingline.migration','values',['None','AgressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2'])44 md = checkfield(md,'fieldname','groundingline.migration','values',['None','AgressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2']) 45 45 46 46 if not strcmp(self.migration,'None'): -
TabularUnified issm/trunk-jpl/src/m/classes/hydrologydc.m ¶
r16726 r16764 72 72 end 73 73 74 md = checkfield(md,' hydrology.water_compressibility','>',0,'numel',1);75 md = checkfield(md,' hydrology.isefficientlayer','numel',[1],'values',[0 1]);76 md = checkfield(md,' hydrology.penalty_factor','>',0,'numel',1);77 md = checkfield(md,' hydrology.rel_tol','>',0,'numel',1);78 md = checkfield(md,' hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]);79 md = checkfield(md,' hydrology.transfer_flag','numel',[1],'values',[0 1]);74 md = checkfield(md,'fieldname','hydrology.water_compressibility','>',0,'numel',1); 75 md = checkfield(md,'fieldname','hydrology.isefficientlayer','numel',[1],'values',[0 1]); 76 md = checkfield(md,'fieldname','hydrology.penalty_factor','>',0,'numel',1); 77 md = checkfield(md,'fieldname','hydrology.rel_tol','>',0,'numel',1); 78 md = checkfield(md,'fieldname','hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]); 79 md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0 1]); 80 80 if obj.sedimentlimit_flag==1, 81 md = checkfield(md,' hydrology.sedimentlimit','>',0,'numel',1);81 md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0,'numel',1); 82 82 end 83 83 if obj.transfer_flag==1, 84 md = checkfield(md,' hydrology.leakage_factor','>',0,'numel',1);84 md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0,'numel',1); 85 85 end 86 86 87 md = checkfield(md,' hydrology.spcsediment_head','forcing',1);88 md = checkfield(md,' hydrology.sediment_compressibility','>',0,'numel',1);89 md = checkfield(md,' hydrology.sediment_porosity','>',0,'numel',1);90 md = checkfield(md,' hydrology.sediment_thickness','>',0,'numel',1);91 md = checkfield(md,' hydrology.sediment_transmitivity','>',0,'numel',1);87 md = checkfield(md,'fieldname','hydrology.spcsediment_head','forcing',1); 88 md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0,'numel',1); 89 md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0,'numel',1); 90 md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0,'numel',1); 91 md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>',0,'numel',1); 92 92 93 93 if obj.isefficientlayer==1, 94 md = checkfield(md,' hydrology.spcepl_head','forcing',1);95 md = checkfield(md,' hydrology.mask_eplactive','size',[md.mesh.numberofvertices 1],'values',[0 1]);96 md = checkfield(md,' hydrology.epl_compressibility','>',0,'numel',1);97 md = checkfield(md,' hydrology.epl_porosity','>',0,'numel',1);98 md = checkfield(md,' hydrology.epl_initial_thickness','>',0,'numel',1);99 md = checkfield(md,' hydrology.epl_conductivity','>',0,'numel',1);94 md = checkfield(md,'fieldname','hydrology.spcepl_head','forcing',1); 95 md = checkfield(md,'fieldname','hydrology.mask_eplactive','size',[md.mesh.numberofvertices 1],'values',[0 1]); 96 md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0,'numel',1); 97 md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0,'numel',1); 98 md = checkfield(md,'fieldname','hydrology.epl_initial_thickness','>',0,'numel',1); 99 md = checkfield(md,'fieldname','hydrology.epl_conductivity','>',0,'numel',1); 100 100 end 101 101 end -
TabularUnified issm/trunk-jpl/src/m/classes/hydrologyshreve.m ¶
r15133 r16764 44 44 end 45 45 46 md = checkfield(md,' hydrology.spcwatercolumn','forcing',1);47 md = checkfield(md,' hydrology.stabilization','>=',0);46 md = checkfield(md,'fieldname','hydrology.spcwatercolumn','forcing',1); 47 md = checkfield(md,'fieldname','hydrology.stabilization','>=',0); 48 48 end % }}} 49 49 function disp(obj) % {{{ -
TabularUnified issm/trunk-jpl/src/m/classes/hydrologyshreve.py ¶
r15133 r16764 57 57 return md 58 58 59 md = checkfield(md,' hydrology.spcwatercolumn','forcing',1)60 md = checkfield(md,' hydrology.stabilization','>=',0)59 md = checkfield(md,'fieldname','hydrology.spcwatercolumn','forcing',1) 60 md = checkfield(md,'fieldname','hydrology.stabilization','>=',0) 61 61 62 62 return md -
TabularUnified issm/trunk-jpl/src/m/classes/initialization.m ¶
r16470 r16764 32 32 if ismember(StressbalanceAnalysisEnum(),analyses) 33 33 if ~(isnan(md.initialization.vx) | isnan(md.initialization.vy)), 34 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);35 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);34 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]); 35 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]); 36 36 end 37 37 end 38 38 if ismember(MasstransportAnalysisEnum(),analyses), 39 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);40 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);39 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]); 40 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]); 41 41 end 42 42 if ismember(BalancethicknessAnalysisEnum(),analyses) & solution==BalancethicknessSolutionEnum, 43 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);44 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);43 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]); 44 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]); 45 45 %Triangle with zero velocity 46 46 if any(sum(abs(md.initialization.vx(md.mesh.elements)),2)==0 & sum(abs(md.initialization.vy(md.mesh.elements)),2)==0) … … 49 49 end 50 50 if ismember(ThermalAnalysisEnum(),analyses), 51 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);52 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);51 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]); 52 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]); 53 53 if strcmp(meshtype(md.mesh),'3D') 54 md = checkfield(md,' initialization.vz','NaN',1,'size',[md.mesh.numberofvertices 1]);54 md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices 1]); 55 55 end 56 md = checkfield(md,' initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices 1]);56 md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices 1]); 57 57 end 58 58 if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy) 59 md = checkfield(md,' initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]);60 md = checkfield(md,' initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices 1]);59 md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]); 60 md = checkfield(md,'fieldname','initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices 1]); 61 61 end 62 62 if ismember(HydrologyShreveAnalysisEnum(),analyses), 63 63 if isa(md.hydrology,'hydrologyshreve'), 64 md = checkfield(md,' initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]);64 md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]); 65 65 end 66 66 end 67 67 if ismember(HydrologyDCInefficientAnalysisEnum(),analyses), 68 68 if isa(md.hydrology,'hydrologydc'), 69 md = checkfield(md,' initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices 1]);69 md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices 1]); 70 70 end 71 71 end … … 73 73 if isa(md.hydrology,'hydrologydc'), 74 74 if md.hydrology.isefficientlayer==1, 75 md = checkfield(md,' initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]);75 md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]); 76 76 end 77 77 end -
TabularUnified issm/trunk-jpl/src/m/classes/initialization.py ¶
r16470 r16764 50 50 if StressbalanceAnalysisEnum() in analyses: 51 51 if not numpy.any(numpy.logical_or(numpy.isnan(md.initialization.vx),numpy.isnan(md.initialization.vy))): 52 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])53 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])52 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices]) 53 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices]) 54 54 if MasstransportAnalysisEnum() in analyses: 55 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])56 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])55 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices]) 56 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices]) 57 57 if BalancethicknessAnalysisEnum() in analyses: 58 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])59 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])58 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices]) 59 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices]) 60 60 #Triangle with zero velocity 61 61 if numpy.any(numpy.logical_and(numpy.sum(numpy.abs(md.initialization.vx[md.mesh.elements-1]),axis=1)==0,\ … … 63 63 md.checkmessage("at least one triangle has all its vertices with a zero velocity") 64 64 if ThermalAnalysisEnum() in analyses: 65 md = checkfield(md,' initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])66 md = checkfield(md,' initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])65 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices]) 66 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices]) 67 67 if strcmp(md.mesh.meshtype(),'3D'): 68 md = checkfield(md,' initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])69 md = checkfield(md,' initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])68 md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices]) 69 md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices]) 70 70 if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy): 71 md = checkfield(md,' initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])72 md = checkfield(md,' initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices])71 md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices]) 72 md = checkfield(md,'fieldname','initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices]) 73 73 if HydrologyShreveAnalysisEnum() in analyses: 74 md = checkfield(md,' initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])74 md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices]) 75 75 return md 76 76 # }}} -
TabularUnified issm/trunk-jpl/src/m/classes/inversion.m ¶
r16576 r16764 107 107 num_costfunc=size(md.inversion.cost_functions,2); 108 108 109 md = checkfield(md,' inversion.iscontrol','values',[0 1]);110 md = checkfield(md,' inversion.tao','values',[0 1]);111 md = checkfield(md,' inversion.incomplete_adjoint','values',[0 1]);112 md = checkfield(md,' inversion.control_parameters','cell',1,'values',...109 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0 1]); 110 md = checkfield(md,'fieldname','inversion.tao','values',[0 1]); 111 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]); 112 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',... 113 113 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'DamageDbar' 'Vx' 'Vy' 'Thickness'}); 114 md = checkfield(md,' inversion.nsteps','numel',1,'>=',0);115 md = checkfield(md,' inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0);116 md = checkfield(md,' inversion.step_threshold','size',[md.inversion.nsteps 1]);117 md = checkfield(md,' inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);118 md = checkfield(md,' inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);119 md = checkfield(md,' inversion.gradient_scaling','size',[md.inversion.nsteps num_controls]);120 md = checkfield(md,' inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);121 md = checkfield(md,' inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);114 md = checkfield(md,'fieldname','inversion.nsteps','numel',1,'>=',0); 115 md = checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0); 116 md = checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps 1]); 117 md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]); 118 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0); 119 md = checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps num_controls]); 120 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]); 121 md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]); 122 122 123 123 %Only SSA, HO and FS are supported right now … … 129 129 130 130 if solution==BalancethicknessSolutionEnum() 131 md = checkfield(md,' inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);131 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 132 132 elseif solution==BalancethicknessSoftSolutionEnum() 133 md = checkfield(md,' inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);133 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 134 134 else 135 md = checkfield(md,' inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);136 md = checkfield(md,' inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);135 md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 136 md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 137 137 end 138 138 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/inversion.py ¶
r16307 r16764 116 116 num_costfunc=numpy.size(md.inversion.cost_functions) 117 117 118 md = checkfield(md,' inversion.iscontrol','values',[0,1])119 md = checkfield(md,' inversion.tao','values',[0,1])120 md = checkfield(md,' inversion.incomplete_adjoint','values',[0,1])121 md = checkfield(md,' inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar','DamageDbar','Vx','Vy'])122 md = checkfield(md,' inversion.nsteps','numel',[1],'>=',0)123 md = checkfield(md,' inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0)124 md = checkfield(md,' inversion.step_threshold','size',[md.inversion.nsteps])125 md = checkfield(md,' inversion.cost_functions','size',[num_costfunc],'values',[101,102,103,104,105,201,501,502,503,504,505])126 md = checkfield(md,' inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)127 md = checkfield(md,' inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls])128 md = checkfield(md,' inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls])129 md = checkfield(md,' inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])118 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1]) 119 md = checkfield(md,'fieldname','inversion.tao','values',[0,1]) 120 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1]) 121 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar','DamageDbar','Vx','Vy']) 122 md = checkfield(md,'fieldname','inversion.nsteps','numel',[1],'>=',0) 123 md = checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0) 124 md = checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps]) 125 md = checkfield(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',[101,102,103,104,105,201,501,502,503,504,505]) 126 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0) 127 md = checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls]) 128 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls]) 129 md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls]) 130 130 131 131 #Only SSA, HO and FS are supported right now … … 135 135 136 136 if solution==BalancethicknessSolutionEnum(): 137 md = checkfield(md,' inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)137 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1) 138 138 else: 139 md = checkfield(md,' inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)140 md = checkfield(md,' inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)139 md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1) 140 md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1) 141 141 142 142 return md -
TabularUnified issm/trunk-jpl/src/m/classes/mask.m ¶
r16455 r16764 23 23 function md = checkconsistency(obj,md,solution,analyses) % {{{ 24 24 25 md = checkfield(md,' mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);26 md = checkfield(md,' mask.ice_levelset' ,'size',[md.mesh.numberofvertices 1]);25 md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]); 26 md = checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices 1]); 27 27 isice=(md.mask.ice_levelset>0); 28 28 if any(sum(isice(md.mesh.elements),2)==0), -
TabularUnified issm/trunk-jpl/src/m/classes/mask.py ¶
r15987 r16764 32 32 def checkconsistency(self,md,solution,analyses): # {{{ 33 33 34 md = checkfield(md,' mask.ice_levelset' ,'size',[md.mesh.numberofvertices])34 md = checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices]) 35 35 isice=numpy.array(md.mask.ice_levelset>0,int) 36 36 totallyicefree=(numpy.sum(isice[md.mesh.elements-1],axis=1)==0).astype(int) -
TabularUnified issm/trunk-jpl/src/m/classes/masstransport.m ¶
r16470 r16764 87 87 if ~ismember(MasstransportAnalysisEnum(),analyses) | (solution==TransientSolutionEnum() & md.transient.ismasstransport==0), return; end 88 88 89 md = checkfield(md,' masstransport.spcthickness','forcing',1);90 md = checkfield(md,' masstransport.isfreesurface','values',[0 1]);91 md = checkfield(md,' masstransport.hydrostatic_adjustment','values',{'Absolute' 'Incremental'});92 md = checkfield(md,' masstransport.stabilization','values',[0 1 2 3]);93 md = checkfield(md,' masstransport.min_thickness','>',0);94 md = checkfield(md,' masstransport.requested_outputs','stringrow',1);89 md = checkfield(md,'fieldname','masstransport.spcthickness','forcing',1); 90 md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0 1]); 91 md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',{'Absolute' 'Incremental'}); 92 md = checkfield(md,'fieldname','masstransport.stabilization','values',[0 1 2 3]); 93 md = checkfield(md,'fieldname','masstransport.min_thickness','>',0); 94 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1); 95 95 96 96 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/masstransport.py ¶
r16464 r16764 67 67 return md 68 68 69 md = checkfield(md,' masstransport.spcthickness','forcing',1)70 md = checkfield(md,' masstransport.isfreesurface','values',[0,1])71 md = checkfield(md,' masstransport.hydrostatic_adjustment','values',['Absolute','Incremental'])72 md = checkfield(md,' masstransport.stabilization','values',[0,1,2,3])73 md = checkfield(md,' masstransport.min_thickness','>',0)74 md = checkfield(md,' masstransport.requested_outputs','stringrow',1)69 md = checkfield(md,'fieldname','masstransport.spcthickness','forcing',1) 70 md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0,1]) 71 md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute','Incremental']) 72 md = checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3]) 73 md = checkfield(md,'fieldname','masstransport.min_thickness','>',0) 74 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 75 75 76 76 return md -
TabularUnified issm/trunk-jpl/src/m/classes/matice.m ¶
r16620 r16764 98 98 end % }}} 99 99 function md = checkconsistency(obj,md,solution,analyses) % {{{ 100 md = checkfield(md,' materials.rho_ice','>',0);101 md = checkfield(md,' materials.rho_water','>',0);102 md = checkfield(md,' materials.rho_freshwater','>',0);103 md = checkfield(md,' materials.mu_water','>',0);104 md = checkfield(md,' materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);105 md = checkfield(md,' materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);106 md = checkfield(md,' materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'});100 md = checkfield(md,'fieldname','materials.rho_ice','>',0); 101 md = checkfield(md,'fieldname','materials.rho_water','>',0); 102 md = checkfield(md,'fieldname','materials.rho_freshwater','>',0); 103 md = checkfield(md,'fieldname','materials.mu_water','>',0); 104 md = checkfield(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]); 105 md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]); 106 md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'}); 107 107 108 108 if ismember(GiaAnalysisEnum(),analyses), 109 md = checkfield(md,' materials.lithosphere_shear_modulus','>',0,'numel',1);110 md = checkfield(md,' materials.lithosphere_density','>',0,'numel',1);111 md = checkfield(md,' materials.mantle_shear_modulus','>',0,'numel',1);112 md = checkfield(md,' materials.mantle_density','>',0,'numel',1);109 md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1); 110 md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',1); 111 md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1); 112 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1); 113 113 end 114 114 -
TabularUnified issm/trunk-jpl/src/m/classes/matice.py ¶
r16590 r16764 113 113 #}}} 114 114 def checkconsistency(self,md,solution,analyses): # {{{ 115 md = checkfield(md,' materials.rho_ice','>',0)116 md = checkfield(md,' materials.rho_water','>',0)117 md = checkfield(md,' materials.rho_freshwater','>',0)118 md = checkfield(md,' materials.mu_water','>',0)119 md = checkfield(md,' materials.rheology_B','>',0,'size',[md.mesh.numberofvertices])120 md = checkfield(md,' materials.rheology_n','>',0,'size',[md.mesh.numberofelements])121 md = checkfield(md,' materials.rheology_law','values',['None','Paterson','Arrhenius','LliboutryDuval'])122 md = checkfield(md,' materials.lithosphere_shear_modulus','>',0,'numel',[1]);123 md = checkfield(md,' materials.lithosphere_density','>',0,'numel',[1]);124 md = checkfield(md,' materials.mantle_shear_modulus','>',0,'numel',[1]);125 md = checkfield(md,' materials.mantle_density','>',0,'numel',[1]);115 md = checkfield(md,'fieldname','materials.rho_ice','>',0) 116 md = checkfield(md,'fieldname','materials.rho_water','>',0) 117 md = checkfield(md,'fieldname','materials.rho_freshwater','>',0) 118 md = checkfield(md,'fieldname','materials.mu_water','>',0) 119 md = checkfield(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices]) 120 md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements]) 121 md = checkfield(md,'fieldname','materials.rheology_law','values',['None','Paterson','Arrhenius','LliboutryDuval']) 122 md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]); 123 md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]); 124 md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]); 125 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]); 126 126 return md 127 127 # }}} -
TabularUnified issm/trunk-jpl/src/m/classes/mesh.m ¶
r16294 r16764 79 79 function md = checkconsistency(obj,md,solution,analyses) % {{{ 80 80 81 md = checkfield(md,' mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);82 md = checkfield(md,' mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);83 md = checkfield(md,' mesh.z','NaN',1,'size',[md.mesh.numberofvertices 1]);84 md = checkfield(md,' mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);81 md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]); 82 md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]); 83 md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices 1]); 84 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices); 85 85 if(md.mesh.dimension==2), 86 md = checkfield(md,' mesh.elements','size',[md.mesh.numberofelements 3]);87 else 88 md = checkfield(md,' mesh.elements','size',[md.mesh.numberofelements 6]);86 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]); 87 else 88 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 6]); 89 89 end 90 90 if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:))))); 91 91 md = checkmessage(md,'orphan nodes have been found. Check the mesh outline'); 92 92 end 93 md = checkfield(md,' mesh.dimension','values',[2 3]);94 md = checkfield(md,' mesh.numberoflayers','>=',0);95 md = checkfield(md,' mesh.numberofelements','>',0);96 md = checkfield(md,' mesh.numberofvertices','>',0);93 md = checkfield(md,'fieldname','mesh.dimension','values',[2 3]); 94 md = checkfield(md,'fieldname','mesh.numberoflayers','>=',0); 95 md = checkfield(md,'fieldname','mesh.numberofelements','>',0); 96 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0); 97 97 %no checks for numberofedges lat long and hemisphere 98 md = checkfield(md,' mesh.elementonbed','size',[md.mesh.numberofelements 1],'values',[0 1]);99 md = checkfield(md,' mesh.elementonsurface','size',[md.mesh.numberofelements 1],'values',[0 1]);100 md = checkfield(md,' mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);101 md = checkfield(md,' mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);98 md = checkfield(md,'fieldname','mesh.elementonbed','size',[md.mesh.numberofelements 1],'values',[0 1]); 99 md = checkfield(md,'fieldname','mesh.elementonsurface','size',[md.mesh.numberofelements 1],'values',[0 1]); 100 md = checkfield(md,'fieldname','mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]); 101 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]); 102 102 if (md.mesh.dimension==3), 103 md = checkfield(md,' mesh.z','>=',md.geometry.bed-10^-10,'message','''mesh.z'' lower than bedrock');104 md = checkfield(md,' mesh.z','<=',md.geometry.surface+10^-10,'message','''mesh.z'' higher than surface elevation');103 md = checkfield(md,'fieldname','mesh.z','>=',md.geometry.bed-10^-10,'message','''mesh.z'' lower than bedrock'); 104 md = checkfield(md,'fieldname','mesh.z','<=',md.geometry.surface+10^-10,'message','''mesh.z'' higher than surface elevation'); 105 105 end 106 106 if (md.mesh.dimension==2), 107 md = checkfield(md,' mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');108 else 109 md = checkfield(md,' mesh.average_vertex_connectivity','>=',24,'message','''mesh.average_vertex_connectivity'' should be at least 24 in 3d');107 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d'); 108 else 109 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message','''mesh.average_vertex_connectivity'' should be at least 24 in 3d'); 110 110 end 111 111 … … 114 114 case MasstransportSolutionEnum(), 115 115 if md.masstransport.stabilization==3, 116 md = checkfield(md,' mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');116 md = checkfield(md,'fieldname','mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes'); 117 117 end 118 118 case BalancethicknessSolutionEnum(), 119 119 if md.balancethickness.stabilization==3, 120 md = checkfield(md,' mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');120 md = checkfield(md,'fieldname','mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes'); 121 121 end 122 122 case TransientSolutionEnum(), 123 123 if md.transient.ismasstransport & md.masstransport.stabilization==3, 124 md = checkfield(md,' mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');124 md = checkfield(md,'fieldname','mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes'); 125 125 end 126 126 case ThermalSolutionEnum(), 127 md = checkfield(md,' mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes');127 md = checkfield(md,'fieldname','mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes'); 128 128 end 129 129 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/mesh.py ¶
r16294 r16764 123 123 def checkconsistency(self,md,solution,analyses): # {{{ 124 124 125 md = checkfield(md,' mesh.x','NaN',1,'size',[md.mesh.numberofvertices])126 md = checkfield(md,' mesh.y','NaN',1,'size',[md.mesh.numberofvertices])127 md = checkfield(md,' mesh.z','NaN',1,'size',[md.mesh.numberofvertices])128 md = checkfield(md,' mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))125 md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices]) 126 md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices]) 127 md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices]) 128 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1)) 129 129 if md.mesh.dimension==2: 130 md = checkfield(md,' mesh.elements','size',[md.mesh.numberofelements,3])130 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3]) 131 131 else: 132 md = checkfield(md,' mesh.elements','size',[md.mesh.numberofelements,6])132 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,6]) 133 133 if numpy.any(numpy.logical_not(ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))): 134 134 md.checkmessage("orphan nodes have been found. Check the mesh outline") 135 md = checkfield(md,' mesh.dimension','values',[2,3])136 md = checkfield(md,' mesh.numberoflayers','>=',0)137 md = checkfield(md,' mesh.numberofelements','>',0)138 md = checkfield(md,' mesh.numberofvertices','>',0)135 md = checkfield(md,'fieldname','mesh.dimension','values',[2,3]) 136 md = checkfield(md,'fieldname','mesh.numberoflayers','>=',0) 137 md = checkfield(md,'fieldname','mesh.numberofelements','>',0) 138 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0) 139 139 #no checks for numberofedges lat long and hemisphere 140 md = checkfield(md,' mesh.elementonbed','size',[md.mesh.numberofelements],'values',[0,1])141 md = checkfield(md,' mesh.elementonsurface','size',[md.mesh.numberofelements],'values',[0,1])142 md = checkfield(md,' mesh.vertexonbed','size',[md.mesh.numberofvertices],'values',[0,1])143 md = checkfield(md,' mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1])140 md = checkfield(md,'fieldname','mesh.elementonbed','size',[md.mesh.numberofelements],'values',[0,1]) 141 md = checkfield(md,'fieldname','mesh.elementonsurface','size',[md.mesh.numberofelements],'values',[0,1]) 142 md = checkfield(md,'fieldname','mesh.vertexonbed','size',[md.mesh.numberofvertices],'values',[0,1]) 143 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1]) 144 144 if md.mesh.dimension==2: 145 md = checkfield(md,' mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")145 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d") 146 146 else: 147 md = checkfield(md,' mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d")147 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d") 148 148 149 149 #Solution specific checks 150 150 if solution==MasstransportSolutionEnum(): 151 151 if md.masstransport.stabilization==3: 152 md = checkfield(md,' mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")152 md = checkfield(md,'fieldname','mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes") 153 153 elif solution==BalancethicknessSolutionEnum(): 154 154 if md.balancethickness.stabilization==3: 155 md = checkfield(md,' mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")155 md = checkfield(md,'fieldname','mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes") 156 156 elif solution==TransientSolutionEnum(): 157 157 if md.transient.ismasstransport and md.masstransport.stabilization==3: 158 md = checkfield(md,' mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")158 md = checkfield(md,'fieldname','mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes") 159 159 elif solution==ThermalSolutionEnum(): 160 md = checkfield(md,' mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes')160 md = checkfield(md,'fieldname','mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes') 161 161 162 162 return md -
TabularUnified issm/trunk-jpl/src/m/classes/mesh2d.m ¶
r16295 r16764 49 49 function md = checkconsistency(obj,md,solution,analyses) % {{{ 50 50 51 md = checkfield(md,' mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);52 md = checkfield(md,' mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);53 md = checkfield(md,' mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);54 md = checkfield(md,' mesh.elements','size',[md.mesh.numberofelements 3]);51 md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]); 52 md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]); 53 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices); 54 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]); 55 55 if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:))))); 56 56 md = checkmessage(md,'orphan nodes have been found. Check the mesh outline'); 57 57 end 58 md = checkfield(md,' mesh.numberofelements','>',0);59 md = checkfield(md,' mesh.numberofvertices','>',0);60 md = checkfield(md,' mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');58 md = checkfield(md,'fieldname','mesh.numberofelements','>',0); 59 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0); 60 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d'); 61 61 62 62 switch(solution), -
TabularUnified issm/trunk-jpl/src/m/classes/mesh2d.py ¶
r16295 r16764 83 83 def checkconsistency(self,md,solution,analyses): # {{{ 84 84 85 md = checkfield(md,' mesh.x','NaN',1,'size',[md.mesh.numberofvertices])86 md = checkfield(md,' mesh.y','NaN',1,'size',[md.mesh.numberofvertices])87 md = checkfield(md,' mesh.z','NaN',1,'size',[md.mesh.numberofvertices])88 md = checkfield(md,' mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))89 md = checkfield(md,' mesh.elements','size',[md.mesh.numberofelements,3])85 md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices]) 86 md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices]) 87 md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices]) 88 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1)) 89 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3]) 90 90 if numpy.any(numpy.logical_not(ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))): 91 91 md.checkmessage("orphan nodes have been found. Check the mesh outline") 92 md = checkfield(md,' mesh.numberofelements','>',0)93 md = checkfield(md,' mesh.numberofvertices','>',0)94 md = checkfield(md,' mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")92 md = checkfield(md,'fieldname','mesh.numberofelements','>',0) 93 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0) 94 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d") 95 95 if solution==ThermalSolutionEnum(): 96 96 md.checkmessage("thermal not supported for 2d mesh") -
TabularUnified issm/trunk-jpl/src/m/classes/mesh2dvertical.m ¶
r16395 r16764 58 58 function md = checkconsistency(obj,md,solution,analyses) % {{{ 59 59 60 md = checkfield(md,' mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);61 md = checkfield(md,' mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);62 md = checkfield(md,' mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);63 md = checkfield(md,' mesh.elements','size',[md.mesh.numberofelements 3]);60 md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]); 61 md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]); 62 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices); 63 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]); 64 64 if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:))))); 65 65 md = checkmessage(md,'orphan nodes have been found. Check the mesh outline'); 66 66 end 67 md = checkfield(md,' mesh.numberofelements','>',0);68 md = checkfield(md,' mesh.numberofvertices','>',0);69 md = checkfield(md,' mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);70 md = checkfield(md,' mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);71 md = checkfield(md,' mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');67 md = checkfield(md,'fieldname','mesh.numberofelements','>',0); 68 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0); 69 md = checkfield(md,'fieldname','mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]); 70 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]); 71 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d'); 72 72 73 73 switch(solution), -
TabularUnified issm/trunk-jpl/src/m/classes/miscellaneous.m ¶
r15131 r16764 21 21 function md = checkconsistency(obj,md,solution,analyses) % {{{ 22 22 23 md = checkfield(md,' miscellaneous.name','empty',1);23 md = checkfield(md,'fieldname','miscellaneous.name','empty',1); 24 24 25 25 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/miscellaneous.py ¶
r15131 r16764 34 34 #}}} 35 35 def checkconsistency(self,md,solution,analyses): # {{{ 36 md = checkfield(md,' miscellaneous.name','empty',1)36 md = checkfield(md,'fieldname','miscellaneous.name','empty',1) 37 37 return md 38 38 # }}} -
TabularUnified issm/trunk-jpl/src/m/classes/outputdefinition.m ¶
r16407 r16764 24 24 function md = checkconsistency(obj,md,solution,analyses) % {{{ 25 25 26 md = checkfield(md,' outputdefinition.definitions','cell',1);26 md = checkfield(md,'fieldname','outputdefinition.definitions','cell',1); 27 27 28 28 for i=1:length(obj.definitions), -
TabularUnified issm/trunk-jpl/src/m/classes/outputdefinition.py ¶
r16407 r16764 29 29 def checkconsistency(self,md,solution,analyses): # {{{ 30 30 31 md = checkfield(md,' outputdefinition.definitions','cell',1)31 md = checkfield(md,'fieldname','outputdefinition.definitions','cell',1) 32 32 for definition in self.definitions: 33 33 definition.checkconsistency(md,solution,analyses); -
TabularUnified issm/trunk-jpl/src/m/classes/settings.m ¶
r16470 r16764 49 49 function md = checkconsistency(obj,md,solution,analyses) % {{{ 50 50 51 md = checkfield(md,' settings.io_gather','numel',[1],'values',[0 1]);52 md = checkfield(md,' settings.lowmem','numel',[1],'values',[0 1]);53 md = checkfield(md,' settings.output_frequency','numel',[1],'>=',1);54 md = checkfield(md,' settings.waitonlock','numel',[1]);51 md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0 1]); 52 md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0 1]); 53 md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1); 54 md = checkfield(md,'fieldname','settings.waitonlock','numel',[1]); 55 55 56 56 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/settings.py ¶
r16470 r16764 51 51 #}}} 52 52 def checkconsistency(self,md,solution,analyses): # {{{ 53 md = checkfield(md,' settings.io_gather','numel',[1],'values',[0,1])54 md = checkfield(md,' settings.lowmem','numel',[1],'values',[0,1])55 md = checkfield(md,' settings.output_frequency','numel',[1],'>=',1)56 md = checkfield(md,' settings.waitonlock','numel',[1])53 md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0,1]) 54 md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1]) 55 md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1) 56 md = checkfield(md,'fieldname','settings.waitonlock','numel',[1]) 57 57 58 58 return md -
TabularUnified issm/trunk-jpl/src/m/classes/snowpack.m ¶
r16363 r16764 219 219 function md = checkconsistency(obj,md,solution,analyses) % {{{ 220 220 %snowpack: %{{{ 221 md=checkfield(md,' snowpack.snowpack_meas_tss','values',[0 1]);222 md=checkfield(md,' snowpack.snowpack_enforce_measured_snow_heights','values',[0 1]);223 md=checkfield(md,' snowpack.snowpack_sw_mode','values',[0 1 2]);224 md=checkfield(md,' snowpack.snowpack_incoming_longwave','values',[0 1]);225 md=checkfield(md,' snowpack.snowpack_height_of_wind_value','>=',0);226 md=checkfield(md,' snowpack.snowpack_height_of_meteo_values','>=',0);227 md=checkfield(md,' snowpack.snowpack_neutral','values',[-1 0 1]);228 md=checkfield(md,' snowpack.snowpack_roughness_length','>=',0);229 md=checkfield(md,' snowpack.snowpack_number_slopes','values',[1 3 5 9]);230 md=checkfield(md,' snowpack.snowpack_snow_redistribution','values',[0 1]);231 md=checkfield(md,' snowpack.snowpack_calculation_step_length','>',0);232 md=checkfield(md,' snowpack.snowpack_change_bc','values',[0 1]);233 md=checkfield(md,' snowpack.snowpack_thresh_change_bc','<=',0);234 md=checkfield(md,' snowpack.snowpack_snp_soil','values',[0 1]);235 md=checkfield(md,' snowpack.snowpack_soil_flux','values',[0 1]);236 md=checkfield(md,' snowpack.snowpack_geo_heat','>=',0);237 md=checkfield(md,' snowpack.snowpack_canopy','values',[0 1]);221 md=checkfield(md,'fieldname','snowpack.snowpack_meas_tss','values',[0 1]); 222 md=checkfield(md,'fieldname','snowpack.snowpack_enforce_measured_snow_heights','values',[0 1]); 223 md=checkfield(md,'fieldname','snowpack.snowpack_sw_mode','values',[0 1 2]); 224 md=checkfield(md,'fieldname','snowpack.snowpack_incoming_longwave','values',[0 1]); 225 md=checkfield(md,'fieldname','snowpack.snowpack_height_of_wind_value','>=',0); 226 md=checkfield(md,'fieldname','snowpack.snowpack_height_of_meteo_values','>=',0); 227 md=checkfield(md,'fieldname','snowpack.snowpack_neutral','values',[-1 0 1]); 228 md=checkfield(md,'fieldname','snowpack.snowpack_roughness_length','>=',0); 229 md=checkfield(md,'fieldname','snowpack.snowpack_number_slopes','values',[1 3 5 9]); 230 md=checkfield(md,'fieldname','snowpack.snowpack_snow_redistribution','values',[0 1]); 231 md=checkfield(md,'fieldname','snowpack.snowpack_calculation_step_length','>',0); 232 md=checkfield(md,'fieldname','snowpack.snowpack_change_bc','values',[0 1]); 233 md=checkfield(md,'fieldname','snowpack.snowpack_thresh_change_bc','<=',0); 234 md=checkfield(md,'fieldname','snowpack.snowpack_snp_soil','values',[0 1]); 235 md=checkfield(md,'fieldname','snowpack.snowpack_soil_flux','values',[0 1]); 236 md=checkfield(md,'fieldname','snowpack.snowpack_geo_heat','>=',0); 237 md=checkfield(md,'fieldname','snowpack.snowpack_canopy','values',[0 1]); 238 238 %}}} 239 239 %snowpackadvanced: %{{{ 240 md=checkfield(md,' snowpack.snowpackadvanced_variant','values',{'JAPAN','DEFAULT','ANTARCTICA'});241 md=checkfield(md,' snowpack.snowpackadvanced_hn_density','values',{'PARAMETERIZED','EVENT','MEASURED'});240 md=checkfield(md,'fieldname','snowpack.snowpackadvanced_variant','values',{'JAPAN','DEFAULT','ANTARCTICA'}); 241 md=checkfield(md,'fieldname','snowpack.snowpackadvanced_hn_density','values',{'PARAMETERIZED','EVENT','MEASURED'}); 242 242 %}}} 243 243 %general: %{{{ 244 md=checkfield(md,' snowpack.general_buff_chunk_size','>',0);245 md=checkfield(md,' snowpack.general_buff_before','>',0);244 md=checkfield(md,'fieldname','snowpack.general_buff_chunk_size','>',0); 245 md=checkfield(md,'fieldname','snowpack.general_buff_before','>',0); 246 246 %}}} 247 247 %input {{{ 248 md=checkfield(md,' snowpack.input_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'});249 md=checkfield(md,' snowpack.input_coordparam','values','null');250 md=checkfield(md,' snowpack.input_time_zone','>',-12,'<',12);251 md=checkfield(md,' snowpack.input_meteo','values',{'BORMA','COSMO','GEOTOP','GRIB','GSN','IMIS','SMET','SNOWPACK'});252 md=checkfield(md,' snowpack.input_meteopath','empty',1);253 md=checkfield(md,' snowpack.input_station1 ','empty',1);254 md=checkfield(md,' snowpack.input_snowfile1','empty',1);248 md=checkfield(md,'fieldname','snowpack.input_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'}); 249 md=checkfield(md,'fieldname','snowpack.input_coordparam','values','null'); 250 md=checkfield(md,'fieldname','snowpack.input_time_zone','>',-12,'<',12); 251 md=checkfield(md,'fieldname','snowpack.input_meteo','values',{'BORMA','COSMO','GEOTOP','GRIB','GSN','IMIS','SMET','SNOWPACK'}); 252 md=checkfield(md,'fieldname','snowpack.input_meteopath','empty',1); 253 md=checkfield(md,'fieldname','snowpack.input_station1 ','empty',1); 254 md=checkfield(md,'fieldname','snowpack.input_snowfile1','empty',1); 255 255 %}}} 256 256 %output {{{ 257 md=checkfield(md,' snowpack.output_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'});258 md=checkfield(md,' snowpack.output_coordparam','values','null');259 md=checkfield(md,' snowpack.output_time_zone','>',-12,'<',12);260 md=checkfield(md,' snowpack.output_meteopath','empty',1);261 md=checkfield(md,' snowpack.output_experiment','empty',1);262 md=checkfield(md,' snowpack.output_ts_write','values',[0 1]);263 md=checkfield(md,' snowpack.output_ts_start','>=',0);264 md=checkfield(md,' snowpack.output_ts_days_between','>=',0);265 md=checkfield(md,' snowpack.output_profile','values',{'ASCII','IMIS','ASCII IMIS'});266 md=checkfield(md,' snowpack.output_prof_write','values',[0 1]);267 md=checkfield(md,' snowpack.output_prof_start','>=',0);268 md=checkfield(md,' snowpack.output_prof_days_between','>=',0);257 md=checkfield(md,'fieldname','snowpack.output_coordsys','values',{'CH1903','UTM','UPS','PROJ4','LOCAL'}); 258 md=checkfield(md,'fieldname','snowpack.output_coordparam','values','null'); 259 md=checkfield(md,'fieldname','snowpack.output_time_zone','>',-12,'<',12); 260 md=checkfield(md,'fieldname','snowpack.output_meteopath','empty',1); 261 md=checkfield(md,'fieldname','snowpack.output_experiment','empty',1); 262 md=checkfield(md,'fieldname','snowpack.output_ts_write','values',[0 1]); 263 md=checkfield(md,'fieldname','snowpack.output_ts_start','>=',0); 264 md=checkfield(md,'fieldname','snowpack.output_ts_days_between','>=',0); 265 md=checkfield(md,'fieldname','snowpack.output_profile','values',{'ASCII','IMIS','ASCII IMIS'}); 266 md=checkfield(md,'fieldname','snowpack.output_prof_write','values',[0 1]); 267 md=checkfield(md,'fieldname','snowpack.output_prof_start','>=',0); 268 md=checkfield(md,'fieldname','snowpack.output_prof_days_between','>=',0); 269 269 %}}} 270 270 %interpolations1d %{{{ 271 md=checkfield(md,' snowpack.interpolations1d_window_size','>',0);272 md=checkfield(md,' snowpack.interpolations1d_hnw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});273 md=checkfield(md,' snowpack.interpolations1d_hs_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});274 md=checkfield(md,' snowpack.interpolations1d_tsg_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});275 md=checkfield(md,' snowpack.interpolations1d_rho_hn_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});276 md=checkfield(md,' snowpack.interpolations1d_vw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'});277 md=checkfield(md,' snowpack.interpolations1d_vw_args','values',{'EXTRAPOLATE'});271 md=checkfield(md,'fieldname','snowpack.interpolations1d_window_size','>',0); 272 md=checkfield(md,'fieldname','snowpack.interpolations1d_hnw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'}); 273 md=checkfield(md,'fieldname','snowpack.interpolations1d_hs_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'}); 274 md=checkfield(md,'fieldname','snowpack.interpolations1d_tsg_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'}); 275 md=checkfield(md,'fieldname','snowpack.interpolations1d_rho_hn_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'}); 276 md=checkfield(md,'fieldname','snowpack.interpolations1d_vw_resample','values',{'NONE','NEAREST_NEIGHBOUR','ACCUMULATE','LINEAR'}); 277 md=checkfield(md,'fieldname','snowpack.interpolations1d_vw_args','values',{'EXTRAPOLATE'}); 278 278 %}}} 279 279 %filters {{{ 280 280 filter_values={'MIN_MAX','RATE_FILTER1','RATE_FILTER2','UNHEATED_RAIN_GAUGE_FILTER','WMO_UNDERCATCH_FILTER','WMO_UNDERCATCH_FILTER-SIMPLIFIED','UNVENTILLATED_TEMPERATURE_SENSOR','ADD_AN_OFFSET'}; 281 281 282 md=checkfield(md,' snowpack.filters_ta_filter1','values',{filter_values});283 if strcmpi(md.snowpack.filters_ta_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_ta_filter1','size',[1 NaN]); end284 md=checkfield(md,' snowpack.filters_ta_arg1','values',{filter_values});285 if strcmpi(md.snowpack.filters_ta_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_ta_arg1','size',[1 NaN]); end286 md=checkfield(md,' snowpack.filters_rh_filter1','values',{filter_values});287 if strcmpi(md.snowpack.filters_rh_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rh_filter1','size',[1 NaN]); end288 md=checkfield(md,' snowpack.filters_rh_arg1','values',{filter_values});289 if strcmpi(md.snowpack.filters_rh_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rh_arg1','size',[1 NaN]); end290 md=checkfield(md,' snowpack.filters_rh_filter2','values',{filter_values});291 if strcmpi(md.snowpack.filters_rh_filter2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rh_filter2','size',[1 NaN]); end292 md=checkfield(md,' snowpack.filters_rh_arg2','values',{filter_values});293 if strcmpi(md.snowpack.filters_rh_arg2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rh_arg2','size',[1 NaN]); end294 md=checkfield(md,' snowpack.filters_iswr_filter1','values',{filter_values});295 if strcmpi(md.snowpack.filters_iswr_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_iswr_filter1','size',[1 NaN]); end296 md=checkfield(md,' snowpack.filters_iswr_arg1','values',{filter_values});297 if strcmpi(md.snowpack.filters_iswr_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_iswr_arg1','size',[1 NaN]); end298 md=checkfield(md,' snowpack.filters_iswr_filter2','values',{filter_values});299 if strcmpi(md.snowpack.filters_iswr_filter2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_iswr_filter2','size',[1 NaN]); end300 md=checkfield(md,' snowpack.filters_iswr_arg2','values',{filter_values});301 if strcmpi(md.snowpack.filters_iswr_arg2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_iswr_arg2','size',[1 NaN]); end302 md=checkfield(md,' snowpack.filters_rswr_filter1','values',{filter_values});303 if strcmpi(md.snowpack.filters_rswr_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rswr_filter1','size',[1 NaN]); end304 md=checkfield(md,' snowpack.filters_rswr_arg1','values',{filter_values});305 if strcmpi(md.snowpack.filters_rswr_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rswr_arg1','size',[1 NaN]); end306 md=checkfield(md,' snowpack.filters_rswr_filter2','values',{filter_values});307 if strcmpi(md.snowpack.filters_rswr_filter2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rswr_filter2','size',[1 NaN]); end308 md=checkfield(md,' snowpack.filters_rswr_arg2','values',{filter_values});309 if strcmpi(md.snowpack.filters_rswr_arg2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_rswr_arg2','size',[1 NaN]); end282 md=checkfield(md,'fieldname','snowpack.filters_ta_filter1','values',{filter_values}); 283 if strcmpi(md.snowpack.filters_ta_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ta_filter1','size',[1 NaN]); end 284 md=checkfield(md,'fieldname','snowpack.filters_ta_arg1','values',{filter_values}); 285 if strcmpi(md.snowpack.filters_ta_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ta_arg1','size',[1 NaN]); end 286 md=checkfield(md,'fieldname','snowpack.filters_rh_filter1','values',{filter_values}); 287 if strcmpi(md.snowpack.filters_rh_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_filter1','size',[1 NaN]); end 288 md=checkfield(md,'fieldname','snowpack.filters_rh_arg1','values',{filter_values}); 289 if strcmpi(md.snowpack.filters_rh_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_arg1','size',[1 NaN]); end 290 md=checkfield(md,'fieldname','snowpack.filters_rh_filter2','values',{filter_values}); 291 if strcmpi(md.snowpack.filters_rh_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_filter2','size',[1 NaN]); end 292 md=checkfield(md,'fieldname','snowpack.filters_rh_arg2','values',{filter_values}); 293 if strcmpi(md.snowpack.filters_rh_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rh_arg2','size',[1 NaN]); end 294 md=checkfield(md,'fieldname','snowpack.filters_iswr_filter1','values',{filter_values}); 295 if strcmpi(md.snowpack.filters_iswr_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_filter1','size',[1 NaN]); end 296 md=checkfield(md,'fieldname','snowpack.filters_iswr_arg1','values',{filter_values}); 297 if strcmpi(md.snowpack.filters_iswr_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_arg1','size',[1 NaN]); end 298 md=checkfield(md,'fieldname','snowpack.filters_iswr_filter2','values',{filter_values}); 299 if strcmpi(md.snowpack.filters_iswr_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_filter2','size',[1 NaN]); end 300 md=checkfield(md,'fieldname','snowpack.filters_iswr_arg2','values',{filter_values}); 301 if strcmpi(md.snowpack.filters_iswr_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_iswr_arg2','size',[1 NaN]); end 302 md=checkfield(md,'fieldname','snowpack.filters_rswr_filter1','values',{filter_values}); 303 if strcmpi(md.snowpack.filters_rswr_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_filter1','size',[1 NaN]); end 304 md=checkfield(md,'fieldname','snowpack.filters_rswr_arg1','values',{filter_values}); 305 if strcmpi(md.snowpack.filters_rswr_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_arg1','size',[1 NaN]); end 306 md=checkfield(md,'fieldname','snowpack.filters_rswr_filter2','values',{filter_values}); 307 if strcmpi(md.snowpack.filters_rswr_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_filter2','size',[1 NaN]); end 308 md=checkfield(md,'fieldname','snowpack.filters_rswr_arg2','values',{filter_values}); 309 if strcmpi(md.snowpack.filters_rswr_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_rswr_arg2','size',[1 NaN]); end 310 310 311 311 %for ta between 190 and 280 k; 312 md=checkfield(md,' snowpack.filters_ilwr_filter1','values',{filter_values});313 if strcmpi(md.snowpack.filters_ilwr_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_ilwr_filter1','size',[1 NaN]); end314 md=checkfield(md,' snowpack.filters_ilwr_arg1','values',{filter_values});315 if strcmpi(md.snowpack.filters_ilwr_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_ilwr_arg1','size',[1 NaN]); end316 md=checkfield(md,' snowpack.filters_ilwr_filter2','values',{filter_values});317 if strcmpi(md.snowpack.filters_ilwr_filter2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_ilwr_filter2','size',[1 NaN]); end318 md=checkfield(md,' snowpack.filters_ilwr_arg2','values',{filter_values});319 if strcmpi(md.snowpack.filters_ilwr_arg2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_ilwr_arg2','size',[1 NaN]); end320 md=checkfield(md,' snowpack.filters_tss_filter1','values',{filter_values});321 if strcmpi(md.snowpack.filters_tss_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_tss_filter1','size',[1 NaN]); end322 md=checkfield(md,' snowpack.filters_tss_arg1','values',{filter_values});323 if strcmpi(md.snowpack.filters_tss_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_tss_arg1','size',[1 NaN]); end324 md=checkfield(md,' snowpack.filters_tsg_filter1','values',{filter_values});325 if strcmpi(md.snowpack.filters_tsg_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_tsg_filter1','size',[1 NaN]); end326 md=checkfield(md,' snowpack.filters_tsg_arg1','values',{filter_values});327 if strcmpi(md.snowpack.filters_tsg_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_tsg_arg1','size',[1 NaN]); end328 md=checkfield(md,' snowpack.filters_vw_filter1','values',{filter_values});329 if strcmpi(md.snowpack.filters_vw_filter1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_vw_filter1','size',[1 NaN]); end330 md=checkfield(md,' snowpack.filters_vw_arg1','values',{filter_values});331 if strcmpi(md.snowpack.filters_vw_arg1,'MIN_MAX'), md=checkfield(md,' snowpack.filters_vw_arg1','size',[1 NaN]); end332 md=checkfield(md,' snowpack.filters_vw_filter2','values',{filter_values});333 if strcmpi(md.snowpack.filters_vw_filter2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_vw_filter2','size',[1 NaN]); end334 md=checkfield(md,' snowpack.filters_vw_arg2','values',{filter_values});335 if strcmpi(md.snowpack.filters_vw_arg2,'MIN_MAX'), md=checkfield(md,' snowpack.filters_vw_arg2','size',[1 NaN]); end312 md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter1','values',{filter_values}); 313 if strcmpi(md.snowpack.filters_ilwr_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter1','size',[1 NaN]); end 314 md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg1','values',{filter_values}); 315 if strcmpi(md.snowpack.filters_ilwr_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg1','size',[1 NaN]); end 316 md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter2','values',{filter_values}); 317 if strcmpi(md.snowpack.filters_ilwr_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_filter2','size',[1 NaN]); end 318 md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg2','values',{filter_values}); 319 if strcmpi(md.snowpack.filters_ilwr_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_ilwr_arg2','size',[1 NaN]); end 320 md=checkfield(md,'fieldname','snowpack.filters_tss_filter1','values',{filter_values}); 321 if strcmpi(md.snowpack.filters_tss_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tss_filter1','size',[1 NaN]); end 322 md=checkfield(md,'fieldname','snowpack.filters_tss_arg1','values',{filter_values}); 323 if strcmpi(md.snowpack.filters_tss_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tss_arg1','size',[1 NaN]); end 324 md=checkfield(md,'fieldname','snowpack.filters_tsg_filter1','values',{filter_values}); 325 if strcmpi(md.snowpack.filters_tsg_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tsg_filter1','size',[1 NaN]); end 326 md=checkfield(md,'fieldname','snowpack.filters_tsg_arg1','values',{filter_values}); 327 if strcmpi(md.snowpack.filters_tsg_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_tsg_arg1','size',[1 NaN]); end 328 md=checkfield(md,'fieldname','snowpack.filters_vw_filter1','values',{filter_values}); 329 if strcmpi(md.snowpack.filters_vw_filter1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_filter1','size',[1 NaN]); end 330 md=checkfield(md,'fieldname','snowpack.filters_vw_arg1','values',{filter_values}); 331 if strcmpi(md.snowpack.filters_vw_arg1,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_arg1','size',[1 NaN]); end 332 md=checkfield(md,'fieldname','snowpack.filters_vw_filter2','values',{filter_values}); 333 if strcmpi(md.snowpack.filters_vw_filter2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_filter2','size',[1 NaN]); end 334 md=checkfield(md,'fieldname','snowpack.filters_vw_arg2','values',{filter_values}); 335 if strcmpi(md.snowpack.filters_vw_arg2,'MIN_MAX'), md=checkfield(md,'fieldname','snowpack.filters_vw_arg2','size',[1 NaN]); end 336 336 337 337 %}}} -
TabularUnified issm/trunk-jpl/src/m/classes/spheremesh.m ¶
r16287 r16764 42 42 function md = checkconsistency(obj,md,solution,analyses) % {{{ 43 43 44 md = checkfield(md,' spheremesh.x','NaN',1,'size',[md.spheremesh.numberofvertices 1]);45 md = checkfield(md,' spheremesh.y','NaN',1,'size',[md.spheremesh.numberofvertices 1]);46 md = checkfield(md,' spheremesh.z','NaN',1,'size',[md.spheremesh.numberofvertices 1]);47 md = checkfield(md,' spheremesh.r','NaN',1,'size',[md.spheremesh.numberofvertices 1]);48 md = checkfield(md,' spheremesh.theta','NaN',1,'size',[md.spheremesh.numberofvertices 1]);49 md = checkfield(md,' spheremesh.phi','NaN',1,'size',[md.spheremesh.numberofvertices 1]);50 md = checkfield(md,' spheremesh.elements','NaN',1,'>',0,'values',1:md.spheremesh.numberofvertices);44 md = checkfield(md,'fieldname','spheremesh.x','NaN',1,'size',[md.spheremesh.numberofvertices 1]); 45 md = checkfield(md,'fieldname','spheremesh.y','NaN',1,'size',[md.spheremesh.numberofvertices 1]); 46 md = checkfield(md,'fieldname','spheremesh.z','NaN',1,'size',[md.spheremesh.numberofvertices 1]); 47 md = checkfield(md,'fieldname','spheremesh.r','NaN',1,'size',[md.spheremesh.numberofvertices 1]); 48 md = checkfield(md,'fieldname','spheremesh.theta','NaN',1,'size',[md.spheremesh.numberofvertices 1]); 49 md = checkfield(md,'fieldname','spheremesh.phi','NaN',1,'size',[md.spheremesh.numberofvertices 1]); 50 md = checkfield(md,'fieldname','spheremesh.elements','NaN',1,'>',0,'values',1:md.spheremesh.numberofvertices); 51 51 if(md.spheremesh.dimension==2), 52 md = checkfield(md,' spheremesh.elements','size',[md.spheremesh.numberofelements 3]);52 md = checkfield(md,'fieldname','spheremesh.elements','size',[md.spheremesh.numberofelements 3]); 53 53 else 54 md = checkfield(md,' spheremesh.elements','size',[md.spheremesh.numberofelements 6]);54 md = checkfield(md,'fieldname','spheremesh.elements','size',[md.spheremesh.numberofelements 6]); 55 55 end 56 56 if any(~ismember(1:md.spheremesh.numberofvertices,sort(unique(md.spheremesh.elements(:))))); 57 57 md = checkmessage(md,'orphan nodes have been found. Check the spheremesh outline'); 58 58 end 59 md = checkfield(md,' spheremesh.dimension','values',[2 3]);60 md = checkfield(md,' spheremesh.numberoflayers','>=',0);61 md = checkfield(md,' spheremesh.numberofelements','>',0);62 md = checkfield(md,' spheremesh.numberofvertices','>',0);59 md = checkfield(md,'fieldname','spheremesh.dimension','values',[2 3]); 60 md = checkfield(md,'fieldname','spheremesh.numberoflayers','>=',0); 61 md = checkfield(md,'fieldname','spheremesh.numberofelements','>',0); 62 md = checkfield(md,'fieldname','spheremesh.numberofvertices','>',0); 63 63 if (md.spheremesh.dimension==2), 64 md = checkfield(md,' spheremesh.average_vertex_connectivity','>=',9,'message','''spheremesh.average_vertex_connectivity'' should be at least 9 in 2d');64 md = checkfield(md,'fieldname','spheremesh.average_vertex_connectivity','>=',9,'message','''spheremesh.average_vertex_connectivity'' should be at least 9 in 2d'); 65 65 else 66 md = checkfield(md,' spheremesh.average_vertex_connectivity','>=',24,'message','''spheremesh.average_vertex_connectivity'' should be at least 24 in 3d');66 md = checkfield(md,'fieldname','spheremesh.average_vertex_connectivity','>=',24,'message','''spheremesh.average_vertex_connectivity'' should be at least 24 in 3d'); 67 67 end 68 md = checkfield(md,' spheremesh.elementconnectivity','size',[md.spheremesh.numberofelements 3],'NaN',1);68 md = checkfield(md,'fieldname','spheremesh.elementconnectivity','size',[md.spheremesh.numberofelements 3],'NaN',1); 69 69 70 70 %Solution specific checks … … 72 72 case MasstransportSolutionEnum(), 73 73 if md.masstransport.stabilization==3, 74 md = checkfield(md,' spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes');74 md = checkfield(md,'fieldname','spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes'); 75 75 end 76 76 case TransientSolutionEnum(), 77 77 if md.transient.ismasstransport & md.masstransport.stabilization==3, 78 md = checkfield(md,' spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes');78 md = checkfield(md,'fieldname','spheremesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d spheremeshes'); 79 79 end 80 80 case ThermalSolutionEnum(), 81 md = checkfield(md,' spheremesh.dimension','values',3,'message','thermal solution only supported on 3d spheremeshes');81 md = checkfield(md,'fieldname','spheremesh.dimension','values',3,'message','thermal solution only supported on 3d spheremeshes'); 82 82 end 83 83 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/steadystate.m ¶
r16470 r16764 42 42 md = checkmessage(md,['for a steadystate computation, timestepping.time_step must be zero.']); 43 43 end 44 md = checkfield(md,' steadystate.requested_outputs','stringrow',1);44 md = checkfield(md,'fieldname','steadystate.requested_outputs','stringrow',1); 45 45 46 46 if isnan(md.stressbalance.reltol), -
TabularUnified issm/trunk-jpl/src/m/classes/steadystate.py ¶
r16471 r16764 58 58 md.checkmessage("for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!") 59 59 60 md = checkfield(md,' steadystate.requested_outputs','stringrow',1)60 md = checkfield(md,'fieldname','steadystate.requested_outputs','stringrow',1) 61 61 62 62 return md -
TabularUnified issm/trunk-jpl/src/m/classes/stressbalance.m ¶
r16463 r16764 82 82 if ~ismember(StressbalanceAnalysisEnum(),analyses), return; end 83 83 84 md = checkfield(md,' stressbalance.spcvx','forcing',1);85 md = checkfield(md,' stressbalance.spcvy','forcing',1);86 md = checkfield(md,' stressbalance.spcvz','forcing',1);87 md = checkfield(md,' stressbalance.restol','size',[1 1],'>',0,'NaN',1);88 md = checkfield(md,' stressbalance.reltol','size',[1 1]);89 md = checkfield(md,' stressbalance.abstol','size',[1 1]);90 md = checkfield(md,' stressbalance.isnewton','numel',[1],'values',[0 1 2]);91 md = checkfield(md,' stressbalance.FSreconditioning','size',[1 1],'NaN',1);92 md = checkfield(md,' stressbalance.viscosity_overshoot','size',[1 1],'NaN',1);93 md = checkfield(md,' stressbalance.maxiter','size',[1 1],'>=',1);94 md = checkfield(md,' stressbalance.referential','size',[md.mesh.numberofvertices 6]);95 md = checkfield(md,' stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]);96 md = checkfield(md,' stressbalance.requested_outputs','stringrow',1);84 md = checkfield(md,'fieldname','stressbalance.spcvx','forcing',1); 85 md = checkfield(md,'fieldname','stressbalance.spcvy','forcing',1); 86 md = checkfield(md,'fieldname','stressbalance.spcvz','forcing',1); 87 md = checkfield(md,'fieldname','stressbalance.restol','size',[1 1],'>',0,'NaN',1); 88 md = checkfield(md,'fieldname','stressbalance.reltol','size',[1 1]); 89 md = checkfield(md,'fieldname','stressbalance.abstol','size',[1 1]); 90 md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0 1 2]); 91 md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1 1],'NaN',1); 92 md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1 1],'NaN',1); 93 md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1 1],'>=',1); 94 md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices 6]); 95 md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]); 96 md = checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1); 97 97 98 98 %singular solution … … 117 117 md = checkmessage(md,['no referential should be specified for basal vertices of grounded ice']); 118 118 end 119 md = checkfield(md,' stressbalance.FSreconditioning','>',0);119 md = checkfield(md,'fieldname','stressbalance.FSreconditioning','>',0); 120 120 end 121 121 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/stressbalance.py ¶
r16463 r16764 127 127 return md 128 128 129 md = checkfield(md,' stressbalance.spcvx','forcing',1)130 md = checkfield(md,' stressbalance.spcvy','forcing',1)129 md = checkfield(md,'fieldname','stressbalance.spcvx','forcing',1) 130 md = checkfield(md,'fieldname','stressbalance.spcvy','forcing',1) 131 131 if strcmp(md.mesh.meshtype(),'3D'): 132 md = checkfield(md,' stressbalance.spcvz','forcing',1)133 md = checkfield(md,' stressbalance.restol','size',[1],'>',0)134 md = checkfield(md,' stressbalance.reltol','size',[1])135 md = checkfield(md,' stressbalance.abstol','size',[1])136 md = checkfield(md,' stressbalance.isnewton','numel',[1],'values',[0,1,2])137 md = checkfield(md,' stressbalance.FSreconditioning','size',[1],'NaN',1)138 md = checkfield(md,' stressbalance.viscosity_overshoot','size',[1],'NaN',1)139 md = checkfield(md,' stressbalance.maxiter','size',[1],'>=',1)140 md = checkfield(md,' stressbalance.referential','size',[md.mesh.numberofvertices,6])141 md = checkfield(md,' stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])142 md = checkfield(md,' stressbalance.requested_outputs','stringrow',1);132 md = checkfield(md,'fieldname','stressbalance.spcvz','forcing',1) 133 md = checkfield(md,'fieldname','stressbalance.restol','size',[1],'>',0) 134 md = checkfield(md,'fieldname','stressbalance.reltol','size',[1]) 135 md = checkfield(md,'fieldname','stressbalance.abstol','size',[1]) 136 md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0,1,2]) 137 md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1) 138 md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1],'NaN',1) 139 md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1],'>=',1) 140 md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices,6]) 141 md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices,3]) 142 md = checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1); 143 143 144 144 #singular solution -
TabularUnified issm/trunk-jpl/src/m/classes/surfaceforcings.m ¶
r15767 r16764 45 45 46 46 if ismember(MasstransportAnalysisEnum(),analyses), 47 md = checkfield(md,' surfaceforcings.ispdd','numel',[1],'values',[0 1]);48 md = checkfield(md,' surfaceforcings.issmbgradients','numel',[1],'values',[0 1]);47 md = checkfield(md,'fieldname','surfaceforcings.ispdd','numel',[1],'values',[0 1]); 48 md = checkfield(md,'fieldname','surfaceforcings.issmbgradients','numel',[1],'values',[0 1]); 49 49 if(obj.ispdd) 50 md = checkfield(md,' surfaceforcings.desfac','<=',1,'numel',1);51 md = checkfield(md,' surfaceforcings.s0p','>=',0,'numel',1);50 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1); 51 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',1); 52 52 if(obj.isdelta18o==0) 53 md = checkfield(md,' surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);54 md = checkfield(md,' surfaceforcings.precipitation','forcing',1,'NaN',1);53 md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','forcing',1,'NaN',1); 54 md = checkfield(md,'fieldname','surfaceforcings.precipitation','forcing',1,'NaN',1); 55 55 else 56 md = checkfield(md,' surfaceforcings.delta18o','NaN',1);57 md = checkfield(md,' surfaceforcings.delta18o_surface','NaN',1);58 md = checkfield(md,' surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);59 md = checkfield(md,' surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);60 md = checkfield(md,' surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);56 md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1); 57 md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1); 58 md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1); 59 md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1); 60 md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1); 61 61 end 62 62 elseif(obj.issmbgradients) 63 md = checkfield(md,' surfaceforcings.href','forcing',1,'NaN',1);64 md = checkfield(md,' surfaceforcings.smbref','forcing',1,'NaN',1);65 md = checkfield(md,' surfaceforcings.b_pos','forcing',1,'NaN',1);66 md = checkfield(md,' surfaceforcings.b_neg','forcing',1,'NaN',1);63 md = checkfield(md,'fieldname','surfaceforcings.href','forcing',1,'NaN',1); 64 md = checkfield(md,'fieldname','surfaceforcings.smbref','forcing',1,'NaN',1); 65 md = checkfield(md,'fieldname','surfaceforcings.b_pos','forcing',1,'NaN',1); 66 md = checkfield(md,'fieldname','surfaceforcings.b_neg','forcing',1,'NaN',1); 67 67 else 68 md = checkfield(md,' surfaceforcings.mass_balance','forcing',1,'NaN',1);68 md = checkfield(md,'fieldname','surfaceforcings.mass_balance','forcing',1,'NaN',1); 69 69 end 70 70 end 71 71 if ismember(BalancethicknessAnalysisEnum(),analyses), 72 md = checkfield(md,' surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);72 md = checkfield(md,'fieldname','surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1); 73 73 end 74 74 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/surfaceforcings.py ¶
r15767 r16764 73 73 74 74 if MasstransportAnalysisEnum() in analyses: 75 md = checkfield(md,' surfaceforcings.ispdd','numel',[1],'values',[0,1])76 md = checkfield(md,' surfaceforcings.issmbgradients','numel',[1],'values',[0,1])75 md = checkfield(md,'fieldname','surfaceforcings.ispdd','numel',[1],'values',[0,1]) 76 md = checkfield(md,'fieldname','surfaceforcings.issmbgradients','numel',[1],'values',[0,1]) 77 77 if self.ispdd: 78 md = checkfield(md,' surfaceforcings.desfac','<=',1,'numel',[1]);79 md = checkfield(md,' surfaceforcings.s0p','>=',0,'numel',[1]);78 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1]); 79 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',[1]); 80 80 if not self.isdelta18o: 81 md = checkfield(md,' surfaceforcings.monthlytemperatures','forcing',1,'NaN',1)82 md = checkfield(md,' surfaceforcings.precipitation','forcing',1,'NaN',1)81 md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','forcing',1,'NaN',1) 82 md = checkfield(md,'fieldname','surfaceforcings.precipitation','forcing',1,'NaN',1) 83 83 else: 84 md = checkfield(md,' surfaceforcings.delta18o','NaN',1)85 md = checkfield(md,' surfaceforcings.delta18o_surface','NaN',1)86 md = checkfield(md,' surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)87 md = checkfield(md,' surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1)88 md = checkfield(md,' surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)84 md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1) 85 md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1) 86 md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1) 87 md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1) 88 md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1) 89 89 elif self.issmbgradients: 90 md = checkfield(md,' surfaceforcings.href','forcing',1,'NaN',1)91 md = checkfield(md,' surfaceforcings.smbref','forcing',1,'NaN',1)92 md = checkfield(md,' surfaceforcings.b_pos','forcing',1,'NaN',1)93 md = checkfield(md,' surfaceforcings.b_neg','forcing',1,'NaN',1)90 md = checkfield(md,'fieldname','surfaceforcings.href','forcing',1,'NaN',1) 91 md = checkfield(md,'fieldname','surfaceforcings.smbref','forcing',1,'NaN',1) 92 md = checkfield(md,'fieldname','surfaceforcings.b_pos','forcing',1,'NaN',1) 93 md = checkfield(md,'fieldname','surfaceforcings.b_neg','forcing',1,'NaN',1) 94 94 else: 95 md = checkfield(md,' surfaceforcings.mass_balance','forcing',1,'NaN',1)95 md = checkfield(md,'fieldname','surfaceforcings.mass_balance','forcing',1,'NaN',1) 96 96 97 97 if BalancethicknessAnalysisEnum() in analyses: 98 md = checkfield(md,' surfaceforcings.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)98 md = checkfield(md,'fieldname','surfaceforcings.mass_balance','size',[md.mesh.numberofvertices],'NaN',1) 99 99 100 100 return md -
TabularUnified issm/trunk-jpl/src/m/classes/taoinversion.m ¶
r16428 r16764 75 75 num_costfunc=size(md.inversion.cost_functions,2); 76 76 77 md = checkfield(md,' inversion.iscontrol','values',[0 1]);78 md = checkfield(md,' inversion.incomplete_adjoint','values',[0 1]);79 md = checkfield(md,' inversion.control_parameters','cell',1,'values',...77 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0 1]); 78 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]); 79 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',... 80 80 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness'}); 81 md = checkfield(md,' inversion.nsteps','numel',1,'>=',0);82 md = checkfield(md,' inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);83 md = checkfield(md,' inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);84 md = checkfield(md,' inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);85 md = checkfield(md,' inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);81 md = checkfield(md,'fieldname','inversion.nsteps','numel',1,'>=',0); 82 md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]); 83 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0); 84 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]); 85 md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]); 86 86 87 87 if solution==BalancethicknessSolutionEnum() 88 md = checkfield(md,' inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);88 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 89 89 elseif solution==BalancethicknessSoftSolutionEnum() 90 md = checkfield(md,' inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);90 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 91 91 else 92 md = checkfield(md,' inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);93 md = checkfield(md,' inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);92 md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 93 md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1); 94 94 end 95 95 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/thermal.m ¶
r16470 r16764 62 62 if (~ismember(ThermalAnalysisEnum(),analyses) & ~ismember(EnthalpyAnalysisEnum(),analyses)) | (solution==TransientSolutionEnum() & md.transient.isthermal==0), return; end 63 63 64 md = checkfield(md,' thermal.stabilization','numel',[1],'values',[0 1 2]);65 md = checkfield(md,' thermal.spctemperature','forcing',1);64 md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 1 2]); 65 md = checkfield(md,'fieldname','thermal.spctemperature','forcing',1); 66 66 if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy & md.mesh.dimension==3), 67 67 pos=find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN); 68 68 replicate=repmat(md.geometry.surface-md.mesh.z,1,size(md.thermal.spctemperature,2)); 69 md = checkfield(md,' thermal.spctemperature(find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN))','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate(pos),'message','spctemperature should be below the adjusted melting point');70 md = checkfield(md,' thermal.isenthalpy','numel',[1],'values',[0 1]);71 md = checkfield(md,' thermal.isdynamicbasalspc','numel', [1],'values',[0 1]);69 md = checkfield(md,'fieldname','thermal.spctemperature(find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN))','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate(pos),'message','spctemperature should be below the adjusted melting point'); 70 md = checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0 1]); 71 md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel', [1],'values',[0 1]); 72 72 if(md.thermal.isenthalpy) 73 md = checkfield(md,' thermal.isdynamicbasalspc','numel', [1],'values',[1], 'message',['for enthalpy run thermal.isdynamicbasalspc should be 1']);73 md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel', [1],'values',[1], 'message',['for enthalpy run thermal.isdynamicbasalspc should be 1']); 74 74 end 75 75 end 76 76 77 md = checkfield(md,' thermal.requested_outputs','stringrow',1);77 md = checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1); 78 78 end % }}} 79 79 function disp(obj) % {{{ -
TabularUnified issm/trunk-jpl/src/m/classes/thermal.py ¶
r16470 r16764 79 79 return md 80 80 81 md = checkfield(md,' thermal.stabilization','numel',[1],'values',[0,1,2])82 md = checkfield(md,' thermal.spctemperature','forcing',1)81 md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0,1,2]) 82 md = checkfield(md,'fieldname','thermal.spctemperature','forcing',1) 83 83 if EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy and md.mesh.dimension==3: 84 84 pos=numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices]))) 85 85 replicate=numpy.tile(md.geometry.surface-md.mesh.z,(1,numpy.size(md.thermal.spctemperature,axis=1))) 86 md = checkfield(md,' thermal.spctemperature[numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices,:])))]','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate[pos],'message',"spctemperature should be below the adjusted melting point")87 md = checkfield(md,' thermal.isenthalpy','numel',[1],'values',[0,1])88 md = checkfield(md,' thermal.isdynamicbasalspc','numel',[1],'values',[0,1]);89 md = checkfield(md,' thermal.requested_outputs','stringrow',1)86 md = checkfield(md,'fieldname','thermal.spctemperature[numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices,:])))]','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate[pos],'message',"spctemperature should be below the adjusted melting point") 87 md = checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0,1]) 88 md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel',[1],'values',[0,1]); 89 md = checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1) 90 90 91 91 return md -
TabularUnified issm/trunk-jpl/src/m/classes/timestepping.m ¶
r15131 r16764 35 35 function md = checkconsistency(obj,md,solution,analyses) % {{{ 36 36 37 md = checkfield(md,' timestepping.start_time','numel',[1],'NaN',1);38 md = checkfield(md,' timestepping.final_time','numel',[1],'NaN',1);39 md = checkfield(md,' timestepping.time_step','numel',[1],'>=',0,'NaN',1);40 md = checkfield(md,' timestepping.time_adapt','numel',[1],'values',[0 1]);41 md = checkfield(md,' timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1);37 md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1); 38 md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1); 39 md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1); 40 md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0 1]); 41 md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1); 42 42 if obj.final_time-obj.start_time<0, 43 43 md = checkmessage(md,'timestepping.final_time should be larger than timestepping.start_time'); -
TabularUnified issm/trunk-jpl/src/m/classes/timestepping.py ¶
r15131 r16764 48 48 def checkconsistency(self,md,solution,analyses): # {{{ 49 49 50 md = checkfield(md,' timestepping.start_time','numel',[1],'NaN',1)51 md = checkfield(md,' timestepping.final_time','numel',[1],'NaN',1)52 md = checkfield(md,' timestepping.time_step','numel',[1],'>=',0,'NaN',1)53 md = checkfield(md,' timestepping.time_adapt','numel',[1],'values',[0,1])54 md = checkfield(md,' timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1)50 md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1) 51 md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1) 52 md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1) 53 md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1]) 54 md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1) 55 55 if self.final_time-self.start_time<0: 56 56 md.checkmessage("timestepping.final_time should be larger than timestepping.start_time") -
TabularUnified issm/trunk-jpl/src/m/classes/transient.m ¶
r16478 r16764 46 46 if solution~=TransientSolutionEnum(), return; end 47 47 48 md = checkfield(md,' transient.ismasstransport','numel',[1],'values',[0 1]);49 md = checkfield(md,' transient.isstressbalance','numel',[1],'values',[0 1]);50 md = checkfield(md,' transient.isthermal','numel',[1],'values',[0 1]);51 md = checkfield(md,' transient.isgroundingline','numel',[1],'values',[0 1]);52 md = checkfield(md,' transient.isgia','numel',[1],'values',[0 1]);53 md = checkfield(md,' transient.isdamage','numel',[1],'values',[0 1]);54 md = checkfield(md,' transient.requested_outputs','stringrow',1);48 md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 1]); 49 md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 1]); 50 md = checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0 1]); 51 md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0 1]); 52 md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0 1]); 53 md = checkfield(md,'fieldname','transient.isdamage','numel',[1],'values',[0 1]); 54 md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1); 55 55 56 56 end % }}} -
TabularUnified issm/trunk-jpl/src/m/classes/transient.py ¶
r16478 r16764 58 58 return md 59 59 60 md = checkfield(md,' transient.ismasstransport','numel',[1],'values',[0,1])61 md = checkfield(md,' transient.isstressbalance','numel',[1],'values',[0,1])62 md = checkfield(md,' transient.isthermal','numel',[1],'values',[0,1])63 md = checkfield(md,' transient.isgroundingline','numel',[1],'values',[0,1])64 md = checkfield(md,' transient.isgia','numel',[1],'values',[0,1])65 md = checkfield(md,' transient.requested_outputs','stringrow',1)60 md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0,1]) 61 md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0,1]) 62 md = checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0,1]) 63 md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0,1]) 64 md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0,1]) 65 md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1) 66 66 67 67 return md -
TabularUnified issm/trunk-jpl/src/m/consistency/checkfield.m ¶
r16459 r16764 1 function md = checkfield(md, fieldname,varargin)1 function md = checkfield(md,varargin) 2 2 %CHECKFIELD - check field consistency 3 3 % 4 4 % Used to check model consistency. 5 % Requires: 6 % 'field' or 'fieldname' option. If 'fieldname' is provided, it will retrieve it from the model md. (md.(fieldname)) 7 % If 'field' is provided, it will assume the argument following 'field' is a numeric array. 5 8 % Available options: 6 9 % - NaN: 1 if check that there is no NaN … … 27 30 options=pairoptions(varargin{:}); 28 31 29 %get field from model 30 eval(['field=md.' fieldname ';']); 32 %get field: 33 if exist(options,'field'), 34 field=getfieldvalue(options,'field'); 35 fieldname=getfieldvalue(options,'fieldname','no fieldname'); 36 else 37 fieldname=getfieldvalue(options,'fieldname'); 38 eval(['field=md.' fieldname ';']); 39 end 40 31 41 32 42 %check empty -
TabularUnified issm/trunk-jpl/src/m/consistency/checkfield.py ¶
r16465 r16764 4 4 from MatlabFuncs import * 5 5 6 def checkfield(md, fieldname,*args):6 def checkfield(md,*args): 7 7 """ 8 8 CHECKFIELD - check field consistency 9 9 10 Used to check model consistency. 10 Used to check model consistency., 11 Requires: 12 'field' or 'fieldname' option. If 'fieldname' is provided, it will retrieve it from the model md. (md.(fieldname)) 13 If 'field' is provided, it will assume the argument following 'field' is a numeric array. 14 11 15 Available options: 12 16 - NaN: 1 if check that there is no NaN … … 35 39 36 40 #get field from model 37 # field=getattr(md,fieldname) 38 exec("field=md.%s" % fieldname) 41 if options.exist('field'): 42 field=options.getfieldvalue('field') 43 fieldname=options.getfieldvalue('fieldname','no fieldname') 44 else: 45 fieldname=options.getfieldvalue('fieldname') 46 exec("field=md.%s" % fieldname) 47 39 48 if isinstance(field,(bool,int,long,float)): 40 49 field=numpy.array([field]) -
TabularUnified issm/trunk-jpl/src/m/interp/averaging.py ¶
r16055 r16764 50 50 numberofnodes=md.mesh.numberofvertices2d 51 51 numberofelements=md.mesh.numberofelements2d 52 52 53 53 54 #build some variables … … 75 76 average_node=csc_matrix( (npy.tile(areas*data,(rep,1)).reshape(-1,),(line,npy.zeros(linesize,))), shape=(numberofnodes,1)) 76 77 average_node=average_node/weights 78 average_node = csc_matrix(average_node) 77 79 else: 78 80 average_node=data 81 79 82 80 83 #loop over iteration
Note:
See TracChangeset
for help on using the changeset viewer.