Добавить внутреннюю границу или трещину в PyGm sh / Gmsh - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь сгенерировать конечный элемент 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:

enter image description here

Тем не менее, я хотел бы добавить к мне трещину sh, что-то вроде:

enter image description here

Трещина здесь - всего лишь пример, ее необходимо определить до процесса создания сетки. Я попытался создать 2 точки (geom.add_point()) и линию (geom.add_line()), а затем сделать geom.boolean_difference() между окончательной геометрией и линией / трещиной, но это просто не работает.

Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ

Цель этого поколения меня sh состоит в том, чтобы симулировать физическую трещину в теле. В процессе создания сетки трещина может быть смоделирована элементной связностью me sh (т.е. элементы должны иметь разные узлы для создания грани трещины). Например, перед применением какой-либо нагрузки трещина закрывается:

enter image description here

После приложения нагрузки трещина открывается, так как подключение элемента позволяет это:

enter image description here

...