Определите внешнюю поверхность модели Abaqus и вычислите точку интегрирования расстояния ближайшую поверхность - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть проблема, которую я пытаюсь решить неделями, но безрезультатно. После моего моделирования в Abaqus, после того как я экспортировал напряжение в каждой точке интегрирования с соответствующей координатой, мне нужно рассчитать для каждой точки интегрирования расстояние от ближайшей поверхности. Конечно, геометрия может быть сколь угодно сложной.

Прежде всего я хотел определить координаты узлов, принадлежащих поверхности модели (идея состоит в том, чтобы сделать это без определения априори. поверхность или набор).

Я нашел в другой теме этот фрагмент кода:

p = mdb.models[name].parts[name]
surf_nodes = []
for face in p.elementFaces():
    if len(face.getElements()) == 1:
        # Then the face has only one associated element, ie it's on the surface.
        # Get the nodes on the face:
        surf_nodes.extend([node for node in face.getNodes() if node not in surf_nodes])

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

TypeError: Объект MeshFaceArray не может быть вызван.

Знаете ли вы, как я могу решить эту проблему? И, конечно же, вы знаете, как поступить, чтобы достичь моей конечной цели?

Заранее большое спасибо :))

1 Ответ

0 голосов
/ 17 февраля 2020

Попробуйте и дайте мне знать, если это не сработает, тогда я могу помочь вам в дальнейшем.

p = mdb.models[name].parts[name]
surf_nodes = []
for face in p.elementFaces:
    if len(face.getElements()) == 1:
        surf_nodes.extend([node for node in face.getNodes() if node not in surf_nodes])
...