Changeset 13049
- Timestamp:
- 08/15/12 17:14:39 (13 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/flowequation.m
r13040 r13049 8 8 ismacayealpattyn = 0; 9 9 ishutter = 0; 10 isl1l2 = 0; 10 11 isstokes = 0; 11 12 vertex_equation = NaN; … … 33 34 md = checkfield(md,'flowequation.ismacayealpattyn','numel',[1],'values',[0 1]); 34 35 md = checkfield(md,'flowequation.ishutter','numel',[1],'values',[0 1]); 36 md = checkfield(md,'flowequation.isl1l2','numel',[1],'values',[0 1]); 35 37 md = checkfield(md,'flowequation.isstokes','numel',[1],'values',[0 1]); 36 38 md = checkfield(md,'flowequation.bordermacayeal','size',[md.mesh.numberofvertices 1],'values',[0 1]); … … 41 43 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]); 42 44 else 43 md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0: 7]);44 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0: 7]);45 md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]); 46 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:8]); 45 47 end 46 if ~( md.flowequation.ismacayealpattyn || md.flowequation.ishutter || md.flowequation.isstokes),48 if ~(obj.ismacayealpattyn || obj.ishutter || obj.isstokes || obj.isl1l2), 47 49 md = checkmessage(md,['no element types set for this model. At least one of ismacayealpattyn, ishutter or isstokes need to be =1']); 48 50 end 49 51 end 50 52 if ismember(DiagnosticHutterAnalysisEnum(),analyses), 51 if any( md.flowequation.element_equation==1),52 if( md.flowequation.element_equation & md.mask.elementonfloatingice),53 if any(obj.element_equation==1), 54 if(obj.element_equation & md.mask.elementonfloatingice), 53 55 disp(sprintf('\n !!! Warning: Hutter''s model is not consistent on ice shelves !!!\n')); 54 56 end … … 62 64 fielddisplay(obj,'ismacayealpattyn','is the macayeal or pattyn approximation used ?'); 63 65 fielddisplay(obj,'ishutter','is the shallow ice approximation used ?'); 66 fielddisplay(obj,'isl1l2','is the l1l2 approximation used ?'); 64 67 fielddisplay(obj,'isstokes','are the Full-Stokes equations used ?'); 65 68 fielddisplay(obj,'vertex_equation','flow equation for each vertex'); … … 73 76 WriteData(fid,'object',obj,'fieldname','ismacayealpattyn','format','Boolean'); 74 77 WriteData(fid,'object',obj,'fieldname','ishutter','format','Boolean'); 78 WriteData(fid,'object',obj,'fieldname','isl1l2','format','Boolean'); 75 79 WriteData(fid,'object',obj,'fieldname','isstokes','format','Boolean'); 76 80 WriteData(fid,'object',obj,'fieldname','bordermacayeal','format','DoubleMat','mattype',1); … … 87 91 pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum(); 88 92 pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum(); 93 pos=find(data==8); data(pos,end)=L1L2ApproximationEnum(); 89 94 WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1); 90 95 data=obj.element_equation; … … 97 102 pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum(); 98 103 pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum(); 104 pos=find(data==8); data(pos,end)=L1L2ApproximationEnum(); 99 105 WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2); 100 106 end % }}} -
issm/trunk-jpl/src/m/classes/flowequation.py
r13040 r13049 20 20 self.ismacayealpattyn = 0; 21 21 self.ishutter = 0; 22 self.isl1l2 = 0; 22 23 self.isstokes = 0; 23 24 self.vertex_equation = float('NaN') … … 37 38 string="%s\n\n%s"%(string,fielddisplay(self,'ismacayealpattyn','is the macayeal or pattyn approximation used ?')) 38 39 string="%s\n%s"%(string,fielddisplay(self,'ishutter','is the shallow ice approximation used ?')) 40 string="%s\n%s"%(string,fielddisplay(self,'isl1l2','are l1l2 equations used ?')) 39 41 string="%s\n%s"%(string,fielddisplay(self,'isstokes','are the Full-Stokes equations used ?')) 40 42 string="%s\n%s"%(string,fielddisplay(self,'vertex_equation','flow equation for each vertex')) … … 56 58 md = checkfield(md,'flowequation.ismacayealpattyn','numel',[1],'values',[0,1]) 57 59 md = checkfield(md,'flowequation.ishutter','numel',[1],'values',[0,1]) 60 md = checkfield(md,'flowequation.isl1l2','numel',[1],'values',[0,1]) 58 61 md = checkfield(md,'flowequation.isstokes','numel',[1],'values',[0,1]) 59 62 md = checkfield(md,'flowequation.bordermacayeal','size',[md.mesh.numberofvertices],'values',[0,1]) … … 66 69 md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',range(0,7+1)) 67 70 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements],'values',range(0,7+1)) 68 if not ( md.flowequation.ismacayealpattyn or md.flowequation.ishutter or md.flowequation.isstokes):71 if not (self.ismacayealpattyn or self.ishutter or self.isstokes or self.isl1l2): 69 72 md.checkmessage("no element types set for this model. At least one of ismacayealpattyn, ishutter or isstokes need to be =1") 70 73 71 74 if DiagnosticHutterAnalysisEnum() in analyses: 72 if any( md.flowequation.element_equation==1):73 if numpy.any(numpy.logical_and( md.flowequation.element_equation,md.mask.elementonfloatingice)):75 if any(self.element_equation==1): 76 if numpy.any(numpy.logical_and(self.element_equation,md.mask.elementonfloatingice)): 74 77 print "\n !!! Warning: Hutter's model is not consistent on ice shelves !!!\n" 75 78 … … 80 83 WriteData(fid,'object',self,'fieldname','ismacayealpattyn','format','Boolean') 81 84 WriteData(fid,'object',self,'fieldname','ishutter','format','Boolean') 85 WriteData(fid,'object',self,'fieldname','isl1l2','format','Boolean') 82 86 WriteData(fid,'object',self,'fieldname','isstokes','format','Boolean') 83 87 WriteData(fid,'object',self,'fieldname','bordermacayeal','format','DoubleMat','mattype',1) … … 94 98 data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum() 95 99 data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum() 100 data[[i for i,item in enumerate(data) if item==8]]=L1L2ApproximationEnum() 96 101 WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1) 97 102 data=self.element_equation … … 104 109 data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum() 105 110 data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum() 111 data[[i for i,item in enumerate(data) if item==8]]=L1L2ApproximationEnum() 106 112 WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2) 107 113 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.