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 | x=md.x;
|
---|
15 | y=md.y;
|
---|
16 | index=md.elements;
|
---|
17 | else
|
---|
18 | x=varargin{1};
|
---|
19 | y=varargin{2};
|
---|
20 | index=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.bamg=struct();
|
---|
28 | md.bamg.mesh=bamgmesh(bamgmesh_out);
|
---|
29 | md.bamg.geometry=bamggeom(bamggeom_out);
|
---|
30 | md.x=bamgmesh_out.Vertices(:,1);
|
---|
31 | md.y=bamgmesh_out.Vertices(:,2);
|
---|
32 | md.elements=bamgmesh_out.Triangles(:,1:3);
|
---|
33 | md.edges=bamgmesh_out.IssmEdges;
|
---|
34 | md.segments=bamgmesh_out.IssmSegments(:,1:3);
|
---|
35 | md.segmentmarkers=bamgmesh_out.IssmSegments(:,4);
|
---|
36 |
|
---|
37 | %Fill in rest of fields:
|
---|
38 | md.dim=2;
|
---|
39 | md.numberofelements=size(md.elements,1);
|
---|
40 | md.numberofnodes=length(md.x);
|
---|
41 | md.z=zeros(md.numberofnodes,1);
|
---|
42 | md.nodeonbed=ones(md.numberofnodes,1);
|
---|
43 | md.nodeonwater=zeros(md.numberofnodes,1);
|
---|
44 | md.nodeonsurface=ones(md.numberofnodes,1);
|
---|
45 | md.elementonbed=ones(md.numberofelements,1);
|
---|
46 | md.elementonsurface=ones(md.numberofelements,1);
|
---|
47 | md.nodeonboundary=zeros(md.numberofnodes,1); md.nodeonboundary(md.segments(:,1:2))=1;
|
---|