Несоответствия скриптов в ABAQUS при выборе регионов - PullRequest
2 голосов
/ 19 марта 2019

В некоторой степени это может звучать скорее как напыщенная речь, но мне также хотелось бы узнать ваше мнение о том, как бороться с несоответствиями при использовании сценариев Python в abaqus. вот мой пример: в моем rootAssembly (ra) у меня есть три экземпляра, называемые a, b, c. в приведенном ниже сценарии я назначаю общее начальное число, затем управление сеткой и типы элементов, наконец, я генерирую сетку:

ra.seedPartInstance(regions=(a,b,c), size=1.0)

ra.setMeshControls(elemShape=QUAD,
    regions=(a.faces+b.faces+c.faces),
    technique=STRUCTURED)

ra.setElementType(
    elemTypes=eltyp, 
    regions=(a.faces,b.faces,c.faces))

ra.generateMesh(regions=(a,b,c))

Как видите, ABAQUS требует, чтобы вы определяли один и тот же регион в нескольких разных режимах. Даже если аргумент называется «регионы», ABAQUS запрашивает либо Set, либо Vertex, либо GeomSequence.

как вы справляетесь с этим? Сценарии похожи на метод проб и ошибок, так как невозможно заранее узнать, что ожидается. какие-либо предложения?

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

хорошо, теперь я читаю из документации трех команд, использованных выше:

seedPartInstance(...)

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

setMeshControls(...)

region: Последовательность областей Face или Cell, указывающая регионы, для которых устанавливаются параметры управления сеткой.

setElementType(...)

region: Последовательность областей Geometry, объектов MeshElement или объекта Set, содержащего либо области геометрии, либо элементы с указанием областей, которым должны быть назначены типы элементов.

хорошо, я получаю разницу между partInstances и лицами, но все же не очень понятно, почему один из них добавляется (с помощью запятых), а другой добавляется (с помощью +), так как они оба вызывают Sequence и как в этот момент setElementType работает даже при передаче граней объектов в него?

Мне понадобится еще немного времени, чтобы выучить ABAQUS и обдумать его, надеюсь, я смогу по-настоящему понять эти различия.

0 голосов
/ 19 марта 2019

Да, есть «способ заранее узнать, что ожидается» - документы. Они объясняют, какие аргументы разрешены.

А если серьезно - я не вижу несоответствия в вашем примере. На практике повторное использование аргумента regions имеет полный смысл, когда вы рассматриваете контекст, для которого каждая из функций на самом деле делает . Подумайте, как слово «регион» является полезной концептуальной структурой , которую можно адаптировать, чтобы легко позволить пользователю указать необходимую информацию для множества различных задач.

Теперь рассмотрим сложность базовой системы, которую предоставляет Python API, и разнообразие задач, которые разные пользователи хотят контролировать и выполнять с этой базовой системой. Я сомневаюсь, что было бы проще, если бы аргументы были названы примерно как seq_of_geomCells_geomFaces_or_geomSets. Или, что еще хуже, если бы для каждой допустимой модели существовал отдельный аргумент, для которого предназначена функция, - это было бы кошмаром. В этом отношении повторное использование ключевого слова regions в качестве логической концептуальной основы имеет полный смысл.

...