source:
issm/oecreview/Archive/15392-16133/ISSM-15923-15924.diff@
16134
Last change on this file since 16134 was 16134, checked in by , 12 years ago | |
---|---|
File size: 10.1 KB |
-
../trunk-jpl/src/m/classes/flowequation.py
20 20 self.isL1L2 = 0 21 21 self.isHO = 0 22 22 self.isFS = 0 23 self.fe_SSA = 024 self.fe_HO = 025 self.fe_FS = 023 self.fe_SSA = '' 24 self.fe_HO = '' 25 self.fe_FS = '' 26 26 self.vertex_equation = float('NaN') 27 27 self.element_equation = float('NaN') 28 28 self.borderSSA = float('NaN') … … 41 41 string="%s\n%s"%(string,fielddisplay(self,'isL1L2',"are L1L2 equations used ?")) 42 42 string="%s\n%s"%(string,fielddisplay(self,'isHO',"is the Higher-Order (HO) approximation used ?")) 43 43 string="%s\n%s"%(string,fielddisplay(self,'isFS',"are the Full-FS (FS) equations used ?")) 44 string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA 0: Lagrange P1 (linear), 1: Lagrange P2 (quadratic)"))45 string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO 0: P1xP1, 1: P1xP2, 2: P2xP1, 3: P2xP2"))46 string="%s\n%s"%(string,fielddisplay(self,'fe_FS' ,"Finite Element for FS 0: P1P1 (debugging), 1: P1P1GSL (under dev), 2: MINI condensed, 3: MINI, 4: P2P1 (Taylor-Hood)"))44 string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA: 'P1', 'P1bubble' 'P1bubblecondensed' 'P2'")) 45 string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO: 'P1' 'P1bubble' 'P1bubblecondensed' 'P1xP2' 'P2xP1' 'P2'")) 46 string="%s\n%s"%(string,fielddisplay(self,'fe_FS' ,"Finite Element for FS: 'P1P1' (debugging only) 'P1P1GLS' 'MINIcondensed' 'MINI' 'TaylorHood'")) 47 47 string="%s\n%s"%(string,fielddisplay(self,'vertex_equation',"flow equation for each vertex")) 48 48 string="%s\n%s"%(string,fielddisplay(self,'element_equation',"flow equation for each element")) 49 49 string="%s\n%s"%(string,fielddisplay(self,'borderSSA',"vertices on SSA's border (for tiling)")) … … 53 53 #}}} 54 54 def setdefaultparameters(self): # {{{ 55 55 56 # MINI element for FS by default57 self.fe_ FS=256 #P1 for SSA 57 self.fe_SSA= 'P1'; 58 58 59 #P1 for HO 60 self.fe_HO= 'P1'; 61 62 #MINI condensed element for FS by default 63 self.fe_FS = 'MINIcondensed'; 64 59 65 return self 60 66 #}}} 61 67 def checkconsistency(self,md,solution,analyses): # {{{ … … 66 72 md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0,1]) 67 73 md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0,1]) 68 74 md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0,1]) 69 md = checkfield(md,'flowequation.fe_SSA',' numel',[1],'values',[0,1])70 md = checkfield(md,'flowequation.fe_HO' ,'numel',[1],'values',numpy.arange(0,3+1))71 md = checkfield(md,'flowequation.fe_FS' ,'numel',[1],'values',numpy.arange(0,4+1))75 md = checkfield(md,'flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2']) 76 md = checkfield(md,'flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2']) 77 md = checkfield(md,'flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood']) 72 78 md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1]) 73 79 md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1]) 74 80 md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1]) … … 94 100 WriteData(fid,'object',self,'fieldname','isL1L2','format','Boolean') 95 101 WriteData(fid,'object',self,'fieldname','isHO','format','Boolean') 96 102 WriteData(fid,'object',self,'fieldname','isFS','format','Boolean') 97 WriteData(fid,' object',self,'fieldname','fe_SSA','format','Integer')98 WriteData(fid,' object',self,'fieldname','fe_HO','format','Integer')99 WriteData(fid,' object',self,'fieldname','fe_FS','format','Integer')103 WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(self.fe_SSA)[0],'format','Integer') 104 WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(self.fe_HO)[0] ,'format','Integer') 105 WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(self.fe_FS)[0] ,'format','Integer') 100 106 WriteData(fid,'object',self,'fieldname','borderSSA','format','DoubleMat','mattype',1) 101 107 WriteData(fid,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1) 102 108 WriteData(fid,'object',self,'fieldname','borderFS','format','DoubleMat','mattype',1) -
../trunk-jpl/src/m/classes/flowequation.m
10 10 isL1L2 = 0; 11 11 isHO = 0; 12 12 isFS = 0; 13 fe_SSA = 0;14 fe_HO = 0;15 fe_FS = 0;13 fe_SSA = ''; 14 fe_HO = ''; 15 fe_FS = ''; 16 16 vertex_equation = NaN; 17 17 element_equation = NaN; 18 18 borderSSA = NaN; … … 44 44 obj = structtoobj(flowequation(),objstruct); 45 45 46 46 %2013 July 23rd 47 if isfield(objstruct,'isSIA'), obj.isSIA = objstruct.isSIA; end; 48 if isfield(objstruct,'isSSA'), obj.isSSA = objstruct.isSSA; end; 49 if isfield(objstruct,'isL1L2'), obj.isL1L2 = objstruct.isL1L2; end; 50 if isfield(objstruct,'isHO'), obj.isHO = objstruct.isHO; end; 51 if isfield(objstruct,'isFS'), obj.isFS = objstruct.isFS; end; 52 if isfield(objstruct,'fe_FS'), obj.fe_FS = objstruct.fe_FS; end; 53 if isfield(objstruct,'borderSSA'), obj.borderSSA = objstruct.borderSSA;end; 54 if isfield(objstruct,'borderHO'), obj.borderHO = objstruct.borderHO; end; 55 if isfield(objstruct,'borderFS'), obj.borderFS = objstruct.borderFS; end; 47 if isfield(objstruct,'ishutter'), obj.isSIA = objstruct.ishutter; end; 48 if isfield(objstruct,'ismacayeal'), obj.isSSA = objstruct.ismacayeal; end; 49 if isfield(objstruct,'ispattyn'), obj.isHO = objstruct.ispattyn; end; 50 if isfield(objstruct,'isstokes'), obj.isFS = objstruct.isstokes; end; 51 if isfield(objstruct,'bordermacayeal'),obj.borderSSA = objstruct.bordermacayeal; end; 52 if isfield(objstruct,'borderpattyn'), obj.borderHO = objstruct.borderpattyn; end; 53 if isfield(objstruct,'borderstokes'), obj.borderFS = objstruct.borderstokes; end; 56 54 end 57 55 58 56 end% }}} … … 68 66 end % }}} 69 67 function obj = setdefaultparameters(obj) % {{{ 70 68 69 %P1 for SSA 70 obj.fe_SSA= 'P1'; 71 72 %P1 for HO 73 obj.fe_HO= 'P1'; 74 71 75 %MINI condensed element for FS by default 72 obj.fe_FS = 2;76 obj.fe_FS = 'MINIcondensed'; 73 77 end % }}} 74 78 function md = checkconsistency(obj,md,solution,analyses) % {{{ 75 79 … … 80 84 md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0 1]); 81 85 md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0 1]); 82 86 md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0 1]); 83 md = checkfield(md,'flowequation.fe_SSA',' numel',[1],'values',[0:3]);84 md = checkfield(md,'flowequation.fe_HO' ,'numel',[1],'values',[0:5]);85 md = checkfield(md,'flowequation.fe_FS' ,'numel',[1],'values',[0:4]);87 md = checkfield(md,'flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'}); 88 md = checkfield(md,'flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'}); 89 md = checkfield(md,'flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'}); 86 90 md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]); 87 91 md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]); 88 92 md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]); … … 114 118 fielddisplay(obj,'isL1L2','is the L1L2 approximation used ?'); 115 119 fielddisplay(obj,'isHO','is the Higher-Order (HO) approximation used ?'); 116 120 fielddisplay(obj,'isFS','are the Full-FS (FS) equations used ?'); 117 fielddisplay(obj,'fe_SSA','Finite Element for SSA 0: Lagrange P1 (linear), 1: Lagrange P2 (quadratic), 2: P1+ condensed, 3: P1+');118 fielddisplay(obj,'fe_HO', 'Finite Element for HO 0: P1xP1, 1: P1xP2, 2: P2xP1, 3: P2xP2, 4: P1+ condensed, 5: P1+');119 fielddisplay(obj,'fe_FS', 'Finite Element for FS 0: P1P1 (debugging), 1: P1P1GSL (under dev), 2: MINI condensed, 3: MINI, 4: P2P1 (Taylor-Hood)');121 fielddisplay(obj,'fe_SSA','Finite Element for SSA ''P1'', ''P1bubble'' ''P1bubblecondensed'' ''P2'''); 122 fielddisplay(obj,'fe_HO', 'Finite Element for HO ''P1'' ''P1bubble'' ''P1bubblecondensed'' ''P1xP2'' ''P2xP1'' ''P2'''); 123 fielddisplay(obj,'fe_FS', 'Finite Element for FS ''P1P1'' (debugging only) ''P1P1GLS'' ''MINIcondensed'' ''MINI'' ''TaylorHood'''); 120 124 fielddisplay(obj,'vertex_equation','flow equation for each vertex'); 121 125 fielddisplay(obj,'element_equation','flow equation for each element'); 122 126 fielddisplay(obj,'borderSSA','vertices on SSA''s border (for tiling)'); … … 130 134 WriteData(fid,'object',obj,'fieldname','isL1L2','format','Boolean'); 131 135 WriteData(fid,'object',obj,'fieldname','isHO','format','Boolean'); 132 136 WriteData(fid,'object',obj,'fieldname','isFS','format','Boolean'); 133 WriteData(fid,' object',obj,'fieldname','fe_SSA','format','Integer');134 WriteData(fid,' object',obj,'fieldname','fe_HO','format','Integer');135 WriteData(fid,' object',obj,'fieldname','fe_FS','format','Integer');137 WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(obj.fe_SSA),'format','Integer'); 138 WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(obj.fe_HO) ,'format','Integer'); 139 WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(obj.fe_FS) ,'format','Integer'); 136 140 WriteData(fid,'object',obj,'fieldname','borderSSA','format','DoubleMat','mattype',1); 137 141 WriteData(fid,'object',obj,'fieldname','borderHO','format','DoubleMat','mattype',1); 138 142 WriteData(fid,'object',obj,'fieldname','borderFS','format','DoubleMat','mattype',1);
Note:
See TracBrowser
for help on using the repository browser.