Changeset 16295
- Timestamp:
- 10/03/13 15:35:54 (11 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/flowequation.m
r15987 r16295 91 91 md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]); 92 92 md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices 1],'values',[0 1]); 93 if (md.mesh.dimension==2),93 if strcmp(meshtype(md.mesh),'2Dhorizontal') 94 94 md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[1:2]); 95 95 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]); 96 else 96 elseif strcmp(meshtype(md.mesh),'3D'), 97 97 md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]); 98 98 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:8]); 99 else 100 error('Case not supported yet'); 99 101 end 100 102 if ~(obj.isSIA || obj.isSSA || obj.isL1L2 || obj.isHO || obj.isFS), -
issm/trunk-jpl/src/m/classes/flowequation.py
r15987 r16295 79 79 md = checkfield(md,'flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1]) 80 80 md = checkfield(md,'flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1]) 81 if md.mesh.dimension==2:81 if strcmp(md.mesh.meshtype(),'2Dhorizontal'): 82 82 md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2]) 83 83 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2]) 84 el se:84 elif strcmp(md.mesh.meshtype(),'3D'): 85 85 md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',numpy.arange(0,8+1)) 86 86 md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements],'values',numpy.arange(0,8+1)) 87 else: 88 raise RuntimeError('mesh type not supported yet') 87 89 if not (self.isSIA or self.isSSA or self.isL1L2 or self.isHO or self.isFS): 88 90 md.checkmessage("no element types set for this model") -
issm/trunk-jpl/src/m/classes/mesh2d.m
r16287 r16295 1 %MESH class definition1 %MESH2D class definition 2 2 % 3 3 % Usage: 4 % mesh =mesh();4 % mesh2d=mesh2d(); 5 5 6 classdef mesh 6 classdef mesh2d 7 7 properties (SetAccess=public) 8 8 x = NaN; … … 30 30 end 31 31 methods 32 function obj = mesh (varargin) % {{{32 function obj = mesh2d(varargin) % {{{ 33 33 switch nargin 34 34 case 0 … … 58 58 md = checkfield(md,'mesh.numberofelements','>',0); 59 59 md = checkfield(md,'mesh.numberofvertices','>',0); 60 md = checkfield(md,'mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);61 60 md = checkfield(md,'mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d'); 62 61 … … 96 95 end % }}} 97 96 function marshall(obj,md,fid) % {{{ 98 WriteData(fid,'object',obj,'fieldname','x','format','DoubleMat','mattype',1); 99 WriteData(fid,'object',obj,'fieldname','y','format','DoubleMat','mattype',1); 100 WriteData(fid,'object',obj,'fieldname','elements','format','DoubleMat','mattype',2); 101 WriteData(fid,'object',obj,'fieldname','numberofelements','format','Integer'); 102 WriteData(fid,'object',obj,'fieldname','numberofvertices','format','Integer'); 103 WriteData(fid,'object',obj,'fieldname','average_vertex_connectivity','format','Integer'); 97 WriteData(fid,'enum',MeshTypeEnum(),'data',StringToEnum(['Mesh' meshtype(obj)]),'format','Integer'); 98 WriteData(fid,'object',obj,'class','mesh','fieldname','x','format','DoubleMat','mattype',1); 99 WriteData(fid,'object',obj,'class','mesh','fieldname','y','format','DoubleMat','mattype',1); 100 WriteData(fid,'enum',MeshZEnum(),'data',zeros(obj.numberofvertices,1),'format','DoubleMat','mattype',1); 101 WriteData(fid,'object',obj,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2); 102 WriteData(fid,'object',obj,'class','mesh','fieldname','numberofelements','format','Integer'); 103 WriteData(fid,'object',obj,'class','mesh','fieldname','numberofvertices','format','Integer'); 104 WriteData(fid,'object',obj,'class','mesh','fieldname','average_vertex_connectivity','format','Integer'); 105 end % }}} 106 function t = meshtype(obj) % {{{ 107 t = '2Dhorizontal'; 104 108 end % }}} 105 109 end -
issm/trunk-jpl/src/m/classes/mesh2d.py
r16287 r16295 5 5 from MatlabFuncs import * 6 6 7 class mesh (object):7 class mesh2d(object): 8 8 """ 9 MESH class definition9 MESH2D class definition 10 10 11 11 Usage: 12 mesh =mesh();12 mesh2d=mesh2d(); 13 13 """ 14 14 … … 98 98 return md 99 99 # }}} 100 def meshtype(self): # {{{ 101 return "2Dhorizontal" 102 #}}} 100 103 def marshall(self,md,fid): # {{{ 101 WriteData(fid,'object',self,'fieldname','x','format','DoubleMat','mattype',1) 102 WriteData(fid,'object',self,'fieldname','y','format','DoubleMat','mattype',1) 103 WriteData(fid,'object',self,'fieldname','elements','format','DoubleMat','mattype',2) 104 WriteData(fid,'object',self,'fieldname','numberofelements','format','Integer') 105 WriteData(fid,'object',self,'fieldname','numberofvertices','format','Integer') 106 WriteData(fid,'object',self,'fieldname','average_vertex_connectivity','format','Integer') 104 WriteData(fid,'enum',MeshTypeEnum(),'data',StringToEnum("Mesh"+self.meshtype())[0],'format','Integer'); 105 WriteData(fid,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1) 106 WriteData(fid,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1) 107 WriteData(fid,'enum',MeshZEnum(),'data',numpy.zeros(self.numberofvertices),'format','DoubleMat','mattype',1); 108 WriteData(fid,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2) 109 WriteData(fid,'object',self,'class','mesh','fieldname','numberofelements','format','Integer') 110 WriteData(fid,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer') 111 WriteData(fid,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer') 107 112 # }}} -
issm/trunk-jpl/src/m/classes/stressbalance.m
r15987 r16295 81 81 md = checkfield(md,'stressbalance.spcvx','forcing',1); 82 82 md = checkfield(md,'stressbalance.spcvy','forcing',1); 83 if md.mesh.dimension==3, md = checkfield(md,'stressbalance.spcvz','forcing',1); end83 if strcmp(meshtype(md.mesh),'3D'), md = checkfield(md,'stressbalance.spcvz','forcing',1); end 84 84 md = checkfield(md,'stressbalance.restol','size',[1 1],'>',0,'NaN',1); 85 85 md = checkfield(md,'stressbalance.reltol','size',[1 1]); … … 111 111 end 112 112 %CHECK THAT NO rotation specified for FS Grounded ice at base 113 if md.mesh.dimension==3& md.flowequation.isFS,113 if strcmp(meshtype(md.mesh),'3D') & md.flowequation.isFS, 114 114 pos=find(md.mask.groundedice_levelset>0. & md.mesh.vertexonbed); 115 115 if any(~isnan(md.stressbalance.referential(pos,:))), -
issm/trunk-jpl/src/m/classes/stressbalance.py
r15987 r16295 112 112 md = checkfield(md,'stressbalance.spcvx','forcing',1) 113 113 md = checkfield(md,'stressbalance.spcvy','forcing',1) 114 if md.mesh.dimension==3:114 if strcmp(md.mesh.meshtype(),'3D'): 115 115 md = checkfield(md,'stressbalance.spcvz','forcing',1) 116 116 md = checkfield(md,'stressbalance.restol','size',[1],'>',0) … … 145 145 md.checkmessage("Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal") 146 146 #CHECK THAT NO rotation specified for FS Grounded ice at base 147 # if md.mesh.dimension==3 & md.flowequation.isFS, 148 if md.mesh.dimension==3 and md.flowequation.isFS: 147 if strcmp(md.mesh.meshtype(),'3D') and md.flowequation.isFS: 149 148 pos=numpy.nonzero(numpy.logical_and(md.mask.groundedice_levelset,md.mesh.vertexonbed)) 150 149 if numpy.any(numpy.logical_not(numpy.isnan(md.stressbalance.referential[pos,:]))):
Note:
See TracChangeset
for help on using the changeset viewer.