Перейти к статье

 

Импорт файлов в формате Exodus II

Импорт сетки с помощью файлов в формате Exodus II осуществляется в следующих вариантах:

Этим вариантам соответствуют команды:

import mesh '<exodusII_filename>' [block <block_IDs>] [unique genesis IDs] [shell] no_geom [group_name '<free_mesh_group_name>']] [[time <time> | step <step> | last] [scale <value>]]

import mesh '<exodusII_filename>' [block <block_IDs>] [unique genesis IDs] [shell] [{group | body | volume | surface | curve | vertex} <ID_range> | preview]

import mesh geometry '<exodusII_filename>' [block <ID_range> | ALL] [start_ID <ID>] [use [NODESET | no_nodeset] [SIDESET | no_sideset] [feature_angle <angle>] [LINEAR | gradient | quadratic | spline] [deformed {time <time> | step <step> | last} [scale <value>]] [MERGE | no_merge] [export_facets <1 | 2 | 3>] [merge_nodes <tolerance>]

Они рассматриваются ниже. С импортом сетки связан и ряд других команд:

import free mesh (для случая 2D)

delete mesh preview

export [genesis | mesh] '<filename>'

list import mesh nodeset associativity

list [export mesh] nodeset associativity

[set] import mesh nodeset associativity [ON | off]

[set] [export mesh] nodeset associativity [on | OFF]

transforming mesh coordinates

set import mesh [vertex] [curve] [surface] tolerance <distance>

set import mesh nodeset order [ON | off]

list import mesh nodeset order

Импорт свободной сетки (без геометрии)

Команда импорта свободной сетки c использованием файлов в формате Exodus II имеет вид:

import mesh '<exodusII_filename>' [block <block_IDs>] [unique genesis IDs] [shell] no_geom [group_name '<free_mesh_group_name>']] [[time <time> | step <step> | last] [scale <value>]]

Импортируемая свободная сетка не содержит ни геометрической, ни топологической информации. Свободная сетка может быть подвергнута изменениям, описанным в подразделе Свободные сетки.

При импорте автоматически создается группа "free_elements", содержащая элементы свободной сетки.

С помощью опций time <time> | step <step> | last может быть считана информация о деформациях, полученных в результате конечно-элементного расчета.

Примечание: Команда import mesh [no_geom] отличается от команды import free mesh - последняя применима только к импорту 2D-файлов в формате Exodus. Термин "свободная сетка" в обоих случаях обозначает один и тот же объект: сетку без геометрии. Однако во всех других вариантах команд импорта сетки предусматривается в конечном итоге связь свободной сетки с геометрией. Использование варианта import mesh [no_geom] является единственным способом импортировать свободную сетку, которая остается не связанной ни с каким геометрическим объектом.

Импорт свободной сетки с наложением на существующую геометрию

Для импорта свободной сетки в составе файла в формате Exodus II и наложения ее на существующий геометрический объект применяется команда:

import mesh '<exodusII_filename>' [block <block_IDs>] [unique genesis IDs] [shell] [{group | body | volume | surface | curve | vertex} <ID_range> | preview]

Импортируемая сетка и геометрия должны взаимно соответствовать. Сетка может обрабатываться вручную, например, подвергаться сглаживанию, частичному удалению и другим операциям, связанным с разбиением на элементы. Пользователь может сохранить результаты обработки в рамках сохранения сессии посредством экспорта геометрии и сетки; затем возможно восстановление этих объектов. В некоторых случаях сохранение и восстановление оказывается более быстрым и надежным способом, чем проигрывание журнальных файлов.

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

Импорт сетки с данными о наборах узлов

Возможен импорт сетки с данными о наборах узлов, используемыми для определения конечно-элементных граничных условий. Если экспортируемую сетку предполагается затем снова импортировать и наложить на ту же геометрию, то перед выполнением экспорта в формате Exodus II следует ввести команду:

set export mesh nodeset associativity on

В результате в экспортный файл будут записаны дополнительные данные о наборах узлов, связывающие каждый узел с геометрическим объектом, что обеспечит более надежный импорт. Если пользователь при импорте сетки не хочет использовать присоединенные данные о наборах узлов, то перед выполнением операции импорта нужно ввести команду:

set import mesh nodeset associativity off

Данные о наборах узлов могут не импортироваться для моделей, в которых, например, были внесены изменения, произведенные в геометрическом объекте: созданием составных кривых или изменения названия объекта вследствие использования другой версии геометрического ядра ACIS.

Импорт сетки с наложением на измененную геометрию

В основном требуется, чтобы наложение импортированной сетки производилось на ту же геометрию, что и при экспорте, но возможны исключения.

В представлении ACIS не сохраняется информация о слиянии геометрических объектов, поэтому следует обращать внимание на то, чтобы способ слияния был одинаковым при экспорте и импорте сетки. Если это не так, то импорт сетки желательно выполнять по одному блоку за раз с помощью последовательных команд; затраты памяти и времени при этом возрастают.

Между операциями экспорта и импорта сетки возможно незначительное изменение геометрии в результате создания составных объектов. Успешному импорту сетки может помешать секционирование геометрических объектов или выполнение разрезов. Импорт сетки с наложением на измененную геометрию оказывается более надежным, если новые вершины точно совпадают с узлами сетки, а новые кривые - с наборами ее ребер. Если эти критерии не выполняются, связь сетки с геометрией может быть проблематичной.

Импорт сетки с допустимой погрешностью

Для изменения допустимой погрешности, с которой импортированная сетка должна соответствовать геометрии, используется команда:

set import mesh [vertex] [curve] [surface] tolerance <distance>

Задание части сетки для импортирования

Для определения только части сетки, подлежащей чтению из файла в формате Exodus II, в команде импорта используется параметр block с соответствующим заданием блока элементов. Аналогичное значение имеют параметр volume и другие геометрические опции, обеспечивающие импорт узлов и элементов для выбранного геометрического объекта. Если эти параметры (опции) не заданы, то считывается вся информация о сетке.

Если параметр block указан без задания какого-либо геометрического объекта, то для определения объема, соответствующего импортируемому блоку элементов, используется информация об ассоциативности или близости. Если указаны одновременно и block, и volume, то элементы в составе блока связываются с заданным объемом, обеспечивая построение в нем сетки. Если параметр volume указан без параметра block, то для нахождения блока, соответствующего заданному объему, служит информация об ассоциативности.

Идентификаторы свойств и элементы оболочек

Опция unique genesis IDs используется для сохранения идентификаторов свойств в соответствующем файле на случай обнаружения при импорте перекрытия идентификационных номеров. Такая ситуация может возникнуть при импорте в рамках действующей сессии Fidesys, когда ряд идентификаторов уже назначен.

Опция shell сигнализирует о наличии в импортируемом файле элементов оболочек. Такие элементы не всегда распознаются при импорте автоматически; использование этой опции гарантирует их включение в модель.

Упорядочение наборов узлов

При вводе команды set import mesh nodeset order on наборы узлов читаются таким образом, что ассоциирование их с существующей геометрией производится в порядке возрастания идентификационных номеров. Если такая команда не вводится, то наборы узлов в импортируемом файле считываются в произвольном порядке. По умолчанию устанавливается упорядочение; пользователю не обязательно изменять его.

Импорт сетки с созданием на ее основе геометрии

Используемые в Fidesys средства генерации сетки требуют наличия исходного геометрического объекта. В частности, такие объекты создаются с помощью геометрического ядра ACIS. Иногда геометрическое представление ACIS отсутствует и единственным источником сведений о геометрическом объекте является конечно-элементная сетка. С целью использования всего имеющегося в Fidesys арсенала средств работы с сетками возможно создание геометрии на основе конечно-элементной сетки посредством команды import mesh geometry.

Эта команда создает новый объем для каждого блока, содержащегося в файле Exodus II. Она создает также кривые, поверхности и вершины в определенных местах модели на основе двугранных углов или "углов особенностей" (параметр feature angle) и заданных наборов узлов и/или сторон (опции NODESET и SIDESET). Сетка, использованная для создания нового геометрического объекта, будет принадлежать этому объекту. Это означает, что она может быть удалена, перестроена или сглажена с помощью соответствующих средств Fidesys просто путем указания геометрического объекта. В результате возможно задавать интервалы разбиения для новых кривых, а также определять подходящие схемы построения сеток для поверхностей и объемов.

Команда импорта конечно-элементной сетки с помощью файлов в формате ExodusII и создания на ее основе геометрии имеет вид:

import mesh geometry '<exodusII_filename>' [block <ID_range> | ALL] [start_ID <ID>] [use [NODESET | no_nodeset] [SIDESET | no_sideset] [feature_angle <angle>] [LINEAR | gradient | quadratic | spline] [deformed {time <time> | step <step> | last} [scale <value>]] [MERGE | no_merge] [export_facets <1 | 2 | 3>] [merge_nodes <tolerance>]

Имена файлов

Имя импортируемого файла должно быть указано в единичных кавычках. Файл должен размещаться в текущей директории. Информация о возможности изменить текущую директорию содержится в подразделе Команды управления работой программы. Для просмотра списка всех файлов в текущей директории следует ввести команду ls.

Блоки

Для выбора определенных блоков в импортируемом файле используется параметр block. Если блоки не указаны, то считываются все блоки (значение ALL). В случае задания диапазона блоков (<ID_range>) применяются стандартные правила ввода их идентификаторов, например: 1 to 5 или 1, 5 to 10 except 6.

Каждый отдельный импортируемый блок определяет новое тело в геометрической модели. На Рис. 1 представлен простой пример геометрии, созданной из трехмерной конечно-элементной сетки.

mbg001.gif mbg002.gif

Рис. 1 - Пример создания геометрии (справа) на основе сетки (слева)

Блоки могут состоять из 1D-, 2D- или 3D-элементов. Для блоков из 2D-элементов (QUAD4, SHELL и т.д.) может быть создано плоское тело. Одномерные элементы (BEAM, TRUSS и т.п.) определяют создание кривых. Если блок включает более одного набора несвязанных между собой элементов, то для такого блока создается по одному телу соответственно каждой непрерывной области элементов. Насколько возможно, идентификатор (ID) нового тела будет тем же, что и у блока. Поскольку ID должен быть уникальным, то если у тела он уже есть, автоматически будет присвоен следующий доступный номер.

Начальный идентификатор

Задание других идентификаторов для импортируемых сеточных объектов возможно с помощью опции start_ID <ID>. Введенное значение будет использовано как начальное для нумерации узлов и элементов сетки. Если новые значения ID войдут в конфликт с уже имеющимися, то выполнение команды продолжится, но с новым начальным идентификатором, который разрешит возникший конфликт.

Наборы узлов и сторон

Для использования при создании геометрии информации о наборах узлов и сторон, содержащейся в файле Exodus II, служат опции use NODESET и SIDESET. С помощью понятий nodesets и sidesets определяются граничные условия применительно к узлам, ребрам или граням конечных элементов. Бывает полезно группировать сеточные объекты, относящихся к граничным условиям, в терминах геометрических объектов: это позволяет перестраивать сетку в какой-либо части модели без переопределения граничных условий.

Если в команде указаны рассматриваемые опции, то для каждой уникальной совокупности узлов, ребер или граней, объявленной в качестве набора узлов или сторон, будет создаваться отдельный геометрический объект. По умолчанию используется любая информация о наборах узлов или сторон, содержащаяся в импортируемом файле. Рис. 2 иллюстрирует применение такой информация при создании геометрии.

mbg003.gif mbg004.gif

Рис. 2 - Пример создания геометрии на основе сетки с использованием набора узлов (идентификатор 3 в левой части рисунка) и наборов сторон (идентификаторы 1 и 2 там же)

Идентификаторы геометрических объектов, создаваемых при импорте и соответствующих наборам узлов и сторон, будут такими же, что и идентификаторы этих наборов. В случае конфликта с существующими номерами программа автоматически выбирает следующий доступный ID.

Угол особенности

Для указания угла, при котором поверхность должна быть разделена кривой или кривая - вершиной на две части, используется опция feature_angle <angle>. Рассматривается угол, образуемый нормалями двух соседних элементов. При <angle> = 180 градусов создается отдельная поверхность для каждой грани элемента сетки, а при <angle> = 0 - единая гладкая поверхность, соответствующая внешней поверхности сетки. Значение по умолчанию составляет 135 градусов. На Рис. 3 представлены результаты использования различных значений параметра feature angle. В левой части рисунка показана сетка из двух элементов-гексаэдров. При задании угла особенности больше 120 градусов (например, 130) создается геометрический объект, изображенный в центре. В случае задания значения меньше 120, но больше 90 градусов (например, 100) формируется объект, изображенный справа.

mbg005.gif mbg006.gif mbg007.gif

Рис. 3 - Пример использования различных значений угла особенности: импортированная сетка (слева) и созданная на ее основе геометрия: при feature_angle 130 (в центре) и feature_angle 100 (справа)

Сглаживание кривых и поверхностей

При создании геометрии на основе импортированной сетки кривые и поверхности представляются по умолчанию ее ребрами и гранями. Сглаживание такой линейной аппроксимации возможно за счет перестроения или измельчения сетки на созданной поверхности. Доступны и другие способы аппроксимации при указании в рассматриваемой команде соответствующей опции:

[LINEAR | gradient | quadratic | spline]

В рамках графического интерфейса пользователя можно выбирать опции LINEAR (упомянута выше и действует по умолчанию) или spline (возможно, в частности, использование B-сплайнов 4 порядка [Walton, 1996]. Способы, отвечающие опциям gradient и quadratic, являются экспериментальными и пока не предназначены для широкого применения.

Рис. 4 иллюстрирует эффекты сглаживания кривых и поверхностей некоторыми из этих способов. В верхней его части показана геометрическая модель, созданная на основе импортированной сетки с применением опции LINEAR. Внизу представлены два варианта сглаживания: путем повторного, более мелкого (по сравнению с исходным) разбиения (слева) и использования при импорте опции spline, т.е. более гладкой аппроксимации кривых и поверхностей, и последующего разбиения на элементы такого же размера (справа).

mbg008.gif

mbg009.gif mbg010.gif

Рис. 4 - Геометрическая модель, созданная на основе сетки с применением опции LINEAR (сверху), и эффекты сглаживания кривых и поверхностей: путем повторного, более мелкого разбиения на элементы (внизу слева) и более гладкой аппроксимации за счет использования опции spline (внизу справа)

Учет деформаций

При импорте сетки в формате Exodus II возможен учет содержащихся в импортируемом файле данных о деформациях в зависимости от времени; для этого служит опция

[deformed {time <time> | step <step> | last} [scale <value>]]

При использовании этой опции любые векторные данные в файле Exodus II рассматриваются как деформации, которые должны быть приложены к узлам сетки. Деформации могут соответствовать определенному моменту времени, шагу интегрирования во времени или последнему моменту времени (по умолчанию).

На Рис.  5 приведен пример использования геометрии на основе сетки при анализе больших деформаций [Attaway et. al., 1998]. Расчет процесса деформирования продолжался до тех пор, пока искажения формы элементов не привели к неприемлемому качеству сетки. По достижении этого состояния конечно-элементная сетка была импортирована и на ее основе воссоздана геометрия с наложением рассчитанных деформаций. Затем сетка была удалена, геометрия разбита на элементы снова и записана в файл в формате Exodus II. Все переменные, используемые в расчете, были перенесены на новую сетку [Wellman, 1999] и расчет был продолжен. Такая процедура может повторяться многократно, до получения желаемых результатов.

mbg011.gif

Рис. 5 - Пример перестройки сетки с учетом деформаций

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

При использовании описываемой опции возможно масштабирование деформаций: scale <value>. Оно применяется ко всем деформациям. Значение по умолчанию равно 1.0.

Слияние

Опция MERGE, действующая по умолчанию, обеспечивает слияние прилегающих друг к другу объемов создаваемого геометрического объекта. В результате формируется немногообразная топология, при которой соседние объемы имеют общие поверхности. При использовании опции no_merge прилегающие объемы будут иметь отдельные поверхности.

Слияние узлов с допустимой погрешностью

Опция merge_nodes <tolerance> позволяет задавать различные значения допустимой погрешности (расстояния) для слияния узлов при импорте. По умолчанию используется значение 1e-6.

Примечание: Допустимую погрешность для слияния узлов следует определять с осторожностью. Слишком малое значение будет препятствовать слиянию прилегающих друг к другу узлов. Слишком большое значение может привести к дефектам создаваемой геометрии.

Экспорт граней

Опция export_facets <1 | 2 | 3> предназначалась первоначально для отладки. Она доступна только в командной строке. Эта опция обеспечивает экспорт поверхности сетки как граней (фасет) в виде ASCII-файла. Такой файл может быть импортирован в Fidesys с помощью команды импорта файлов в формате Facet. Вводимые значения: 1 - экспорт только внешних граней в файл "facets.shell"; 2 - экспорт только внутренних граней между блоками элементов в файл "facets.inter"; 3 - экспорт всех граничных фасет в файл "facets.all".