次のコードを使用して、PyGmsh を使用して有限要素メッシュを生成しようとしています。
import pygmsh
geom = pygmsh.opencascade.Geometry(
characteristic_length_min=0.1,
characteristic_length_max=0.1,
)
rectangle = geom.add_rectangle([-1.0, -1.0, 0.0], 2.0, 2.0)
disk1 = geom.add_disk([-1.2, 0.0, 0.0], 0.5)
disk2 = geom.add_disk([+1.2, 0.0, 0.0], 0.5)
disk3 = geom.add_disk([0.0, -0.9, 0.0], 0.5)
disk4 = geom.add_disk([0.0, +0.9, 0.0], 0.5)
union = geom.boolean_union([rectangle, disk1, disk2])
diff = geom.boolean_difference([union], [disk3, disk4])
mesh = pygmsh.generate_mesh(geom, dim=2)
次のメッシュを生成できます。
ただし、次のようなメッシュにクラックを追加したいと思います。
ここでの亀裂は単なる例であり、メッシュ プロセスの前に定義する必要があります。2 つの点 ( geom.add_point()
) と線 ( geom.add_line()
)
を作成してgeom.boolean_difference()
から、最終的なジオメトリと線/クラックの間を作成しようとしましたが、うまくいきません。
どんな助けでも大歓迎です。
編集
このタイプのメッシュ生成の目的は、ボディの物理的な亀裂をシミュレートすることです。メッシング プロセスでは、メッシュの要素接続によって亀裂をモデル化できます (つまり、要素は亀裂面を作成するために異なる節点を持つ必要があります)。例: 荷重を適用する前に、クラックが閉じられます。
荷重を適用した後、要素の接続性により次のことが可能になるため、亀裂が開きます。