Python 如何解决gmsh网格生成错误

Python 如何解决gmsh网格生成错误,python,mesh,finite-element-analysis,openfoam,Python,Mesh,Finite Element Analysis,Openfoam,我正在尝试三维网格10椭圆与各种纵横比的OpenFOAM模拟。我注意到,当我尝试生成3D网格时,我得到了相同的3个网格错误。 这3条错误消息是: 错误:无法恢复曲线1000(曲面1)上的边405(1/1219) 错误:在曲面1026中找不到拉伸节点(0.9090634994349311,-0.0009576995469135237,1) 错误:卷1中没有元素 这些消息出现在大多数椭圆上,但其余的网格没有问题 我是gmsh的新手,所以我希望您能解释一下导致这些错误的原因以及我应该如何着手解决这些问

我正在尝试三维网格10椭圆与各种纵横比的OpenFOAM模拟。我注意到,当我尝试生成3D网格时,我得到了相同的3个网格错误。 这3条错误消息是:

  • 错误:无法恢复曲线1000(曲面1)上的边405(1/1219)
  • 错误:在曲面1026中找不到拉伸节点(0.9090634994349311,-0.0009576995469135237,1)
  • 错误:卷1中没有元素
  • 这些消息出现在大多数椭圆上,但其余的网格没有问题

    我是gmsh的新手,所以我希望您能解释一下导致这些错误的原因以及我应该如何着手解决这些问题

    我计划使用更复杂/无定形的形状,所以我需要知道这些形状的网格将是健壮的。任何关于使用此设置实现稳健啮合的提示也将不胜感激

    以下是其中一种形状的3D网格文件(如果需要,可以提供更多):


    问题发生了,因为
    样条曲线(1000)
    本身就是一个闭环。这是不可取的。在GMSH中,人们更愿意将形成闭合循环的线定义为至少两个独立的对象,然后将它们添加到相应的
    线循环中

    因此,具有以下更改的文件应创建无任何问题的网格:

    Spline(1000) = {1000:1045};
    Spline(1001) = {1045:1098,1000};
    ...
    Line Loop (2) = {1000,1001};
    

    其他一切都可以保持不变。
    1045
    是任意选择的。

    太棒了,谢谢你的解决方案!此外,除了网站上列出的资源外,您是否有任何关于学习gmsh的资源,如果没有,请不要担心。@RobotBarry不太可能。他们的gmshgithub上的教程非常有用,然后是反复试验,在谷歌上搜索,看看是否有人已经在gmsh邮件列表中找到了这个问题(甚至是远程相关的)。
    Spline(1000) = {1000:1045};
    Spline(1001) = {1045:1098,1000};
    ...
    Line Loop (2) = {1000,1001};