MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / MakeMesh3D

Function MakeMesh3D

python/TensorProductTools.py:88–127  ·  view source on GitHub ↗
(mesh1,mesh2)

Source from the content-addressed store, hash-verified

86 return tpmesh
87
88def MakeMesh3D(mesh1,mesh2):
89 tpmesh = ngmeshing.Mesh(dim = mesh1.dim + mesh2.dim)
90 ngm1 = mesh1.ngmesh
91 ngm2 = mesh2.ngmesh
92 if mesh1.dim==2:
93 els1 = ngm1.Elements2D()
94 els2 = ngm2.Elements1D()
95 vert1 = ngm1.Points()
96 vert2 = ngm2.Points()
97 pids = []
98 for i in range(len(vert1)):
99 for j in range(len(vert2)):
100 pids.append(tpmesh.Add(MeshPoint(Pnt(vert1[ngmeshing.PointId(i+1)].p[0],vert1[ngmeshing.PointId(i+1)].p[1],vert2[ngmeshing.PointId(j+1)].p[0]))))
101 for elx in els1:
102 for ely in els2:
103 pnum = []
104 for j in reversed(ely.vertices):
105 for i in elx.vertices:
106 pnum.append((i.nr-1) * len(vert2) + j.nr-1)
107 elpids = [pids[p] for p in pnum]
108 tpmesh.Add( Element3D(1,elpids) )
109 return tpmesh
110 else:
111 els1 = ngm1.Elements1D()
112 els2 = ngm2.Elements2D()
113 vert1 = ngm1.Points()
114 vert2 = ngm2.Points()
115 pids = []
116 for i in range(len(vert1)):
117 for j in range(len(vert2)):
118 pids.append(tpmesh.Add(MeshPoint(Pnt(vert1[ngmeshing.PointId(i+1)].p[0],vert2[ngmeshing.PointId(j+1)].p[0],vert2[ngmeshing.PointId(j+1)].p[1]))))
119 for elx in els1:
120 for ely in els2:
121 pnum = []
122 for i in reversed(elx.vertices):
123 for j in (ely.vertices):
124 pnum.append((i.nr-1) * len(vert2) + j.nr-1)
125 elpids = [pids[p] for p in pnum]
126 tpmesh.Add( Element3D(1,elpids) )
127 return tpmesh
128
129def AddSurfElements1D(tpmesh,mesh1,mesh2):
130 ngm1 = mesh1.ngmesh;

Callers 1

MakeTensorProductMeshFunction · 0.85

Calls 3

MeshPointClass · 0.85
PointsMethod · 0.80
AddMethod · 0.80

Tested by

no test coverage detected