1 | function md=meshconvert(md,varargin)
|
---|
2 | %CONVERTMESH - convert mesh to bamg mesh
|
---|
3 | %
|
---|
4 | % Usage:
|
---|
5 | % md=meshconvert(md);
|
---|
6 | % md=meshconvert(md,index,x,y);
|
---|
7 |
|
---|
8 | if nargin~=1 & nargin~=4,
|
---|
9 | help meshconvert
|
---|
10 | error('meshconvert error message: bad usage');
|
---|
11 | end
|
---|
12 |
|
---|
13 | if nargin==1,
|
---|
14 | index = md.mesh.elements;
|
---|
15 | x = md.mesh.x;
|
---|
16 | y = md.mesh.y;
|
---|
17 | else
|
---|
18 | index = varargin{1};
|
---|
19 | x = varargin{2};
|
---|
20 | y = varargin{3};
|
---|
21 | end
|
---|
22 |
|
---|
23 | %call Bamg
|
---|
24 | [bamgmesh_out bamggeom_out]=BamgConvertMesh(index,x,y);
|
---|
25 |
|
---|
26 | % plug results onto model
|
---|
27 | md.private.bamg = struct();
|
---|
28 | md.private.bamg.mesh = bamgmesh(bamgmesh_out);
|
---|
29 | md.private.bamg.geometry = bamggeom(bamggeom_out);
|
---|
30 | md.mesh.x = bamgmesh_out.Vertices(:,1);
|
---|
31 | md.mesh.y = bamgmesh_out.Vertices(:,2);
|
---|
32 | md.mesh.elements = bamgmesh_out.Triangles(:,1:3);
|
---|
33 | md.mesh.edges = bamgmesh_out.IssmEdges;
|
---|
34 | md.mesh.segments = bamgmesh_out.IssmSegments(:,1:3);
|
---|
35 | md.mesh.segmentmarkers = bamgmesh_out.IssmSegments(:,4);
|
---|
36 |
|
---|
37 | %Fill in rest of fields:
|
---|
38 | md.mesh.dimension = 2;
|
---|
39 | md.mesh.numberofelements = size(md.mesh.elements,1);
|
---|
40 | md.mesh.numberofvertices = length(md.mesh.x);
|
---|
41 | md.mesh.numberofedges = size(md.mesh.edges,1);
|
---|
42 | md.mesh.z = zeros(md.mesh.numberofvertices,1);
|
---|
43 | md.mesh.vertexonbed = ones(md.mesh.numberofvertices,1);
|
---|
44 | md.mesh.vertexonsurface = ones(md.mesh.numberofvertices,1);
|
---|
45 | md.mesh.elementonbed = ones(md.mesh.numberofelements,1);
|
---|
46 | md.mesh.elementonsurface = ones(md.mesh.numberofelements,1);
|
---|
47 | md.mesh.vertexonboundary = zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2)) = 1;
|
---|