source: issm/oecreview/Archive/15392-16133/ISSM-15923-15924.diff@ 16134

Last change on this file since 16134 was 16134, checked in by Mathieu Morlighem, 12 years ago

Added Archive/15392-16133

File size: 10.1 KB
  • ../trunk-jpl/src/m/classes/flowequation.py

     
    2020                self.isL1L2           = 0
    2121                self.isHO             = 0
    2222                self.isFS             = 0
    23                 self.fe_SSA           = 0
    24                 self.fe_HO            = 0
    25                 self.fe_FS            = 0
     23                self.fe_SSA           = ''
     24                self.fe_HO            = ''
     25                self.fe_FS            = ''
    2626                self.vertex_equation  = float('NaN')
    2727                self.element_equation = float('NaN')
    2828                self.borderSSA        = float('NaN')
     
    4141                string="%s\n%s"%(string,fielddisplay(self,'isL1L2',"are L1L2 equations used ?"))
    4242                string="%s\n%s"%(string,fielddisplay(self,'isHO',"is the Higher-Order (HO) approximation used ?"))
    4343                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'"))
    4747                string="%s\n%s"%(string,fielddisplay(self,'vertex_equation',"flow equation for each vertex"))
    4848                string="%s\n%s"%(string,fielddisplay(self,'element_equation',"flow equation for each element"))
    4949                string="%s\n%s"%(string,fielddisplay(self,'borderSSA',"vertices on SSA's border (for tiling)"))
     
    5353                #}}}
    5454        def setdefaultparameters(self): # {{{
    5555
    56                 #MINI element for FS by default
    57                 self.fe_FS=2
     56                #P1 for SSA
     57                self.fe_SSA= 'P1';
    5858
     59                #P1 for HO
     60                self.fe_HO= 'P1';
     61
     62                #MINI condensed element for FS by default
     63                self.fe_FS = 'MINIcondensed';
     64
    5965                return self
    6066        #}}}
    6167        def checkconsistency(self,md,solution,analyses):    # {{{
     
    6672                        md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0,1])
    6773                        md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0,1])
    6874                        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'])
    7278                        md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1])
    7379                        md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])
    7480                        md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1])
     
    94100                WriteData(fid,'object',self,'fieldname','isL1L2','format','Boolean')
    95101                WriteData(fid,'object',self,'fieldname','isHO','format','Boolean')
    96102                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')
    100106                WriteData(fid,'object',self,'fieldname','borderSSA','format','DoubleMat','mattype',1)
    101107                WriteData(fid,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1)
    102108                WriteData(fid,'object',self,'fieldname','borderFS','format','DoubleMat','mattype',1)
  • ../trunk-jpl/src/m/classes/flowequation.m

     
    1010                isL1L2           = 0;
    1111                isHO             = 0;
    1212                isFS             = 0;
    13                 fe_SSA           = 0;
    14                 fe_HO            = 0;
    15                 fe_FS            = 0;
     13                fe_SSA           = '';
     14                fe_HO            = '';
     15                fe_FS            = '';
    1616                vertex_equation  = NaN;
    1717                element_equation = NaN;
    1818                borderSSA        = NaN;
     
    4444                                obj = structtoobj(flowequation(),objstruct);
    4545
    4646                                %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;
    5654                        end
    5755
    5856                end% }}}
     
    6866                end % }}}
    6967                function obj = setdefaultparameters(obj) % {{{
    7068
     69                        %P1 for SSA
     70                        obj.fe_SSA= 'P1';
     71
     72                        %P1 for HO
     73                        obj.fe_HO= 'P1';
     74
    7175                        %MINI condensed element for FS by default
    72                         obj.fe_FS = 2;
     76                        obj.fe_FS = 'MINIcondensed';
    7377                end % }}}
    7478                function md = checkconsistency(obj,md,solution,analyses) % {{{
    7579
     
    8084                                md = checkfield(md,'flowequation.isL1L2','numel',[1],'values',[0 1]);
    8185                                md = checkfield(md,'flowequation.isHO','numel',[1],'values',[0 1]);
    8286                                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'});
    8690                                md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);
    8791                                md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]);
    8892                                md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]);
     
    114118                        fielddisplay(obj,'isL1L2','is the L1L2 approximation used ?');
    115119                        fielddisplay(obj,'isHO','is the Higher-Order (HO) approximation used ?');
    116120                        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''');
    120124                        fielddisplay(obj,'vertex_equation','flow equation for each vertex');
    121125                        fielddisplay(obj,'element_equation','flow equation for each element');
    122126                        fielddisplay(obj,'borderSSA','vertices on SSA''s border (for tiling)');
     
    130134                        WriteData(fid,'object',obj,'fieldname','isL1L2','format','Boolean');
    131135                        WriteData(fid,'object',obj,'fieldname','isHO','format','Boolean');
    132136                        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');
    136140                        WriteData(fid,'object',obj,'fieldname','borderSSA','format','DoubleMat','mattype',1);
    137141                        WriteData(fid,'object',obj,'fieldname','borderHO','format','DoubleMat','mattype',1);
    138142                        WriteData(fid,'object',obj,'fieldname','borderFS','format','DoubleMat','mattype',1);
Note: See TracBrowser for help on using the repository browser.