Changeset 16324


Ignore:
Timestamp:
10/08/13 07:54:48 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added vertical support for bamg

Location:
issm/trunk-jpl/src/m/mesh
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/mesh/bamg.m

    r16258 r16324  
    316316[bamgmesh_out bamggeom_out]=BamgMesher(bamg_mesh,bamg_geometry,bamg_options);
    317317
    318 % plug results onto model
     318if getfieldvalue(options,'vertical',0),
     319        md.mesh=mesh2dvertical;
     320        md.mesh.x=bamgmesh_out.Vertices(:,1);
     321        md.mesh.z=bamgmesh_out.Vertices(:,2);
     322        md.mesh.elements=bamgmesh_out.Triangles(:,1:3);
     323        md.mesh.edges=bamgmesh_out.IssmEdges;
     324        md.mesh.segments=bamgmesh_out.IssmSegments(:,1:3);
     325        md.mesh.segmentmarkers=bamgmesh_out.IssmSegments(:,4);
     326
     327        %Fill in rest of fields:
     328        md.mesh.numberofelements=size(md.mesh.elements,1);
     329        md.mesh.numberofvertices=length(md.mesh.x);
     330        md.mesh.numberofedges=size(md.mesh.edges,1);
     331        md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
     332
     333        %Now, build the connectivity tables for this mesh.
     334        md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
     335else
     336        % plug results onto model
     337        md.mesh.x=bamgmesh_out.Vertices(:,1);
     338        md.mesh.y=bamgmesh_out.Vertices(:,2);
     339        md.mesh.elements=bamgmesh_out.Triangles(:,1:3);
     340        md.mesh.edges=bamgmesh_out.IssmEdges;
     341        md.mesh.segments=bamgmesh_out.IssmSegments(:,1:3);
     342        md.mesh.segmentmarkers=bamgmesh_out.IssmSegments(:,4);
     343
     344        %Fill in rest of fields:
     345        md.mesh.dimension=2;
     346        md.mesh.numberofelements=size(md.mesh.elements,1);
     347        md.mesh.numberofvertices=length(md.mesh.x);
     348        md.mesh.numberofedges=size(md.mesh.edges,1);
     349        md.mesh.z=zeros(md.mesh.numberofvertices,1);
     350        md.mesh.vertexonbed=ones(md.mesh.numberofvertices,1);
     351        md.mesh.vertexonsurface=ones(md.mesh.numberofvertices,1);
     352        md.mesh.elementonbed=ones(md.mesh.numberofelements,1);
     353        md.mesh.elementonsurface=ones(md.mesh.numberofelements,1);
     354        md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
     355end
    319356md.private.bamg=struct();
    320357md.private.bamg.mesh=bamgmesh(bamgmesh_out);
    321358md.private.bamg.geometry=bamggeom(bamggeom_out);
    322 md.mesh.x=bamgmesh_out.Vertices(:,1);
    323 md.mesh.y=bamgmesh_out.Vertices(:,2);
    324 md.mesh.elements=bamgmesh_out.Triangles(:,1:3);
    325 md.mesh.edges=bamgmesh_out.IssmEdges;
    326 md.mesh.segments=bamgmesh_out.IssmSegments(:,1:3);
    327 md.mesh.segmentmarkers=bamgmesh_out.IssmSegments(:,4);
    328 
    329 %Fill in rest of fields:
    330 md.mesh.dimension=2;
    331 md.mesh.numberofelements=size(md.mesh.elements,1);
    332 md.mesh.numberofvertices=length(md.mesh.x);
    333 md.mesh.numberofedges=size(md.mesh.edges,1);
    334 md.mesh.z=zeros(md.mesh.numberofvertices,1);
    335 md.mesh.vertexonbed=ones(md.mesh.numberofvertices,1);
    336 md.mesh.vertexonsurface=ones(md.mesh.numberofvertices,1);
    337 md.mesh.elementonbed=ones(md.mesh.numberofelements,1);
    338 md.mesh.elementonsurface=ones(md.mesh.numberofelements,1);
    339 md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
    340359md.mesh.elementconnectivity=md.private.bamg.mesh.ElementConnectivity;
    341360md.mesh.elementconnectivity(find(isnan(md.mesh.elementconnectivity)))=0;
     361
    342362
    343363%Check for orphan
Note: See TracChangeset for help on using the changeset viewer.