Index: ../trunk-jpl/src/m/classes/flowequation.py =================================================================== --- ../trunk-jpl/src/m/classes/flowequation.py (revision 15923) +++ ../trunk-jpl/src/m/classes/flowequation.py (revision 15924) @@ -20,9 +20,9 @@ self.isL1L2 = 0 self.isHO = 0 self.isFS = 0 - self.fe_SSA = 0 - self.fe_HO = 0 - self.fe_FS = 0 + self.fe_SSA = '' + self.fe_HO = '' + self.fe_FS = '' self.vertex_equation = float('NaN') self.element_equation = float('NaN') self.borderSSA = float('NaN') @@ -41,9 +41,9 @@ string="%s\n%s"%(string,fielddisplay(self,'isL1L2',"are L1L2 equations used ?")) string="%s\n%s"%(string,fielddisplay(self,'isHO',"is the Higher-Order (HO) approximation used ?")) string="%s\n%s"%(string,fielddisplay(self,'isFS',"are the Full-FS (FS) equations used ?")) - string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA 0: Lagrange P1 (linear), 1: Lagrange P2 (quadratic)")) - string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO 0: P1xP1, 1: P1xP2, 2: P2xP1, 3: P2xP2")) - 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)")) + string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA: 'P1', 'P1bubble' 'P1bubblecondensed' 'P2'")) + string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO: 'P1' 'P1bubble' 'P1bubblecondensed' 'P1xP2' 'P2xP1' 'P2'")) + string="%s\n%s"%(string,fielddisplay(self,'fe_FS' ,"Finite Element for FS: 'P1P1' (debugging only) 'P1P1GLS' 'MINIcondensed' 'MINI' 'TaylorHood'")) string="%s\n%s"%(string,fielddisplay(self,'vertex_equation',"flow equation for each vertex")) string="%s\n%s"%(string,fielddisplay(self,'element_equation',"flow equation for each element")) string="%s\n%s"%(string,fielddisplay(self,'borderSSA',"vertices on SSA's border (for tiling)")) @@ -53,9 +53,15 @@ #}}} def setdefaultparameters(self): # {{{ - #MINI element for FS by default - self.fe_FS=2 + #P1 for SSA + self.fe_SSA= 'P1'; + #P1 for HO + self.fe_HO= 'P1'; + + #MINI condensed element for FS by default + self.fe_FS = 'MINIcondensed'; + return self #}}} def checkconsistency(self,md,solution,analyses): # {{{ @@ -66,9 +72,9 @@ md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0,1]) md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0,1]) md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0,1]) - md = checkfield(md,'flowequation.fe_SSA','numel',[1],'values',[0,1]) - md = checkfield(md,'flowequation.fe_HO','numel',[1],'values',numpy.arange(0,3+1)) - md = checkfield(md,'flowequation.fe_FS','numel',[1],'values',numpy.arange(0,4+1)) + md = checkfield(md,'flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2']) + md = checkfield(md,'flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2']) + md = checkfield(md,'flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood']) md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1]) md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1]) md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1]) @@ -94,9 +100,9 @@ WriteData(fid,'object',self,'fieldname','isL1L2','format','Boolean') WriteData(fid,'object',self,'fieldname','isHO','format','Boolean') WriteData(fid,'object',self,'fieldname','isFS','format','Boolean') - WriteData(fid,'object',self,'fieldname','fe_SSA','format','Integer') - WriteData(fid,'object',self,'fieldname','fe_HO','format','Integer') - WriteData(fid,'object',self,'fieldname','fe_FS','format','Integer') + WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(self.fe_SSA)[0],'format','Integer') + WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(self.fe_HO)[0] ,'format','Integer') + WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(self.fe_FS)[0] ,'format','Integer') WriteData(fid,'object',self,'fieldname','borderSSA','format','DoubleMat','mattype',1) WriteData(fid,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1) WriteData(fid,'object',self,'fieldname','borderFS','format','DoubleMat','mattype',1) Index: ../trunk-jpl/src/m/classes/flowequation.m =================================================================== --- ../trunk-jpl/src/m/classes/flowequation.m (revision 15923) +++ ../trunk-jpl/src/m/classes/flowequation.m (revision 15924) @@ -10,9 +10,9 @@ isL1L2 = 0; isHO = 0; isFS = 0; - fe_SSA = 0; - fe_HO = 0; - fe_FS = 0; + fe_SSA = ''; + fe_HO = ''; + fe_FS = ''; vertex_equation = NaN; element_equation = NaN; borderSSA = NaN; @@ -44,15 +44,13 @@ obj = structtoobj(flowequation(),objstruct); %2013 July 23rd - if isfield(objstruct,'isSIA'), obj.isSIA = objstruct.isSIA; end; - if isfield(objstruct,'isSSA'), obj.isSSA = objstruct.isSSA; end; - if isfield(objstruct,'isL1L2'), obj.isL1L2 = objstruct.isL1L2; end; - if isfield(objstruct,'isHO'), obj.isHO = objstruct.isHO; end; - if isfield(objstruct,'isFS'), obj.isFS = objstruct.isFS; end; - if isfield(objstruct,'fe_FS'), obj.fe_FS = objstruct.fe_FS; end; - if isfield(objstruct,'borderSSA'), obj.borderSSA = objstruct.borderSSA;end; - if isfield(objstruct,'borderHO'), obj.borderHO = objstruct.borderHO; end; - if isfield(objstruct,'borderFS'), obj.borderFS = objstruct.borderFS; end; + if isfield(objstruct,'ishutter'), obj.isSIA = objstruct.ishutter; end; + if isfield(objstruct,'ismacayeal'), obj.isSSA = objstruct.ismacayeal; end; + if isfield(objstruct,'ispattyn'), obj.isHO = objstruct.ispattyn; end; + if isfield(objstruct,'isstokes'), obj.isFS = objstruct.isstokes; end; + if isfield(objstruct,'bordermacayeal'),obj.borderSSA = objstruct.bordermacayeal; end; + if isfield(objstruct,'borderpattyn'), obj.borderHO = objstruct.borderpattyn; end; + if isfield(objstruct,'borderstokes'), obj.borderFS = objstruct.borderstokes; end; end end% }}} @@ -68,8 +66,14 @@ end % }}} function obj = setdefaultparameters(obj) % {{{ + %P1 for SSA + obj.fe_SSA= 'P1'; + + %P1 for HO + obj.fe_HO= 'P1'; + %MINI condensed element for FS by default - obj.fe_FS = 2; + obj.fe_FS = 'MINIcondensed'; end % }}} function md = checkconsistency(obj,md,solution,analyses) % {{{ @@ -80,9 +84,9 @@ md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0 1]); md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0 1]); md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0 1]); - md = checkfield(md,'flowequation.fe_SSA','numel',[1],'values',[0:3]); - md = checkfield(md,'flowequation.fe_HO','numel',[1],'values',[0:5]); - md = checkfield(md,'flowequation.fe_FS','numel',[1],'values',[0:4]); + md = checkfield(md,'flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'}); + md = checkfield(md,'flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2'}); + md = checkfield(md,'flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood'}); md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]); md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]); md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]); @@ -114,9 +118,9 @@ fielddisplay(obj,'isL1L2','is the L1L2 approximation used ?'); fielddisplay(obj,'isHO','is the Higher-Order (HO) approximation used ?'); fielddisplay(obj,'isFS','are the Full-FS (FS) equations used ?'); - fielddisplay(obj,'fe_SSA','Finite Element for SSA 0: Lagrange P1 (linear), 1: Lagrange P2 (quadratic), 2: P1+ condensed, 3: P1+'); - fielddisplay(obj,'fe_HO', 'Finite Element for HO 0: P1xP1, 1: P1xP2, 2: P2xP1, 3: P2xP2, 4: P1+ condensed, 5: P1+'); - fielddisplay(obj,'fe_FS', 'Finite Element for FS 0: P1P1 (debugging), 1: P1P1GSL (under dev), 2: MINI condensed, 3: MINI, 4: P2P1 (Taylor-Hood)'); + fielddisplay(obj,'fe_SSA','Finite Element for SSA ''P1'', ''P1bubble'' ''P1bubblecondensed'' ''P2'''); + fielddisplay(obj,'fe_HO', 'Finite Element for HO ''P1'' ''P1bubble'' ''P1bubblecondensed'' ''P1xP2'' ''P2xP1'' ''P2'''); + fielddisplay(obj,'fe_FS', 'Finite Element for FS ''P1P1'' (debugging only) ''P1P1GLS'' ''MINIcondensed'' ''MINI'' ''TaylorHood'''); fielddisplay(obj,'vertex_equation','flow equation for each vertex'); fielddisplay(obj,'element_equation','flow equation for each element'); fielddisplay(obj,'borderSSA','vertices on SSA''s border (for tiling)'); @@ -130,9 +134,9 @@ WriteData(fid,'object',obj,'fieldname','isL1L2','format','Boolean'); WriteData(fid,'object',obj,'fieldname','isHO','format','Boolean'); WriteData(fid,'object',obj,'fieldname','isFS','format','Boolean'); - WriteData(fid,'object',obj,'fieldname','fe_SSA','format','Integer'); - WriteData(fid,'object',obj,'fieldname','fe_HO','format','Integer'); - WriteData(fid,'object',obj,'fieldname','fe_FS','format','Integer'); + WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(obj.fe_SSA),'format','Integer'); + WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(obj.fe_HO) ,'format','Integer'); + WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(obj.fe_FS) ,'format','Integer'); WriteData(fid,'object',obj,'fieldname','borderSSA','format','DoubleMat','mattype',1); WriteData(fid,'object',obj,'fieldname','borderHO','format','DoubleMat','mattype',1); WriteData(fid,'object',obj,'fieldname','borderFS','format','DoubleMat','mattype',1);