(mesh1,mesh2)
| 86 | return tpmesh |
| 87 | |
| 88 | def 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 | |
| 129 | def AddSurfElements1D(tpmesh,mesh1,mesh2): |
| 130 | ngm1 = mesh1.ngmesh; |
no test coverage detected