source: issm/branches/trunk-larour-NatGeoScience2016/src/m/mesh/meshconvert.py@ 21759

Last change on this file since 21759 was 21759, checked in by Eric.Larour, 8 years ago

CHG: merged branch back to trunk-jpl 21754.

File size: 1.6 KB
Line 
1import numpy as np
2from collections import OrderedDict
3from BamgConvertMesh import BamgConvertMesh
4from mesh2d import mesh2d
5from bamgmesh import bamgmesh
6from bamggeom import bamggeom
7
8def meshconvert(md,*args):
9 """
10 CONVERTMESH - convert mesh to bamg mesh
11
12 Usage:
13 md=meshconvert(md);
14 md=meshconvert(md,index,x,y);
15 """
16
17 if not len(args)==0 and not len(args)==3:
18 raise TypeError("meshconvert error message: bad usage")
19
20 if not len(args):
21 index = md.mesh.elements
22 x = md.mesh.x
23 y = md.mesh.y
24 else:
25 index = args[0]
26 x = args[1]
27 y = args[2]
28
29 #call Bamg
30 bamgmesh_out,bamggeom_out=BamgConvertMesh(index,x,y)
31
32 # plug results onto model
33 md.private.bamg = OrderedDict()
34 md.private.bamg['mesh'] = bamgmesh(bamgmesh_out)
35 md.private.bamg['geometry'] = bamggeom(bamggeom_out)
36 md.mesh = mesh2d()
37 md.mesh.x = bamgmesh_out['Vertices'][:,0].copy()
38 md.mesh.y = bamgmesh_out['Vertices'][:,1].copy()
39 md.mesh.elements = bamgmesh_out['Triangles'][:,0:3].astype(int)
40 md.mesh.edges = bamgmesh_out['IssmEdges'].astype(int)
41 md.mesh.segments = bamgmesh_out['IssmSegments'][:,0:3].astype(int)
42 md.mesh.segmentmarkers = bamgmesh_out['IssmSegments'][:,3].astype(int)
43
44 #Fill in rest of fields:
45 md.mesh.numberofelements = np.size(md.mesh.elements,axis=0)
46 md.mesh.numberofvertices = np.size(md.mesh.x)
47 md.mesh.numberofedges = np.size(md.mesh.edges,axis=0)
48 md.mesh.vertexonboundary = np.zeros(md.mesh.numberofvertices,bool)
49 md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1] = True
50
51 return md
52
Note: See TracBrowser for help on using the repository browser.