0

Now, I need to build myself mesh by pygmsh. The mesh means:

points = [
   [x0, y0, z0], 
   [x1, y1, z1],
   ...
   [xn, yn, zn]
]
connections = [
   [c11, c12, c13],
   [c21, c22, c23],
   ...
   [cm1, cm2, cm3]
]

How can I input this mesh to pygmsh?

I try to build this mesh by geom.add_polygon, but it do not work.

The complete code to reproduce my problem is:

import pygmsh

p0 = [0, 0, 0]
p1 = [1, 0, 0]
p2 = [1, 1, 0]
p3 = [0, 1, 0]
p4 = [0, 0, 1]
p5 = [1, 0, 1]
p6 = [1, 1, 1]
p7 = [0, 1, 1]

with pygmsh.geo.Geometry() as geom:

    s1 = geom.add_polygon(
        [p0, p1, p2, p3]
    )

    s2 = geom.add_polygon(
        [p4, p5, p6, p7]
    )

    s3 = geom.add_polygon(
        [p0, p1, p5, p4]
    )

    s4 = geom.add_polygon(
        [p1, p2, p6, p5]
    )

    s5 = geom.add_polygon(
        [p2, p3, p7, p6]
    )

    s6 = geom.add_polygon(
        [p0, p3, p7, p4]
    )

    surface = geom.add_surface_loop([s1, s2, s3, s4, s5, s6])
    geom.add_volume(surface)

    mesh = geom.generate_mesh()
    points = mesh.points
    elem = mesh.cells_dict['triangle']

And, it reports a bug:

Traceback (most recent call last):
  File "C:/Users/qiang_zhang/Desktop/readSU2/test3.py", line 42, in <module>
    mesh = geom.generate_mesh()
  File "D:\Anaconda\envs\work\lib\site-packages\pygmsh\common\geometry.py", line 374, in generate_mesh
    gmsh.model.mesh.generate(dim)
  File "D:\Anaconda\envs\work\lib\site-packages\gmsh.py", line 1973, in generate
    raise Exception(logger.getLastError())
Exception: Could not recover boundary mesh: error 2

How can I build myself volume? Any suggestion is appreciated~~~

Qiang Zhang
  • 820
  • 8
  • 32

0 Answers0