Когда мне необходимо расширить возможности для проведения расчётов в ANSYS Mechanical, я активно использую язык APDL-команд. Иногда мне кажется, что команды оказываются удобны почти для всех задач, которыми я занимаюсь, – конечно, если удаётся быстро найти нужную информацию в справочной системе.
В этом плане мне не очень нравится работать с массивами и таблицами: информация о них разбросана по различным статьям справки, а использовать эти команды приходится не настолько часто, чтобы они прочно отложились в памяти. Вместе с тем, команды для работы с табличными переменными позволяют очень эффективно работать с векторами и матрицами, а также производить обработку большого массива результатов. С помощью таблиц можно прикладывать переменные нагрузки и задавать переменные свойства. Предоставляемые возможности слишком привлекательны, чтобы отказываться от использования этих команд, поэтому я решил подготовить статью, в которой в одном месте будет собрана основная необходимая информация.
Массивы (Array)
Массивы (Array) хорошо подходят для хранения векторов и матриц. Выше на рисунке представлен синтаксис команды *DIM, с помощью которой можно определить массив. В этой команде необходимо указать размерность массива (при использовании специального синтаксиса с помощью команды *DIM можно задать массивы, имеющие до 5 измерений включительно, подробнее это прописано в справочной системе). Массивы можно заполнять вручную, как на рисунке выше, но я их обычно использую на этапе обработки результатов и наполняю массив данными с помощью команд *VGET (если необходимо получить массив и записать его в файл командой *VWRITE) и VGET (эта команда позволяет заполнить массив доступными в постпроцессоре POST26 результатами, меняющимися по времени).
Ниже приведены примеры по заданию вектора и матрицы в APDL:
*dim,ntemp,array,3
ntemp(1) = -5.2, 25, 86.5
*dim,compstrs,array,4,2
compstrs(1,1) = 814, 1057, 1033, 786
compstrs(1,2) = -386, -704, -713, -348
Таблицы (Table)
Знаете ли вы, что вместо указания постоянных величин во многих командах APDL можно использовать таблицы, определяющие зависимости переменных от одной или даже нескольких осей? В качестве таких переменных могут выступать пространственные координаты, время, температура и др. Для реализации этого функционала используются таблицы, которые схожи по реализации с массивами, но, в отличие от них, имеют метки (labels) на строках и столбцах, определяющие тип переменной, а не просто указывающие на номер строки или столбца.
При этом будет автоматически использован встроенный механизм интерполяции. И, точно так же как и для массивов, для таблиц можно использовать до 5 размерностей включительно! Для автоматизированного заполнения таблиц с помощью функций можно использовать циклы *DO.
Параметры команды row_var, col_var и plane_var служат для задания меток для осей. Если вы используете таблицы для задания переменных, на этом этапе следует указать, по какой величине или величинам изменяются эти переменные. Полный список вариантов доступен в документации на команду *DIM. При использовании команд для задания нагрузок или определения свойств модели (таких как D или RMODIF), в справочной системе будет содержаться указание на то, допустимо ли использование табличных переменных с этими командами. Имя табличной переменной в таком случае следует указывать, прописывая знак «%» перед и после имени, как показано в примере на рисунке ниже. При использовании нагрузок, которые зависят от координат, их зачастую удобно задавать в пользовательской системе координат. В таком случае идентификатор этой системы координат указывается в параметре coord_sys_id команды *DIM.
Возможно, вы обратили внимание на отсутствие единиц измерения на приведенных выше рисунках. Я не вводил единицы измерения намеренно, так как команды APDL прописываются в безразмерном виде. При использовании интерфейса Workbench Mechanical крайне рекомендуется вручную задавать используемую систему единиц измерения в настройках расчёта (Analysis Settings -> Analysis Data Management -> Solver Units, заменить настройку Active System на указание системы единиц, использованной в командах APDL). Это позволит избавиться от возможных проблем с единицами измерения и избежать многочисленных ошибок.
Ниже приведен список доступных меток осей для табличных переменных:
НАЗВАНИЕ ОСИ | МЕТКИ ДЛЯ ОСЕЙ VAR1, VAR2, VAR3 |
Время | TIME |
Частота | FREQ |
Координата X | X |
Координата Y | Y |
Координата Z | Z |
Температура | TEMP |
Скорость | VELOCITY |
Давление | PRESSURE |
Геометрический зазор либо величина проникновения | GAP |
Номер сектора в задаче с циклической симметрией | SECTOR |
Амплитуда вектора угловой скорости | OMEGS |
Эксцентриситет | ECCENT |
Сдвиг фазы | THETA |
Источник: ozeninc.com