【问题标题】:Custom level set function in pygalmeshpygalmesh中的自定义水平集功能
【发布时间】:2019-09-29 22:24:47
【问题描述】:

我想使用pygalmeshCGALs 网格生成功能的 Python 前端)在自定义域上执行布尔运算。该网站提供了一个使用自定义水平集函数定义自定义域的示例 here(可以找到另一个here)。

我需要一个从顶点列表和相应边生成域的函数。

感谢任何提示/想法。

谢谢

【问题讨论】:

    标签: mesh cgal


    【解决方案1】:

    包作者在这里。

    我需要一个从顶点列表和相应边生成域的函数。

    pygalmesh 不适合该任务。它只能从由水平集函数(组合)描述的三维几何创建网格。

    如果您只有顶点,则并不完全清楚对应的域应该是什么。也许那个域的凸包?此外,边缘在 3D 中的作用不大。

    如果你的域的表面由点和面给出,pygalmesh 可以通过

    填充体积
    import pygalmesh
    
    mesh = pygalmesh.generate_volume_mesh_from_surface_mesh(
        "elephant.vtu",
        facet_angle=25.0,
        facet_size=0.15,
        facet_distance=0.008,
        cell_radius_edge_ratio=3.0,
        verbose=False
    )
    

    【讨论】:

    • 非常感谢!关于您的建议,我可以使用表面网格。但是,我似乎无法对它们进行布尔运算。 pygalmesh.Difference 似乎只期望 pygalmesh.DomainBase 类型的对象。如果我计算上面提到的 _elephant.vtu 和一个球域的差异,我得到:错误 - 不兼容的构造函数参数。我是不是做错了什么?
    • 您需要拥有来自其他地方的表面网格。 pygalmesh 可以从中构建体积网格,它无法构建所述表面网格。
    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    相关资源
    最近更新 更多