Changeset 19040 for issm/trunk-jpl/src/m/classes/mesh2d.m
- Timestamp:
- 01/26/15 18:40:38 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/mesh2d.m
r18563 r19040 70 70 end 71 71 end % }}} 72 function obj = setdefaultparameters(obj) % {{{72 function self = setdefaultparameters(self) % {{{ 73 73 74 74 %the connectivity is the averaged number of nodes linked to a … … 77 77 %give a good memory/time ration. This value can be checked in 78 78 %trunk/test/Miscellaneous/runme.m 79 obj.average_vertex_connectivity=25;79 self.average_vertex_connectivity=25; 80 80 end % }}} 81 function md = checkconsistency( obj,md,solution,analyses) % {{{81 function md = checkconsistency(self,md,solution,analyses) % {{{ 82 82 83 83 md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]); … … 97 97 end 98 98 end % }}} 99 function disp( obj) % {{{99 function disp(self) % {{{ 100 100 disp(sprintf(' 2D tria Mesh (horizontal):')); 101 101 102 102 disp(sprintf('\n Elements and vertices:')); 103 fielddisplay( obj,'numberofelements','number of elements');104 fielddisplay( obj,'numberofvertices','number of vertices');105 fielddisplay( obj,'elements','vertex indices of the mesh elements');106 fielddisplay( obj,'x','vertices x coordinate [m]');107 fielddisplay( obj,'y','vertices y coordinate [m]');108 fielddisplay( obj,'edges','edges of the 2d mesh (vertex1 vertex2 element1 element2)');109 fielddisplay( obj,'numberofedges','number of edges of the 2d mesh');103 fielddisplay(self,'numberofelements','number of elements'); 104 fielddisplay(self,'numberofvertices','number of vertices'); 105 fielddisplay(self,'elements','vertex indices of the mesh elements'); 106 fielddisplay(self,'x','vertices x coordinate [m]'); 107 fielddisplay(self,'y','vertices y coordinate [m]'); 108 fielddisplay(self,'edges','edges of the 2d mesh (vertex1 vertex2 element1 element2)'); 109 fielddisplay(self,'numberofedges','number of edges of the 2d mesh'); 110 110 111 111 disp(sprintf('\n Properties:')); 112 fielddisplay( obj,'vertexonboundary','vertices on the boundary of the domain flag list');113 fielddisplay( obj,'segments','edges on domain boundary (vertex1 vertex2 element)');114 fielddisplay( obj,'segmentmarkers','number associated to each segment');115 fielddisplay( obj,'vertexconnectivity','list of vertices connected to vertex_i');116 fielddisplay( obj,'elementconnectivity','list of vertices connected to element_i');117 fielddisplay( obj,'average_vertex_connectivity','average number of vertices connected to one vertex');112 fielddisplay(self,'vertexonboundary','vertices on the boundary of the domain flag list'); 113 fielddisplay(self,'segments','edges on domain boundary (vertex1 vertex2 element)'); 114 fielddisplay(self,'segmentmarkers','number associated to each segment'); 115 fielddisplay(self,'vertexconnectivity','list of vertices connected to vertex_i'); 116 fielddisplay(self,'elementconnectivity','list of vertices connected to element_i'); 117 fielddisplay(self,'average_vertex_connectivity','average number of vertices connected to one vertex'); 118 118 119 119 disp(sprintf('\n Extracted model:')); 120 fielddisplay( obj,'extractedvertices','vertices extracted from the model');121 fielddisplay( obj,'extractedelements','elements extracted from the model');120 fielddisplay(self,'extractedvertices','vertices extracted from the model'); 121 fielddisplay(self,'extractedelements','elements extracted from the model'); 122 122 123 123 disp(sprintf('\n Projection:')); 124 fielddisplay( obj,'lat','vertices latitude [degrees]');125 fielddisplay( obj,'long','vertices longitude [degrees]');126 fielddisplay( obj,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');124 fielddisplay(self,'lat','vertices latitude [degrees]'); 125 fielddisplay(self,'long','vertices longitude [degrees]'); 126 fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)'); 127 127 end % }}} 128 function createxml( obj,fid) % {{{128 function createxml(self,fid) % {{{ 129 129 fprintf(fid, '<!-- 2D tria Mesh (horizontal) -->\n'); 130 130 131 131 %elements and vertices 132 132 fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Elements and vertices">','<section name="mesh" />'); 133 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',' <parameter key ="numberofelements" type="',class( obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">',' <section name="mesh" />',' <help> number of elements </help>',' </parameter>');134 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',' <parameter key ="numberofvertices" type="',class( obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">',' <section name="mesh" />',' <help> number of vertices </help>',' </parameter>');135 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',' <parameter key ="elements" type="',class( obj.elements),'" default="',convert2str(obj.elements),'">',' <section name="mesh" />',' <help> vertex indices of the mesh elements </help>',' </parameter>');136 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="x" type="',class( obj.x),'" default="',convert2str(obj.x),'">',' <section name="mesh" />',' <help> vertices x coordinate [m] </help>',' </parameter>');137 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="y" type="',class( obj.y),'" default="',convert2str(obj.y),'">',' <section name="mesh" />',' <help> vertices y coordinate [m] </help>',' </parameter>');138 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="edges" type="',class( obj.edges),'" default="',convert2str(obj.edges),'">',' <section name="mesh" />',' <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>',' </parameter>');139 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="numberofedges" type="',class( obj.numberofedges),'" default="',convert2str(obj.numberofedges),'">',' <section name="mesh" />',' <help> number of edges of the 2d mesh </help>',' </parameter>');133 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',' <parameter key ="numberofelements" type="',class(self.numberofelements),'" default="',convert2str(self.numberofelements),'">',' <section name="mesh" />',' <help> number of elements </help>',' </parameter>'); 134 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',' <parameter key ="numberofvertices" type="',class(self.numberofvertices),'" default="',convert2str(self.numberofvertices),'">',' <section name="mesh" />',' <help> number of vertices </help>',' </parameter>'); 135 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',' <parameter key ="elements" type="',class(self.elements),'" default="',convert2str(self.elements),'">',' <section name="mesh" />',' <help> vertex indices of the mesh elements </help>',' </parameter>'); 136 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="x" type="',class(self.x),'" default="',convert2str(self.x),'">',' <section name="mesh" />',' <help> vertices x coordinate [m] </help>',' </parameter>'); 137 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="y" type="',class(self.y),'" default="',convert2str(self.y),'">',' <section name="mesh" />',' <help> vertices y coordinate [m] </help>',' </parameter>'); 138 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="edges" type="',class(self.edges),'" default="',convert2str(self.edges),'">',' <section name="mesh" />',' <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>',' </parameter>'); 139 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="numberofedges" type="',class(self.numberofedges),'" default="',convert2str(self.numberofedges),'">',' <section name="mesh" />',' <help> number of edges of the 2d mesh </help>',' </parameter>'); 140 140 fprintf(fid,'%s\n%s\n','</frame>'); 141 141 142 142 % properties 143 143 fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />'); 144 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="vertexonboundary" type="',class( obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">',' <section name="mesh" />',' <help> vertices on the boundary of the domain flag list </help>',' </parameter>');145 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="segments" type="',class( obj.segments),'" default="',convert2str(obj.segments),'">',' <section name="mesh" />',' <help> edges on domain boundary (vertex1 vertex2 element) </help>',' </parameter>');146 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="segmentmarkers" type="',class( obj.segmentmarkers),'" default="',convert2str(obj.segmentmarkers),'">',' <section name="mesh" />',' <help> number associated to each segment </help>',' </parameter>');147 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="vertexconnectivity" type="',class( obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">',' <section name="mesh" />',' <help> list of vertices connected to vertex_i </help>',' </parameter>');148 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="elementconnectivity" type="',class( obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">',' <section name="mesh" />',' <help> list of vertices connected to element_i </help>',' </parameter>');149 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="average_vertex_connectivity" type="',class( obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">',' <section name="mesh" />',' <help> average number of vertices connected to one vertex </help>',' </parameter>');144 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="vertexonboundary" type="',class(self.vertexonboundary),'" default="',convert2str(self.vertexonboundary),'">',' <section name="mesh" />',' <help> vertices on the boundary of the domain flag list </help>',' </parameter>'); 145 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="segments" type="',class(self.segments),'" default="',convert2str(self.segments),'">',' <section name="mesh" />',' <help> edges on domain boundary (vertex1 vertex2 element) </help>',' </parameter>'); 146 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="segmentmarkers" type="',class(self.segmentmarkers),'" default="',convert2str(self.segmentmarkers),'">',' <section name="mesh" />',' <help> number associated to each segment </help>',' </parameter>'); 147 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="vertexconnectivity" type="',class(self.vertexconnectivity),'" default="',convert2str(self.vertexconnectivity),'">',' <section name="mesh" />',' <help> list of vertices connected to vertex_i </help>',' </parameter>'); 148 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="elementconnectivity" type="',class(self.elementconnectivity),'" default="',convert2str(self.elementconnectivity),'">',' <section name="mesh" />',' <help> list of vertices connected to element_i </help>',' </parameter>'); 149 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="average_vertex_connectivity" type="',class(self.average_vertex_connectivity),'" default="',convert2str(self.average_vertex_connectivity),'">',' <section name="mesh" />',' <help> average number of vertices connected to one vertex </help>',' </parameter>'); 150 150 fprintf(fid,'%s\n%s\n','</frame>'); 151 151 152 152 %extracted model 153 153 fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Extracted Model">','<section name="mesh" />'); 154 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="extractedvertices" type="',class( obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">',' <section name="mesh" />',' <help> vertices extracted from the model </help>',' </parameter>');155 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="extractedelements" type="',class( obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">',' <section name="mesh" />',' <help> elements extracted from the model </help>',' </parameter>');154 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="extractedvertices" type="',class(self.extractedvertices),'" default="',convert2str(self.extractedvertices),'">',' <section name="mesh" />',' <help> vertices extracted from the model </help>',' </parameter>'); 155 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="extractedelements" type="',class(self.extractedelements),'" default="',convert2str(self.extractedelements),'">',' <section name="mesh" />',' <help> elements extracted from the model </help>',' </parameter>'); 156 156 fprintf(fid,'%s\n%s\n','</frame>'); 157 157 158 158 %projection 159 159 fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Projection">','<section name="mesh" />'); 160 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="lat" type="',class( obj.lat),'" default="',convert2str(obj.lat),'">',' <section name="mesh" />',' <help> vertices latitude [degrees] </help>',' </parameter>');161 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="long" type="',class( obj.long),'" default="',convert2str(obj.long),'">',' <section name="mesh" />',' <help> verticies longitude [degrees] </help>',' </parameter>');160 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="lat" type="',class(self.lat),'" default="',convert2str(self.lat),'">',' <section name="mesh" />',' <help> vertices latitude [degrees] </help>',' </parameter>'); 161 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="long" type="',class(self.long),'" default="',convert2str(self.long),'">',' <section name="mesh" />',' <help> verticies longitude [degrees] </help>',' </parameter>'); 162 162 % choice (epsg) 'n' or 's' 163 163 fprintf(fid,'%s\n%s\n%s\n',' <parameter key ="epsg" type="alternative" optional="false">',' <section name="mesh" />',' <help> Indicate epsg ''n'' or ''s'' </help>'); … … 168 168 169 169 end % }}} 170 function marshall( obj,md,fid) % {{{171 WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain' domaintype( obj)]),'format','Integer');172 WriteData(fid,'enum',DomainDimensionEnum(),'data',dimension( obj),'format','Integer');173 WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(elementtype( obj)),'format','Integer');174 WriteData(fid,'object', obj,'class','mesh','fieldname','x','format','DoubleMat','mattype',1);175 WriteData(fid,'object', obj,'class','mesh','fieldname','y','format','DoubleMat','mattype',1);176 WriteData(fid,'enum',MeshZEnum(),'data',zeros( obj.numberofvertices,1),'format','DoubleMat','mattype',1);177 WriteData(fid,'object', obj,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2);178 WriteData(fid,'object', obj,'class','mesh','fieldname','numberofelements','format','Integer');179 WriteData(fid,'object', obj,'class','mesh','fieldname','numberofvertices','format','Integer');180 WriteData(fid,'object', obj,'class','mesh','fieldname','average_vertex_connectivity','format','Integer');181 WriteData(fid,'object', obj,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1);170 function marshall(self,md,fid) % {{{ 171 WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain' domaintype(self)]),'format','Integer'); 172 WriteData(fid,'enum',DomainDimensionEnum(),'data',dimension(self),'format','Integer'); 173 WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(elementtype(self)),'format','Integer'); 174 WriteData(fid,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1); 175 WriteData(fid,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1); 176 WriteData(fid,'enum',MeshZEnum(),'data',zeros(self.numberofvertices,1),'format','DoubleMat','mattype',1); 177 WriteData(fid,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2); 178 WriteData(fid,'object',self,'class','mesh','fieldname','numberofelements','format','Integer'); 179 WriteData(fid,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer'); 180 WriteData(fid,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer'); 181 WriteData(fid,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1); 182 182 end % }}} 183 function t = domaintype( obj) % {{{183 function t = domaintype(self) % {{{ 184 184 t = '2Dhorizontal'; 185 185 end % }}} 186 function d = dimension( obj) % {{{186 function d = dimension(self) % {{{ 187 187 d = 2; 188 188 end % }}} 189 function s = elementtype( obj) % {{{189 function s = elementtype(self) % {{{ 190 190 s = 'Tria'; 191 191 end % }}}
Note:
See TracChangeset
for help on using the changeset viewer.