Я пытаюсь сгенерировать конечный элемент me sh, используя PyGm sh, используя следующий код:
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)
Я могу сгенерировать следующее me sh:
Тем не менее, я хотел бы добавить к мне трещину sh, что-то вроде:
Трещина здесь - всего лишь пример, ее необходимо определить до процесса создания сетки. Я попытался создать 2 точки (geom.add_point()
) и линию (geom.add_line()
), а затем сделать geom.boolean_difference()
между окончательной геометрией и линией / трещиной, но это просто не работает.
Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ
Цель этого поколения меня sh состоит в том, чтобы симулировать физическую трещину в теле. В процессе создания сетки трещина может быть смоделирована элементной связностью me sh (т.е. элементы должны иметь разные узлы для создания грани трещины). Например, перед применением какой-либо нагрузки трещина закрывается:
После приложения нагрузки трещина открывается, так как подключение элемента позволяет это: