Вы находитесь на странице: 1из 52

Термоупругая задача 299

1
Y _ C 0 0 R D 1 < 1 ,1 )
ANSY5
ОСТ 23 2С06
COL 1 1 7 :5 5 :2 8
COL 2

le n g th crack/ n

Рис. 4.49. Коэффициенты интенсивности


напряжений (МПа-м1/2) в зависимости от длины трещины (м):
COL 1 — метод аппроксимации перемещений поверхности трещины;
COL 2 — выражение (4.8) при е- 0,086

Результаты расчета коэффициента интенсивности напряжений при трех


значениях длины трещины представлены в табл. 4.6. Сопоставление результатов
расчета коэффициента интенсивности напряжений, полученных с использова­
нием программы ANSYS (методом аппроксимации перемещений поверхности
трещины), и по зависимости (4.8) при трех длинах трещины дано в табл. 4.7.
Расхождение результатов расчета становится существенным, при длине трещи­
ны больше 0,4 м. Это можно объяснить ограниченностью методов сопротивле­
ния материалов при описании деформации тела с трещиной.
Графики зависимостей коэффициентов интенсивности напряжений от длины
трещины, рассчитанные численно и аналитически, показаны на рис. 4.49.
Разумеется, численный метод расчета учитывает степень податливости
нагружения в силу постановки задачи. Приведенный «сопроматный» пример
дан не столько для количественной оценки результатов расчета, сколько для
подчеркивания важности обстоятельств нагружения.
Глава 5

Основы языка APDL

APDL (ANSYS Parametric Design Language) — язык параметрического!


программирования ANSYS. Интерпретатор языка APDL полностью интегрщ
рован в ANSYS и может быть использован для автоматизации решения мнопш
задач в программе ANSYS. Например, построения геометрических моделей!
отличающихся друг от друга значениями одного или нескольких параметром
(переменных). Следует заметить, что команды программы ANSYS могут рао|
сматриваться как составная часть языка APDL. Поэтому APDL является осно*|
вой для решения большинства общих и частных задач автоматизированного!
инженерного анализа, например оптимизационных задач или использований
адаптивных сеток. 1
Действия расчетчика можно автоматизировать как на уровне отдельны^
часто повторяемых рутинных операций (прямым вводом в командной строцЙ
или с помощью небольших командных файлов, называемых макросами и яш
ляющихся по сути текстами программ), так и на уровне всего расчета в целоц^
с использованием операторов цикла, ветвления, операций над Массивами, счй|
тывания исходных данных и входных параметров, записи результатов и мани»
пуляций над ними, подключения собственных алгоритмов и т. д. ■ ]
С помощью APDL можно, например, выполнить следующие действия:
' ' , 1

• Задать геометрические размеры, свойства материалов, нагрузки и т. щ


в параметрическом виде, в том числе считать эти данные из файла илй
ввести в диалоговом режиме. '
• Построить модель и произвести расчет.
• Извлечь информацию из базы данных ANSYS, например, координаты уз*:
лов или максимальное напряжение и т. п.
• Произвести математическую обработку данных, используя встроенные;
функции, в том числе векторные и матричные операции.
• Произвести логическую обработку данных, используя ветвление IF -
THEN-ELSE, DO-циклы и т. Д.
• Сохранить модифицированные результаты в базе данных или в текстовых
файлах.
Основы языка APDL 301

Средства языка APDL можно использовать в любой момент работы в лю­


бом процессоре программы ANSYS.
Синтаксически и логически язык APDL напоминает FORTRAN.
В данной главе рассматриваются основы языка APDL, к которым следует
отнести: общие правила обозначения, определения и использования перемен­
ных и массивов; подготовка, создание и использования макросов; операторы
работы с Toolbar и с пользовательским меню; скрытие файлов.
В разделах 5.7 и 5.8 содержится краткое описание команд APDL, а также
обзор GET-функций.

5.1. Быстрое знакомство с APDL


Начать ознакомление с APDL можно с изучения протокольного (журналь­
ного) файла. Это текстовый файл с расширением . lo g , создаваемый в рабочей
папке сессии ANSYS, в который записываются в виде соответствующих команд
все интерактивные действия пользователя. Для того чтобы узнать командный
эквивалент какого-либо действия, надо выполнить его и затем тут же посмот­
реть на последнюю строку протокольного файла, открыв его каким-либо тексто­
вым редактором (например, Notepad) или непосредственно из среды ANSYS:
Utility Menu > List > Flies > Log File
или
Utility Menu > File > List > Log File
Надо заметить, что помимо нужных команд протокольный файл содержит
много «мусора» (ненужных для воспроизведения модели команд, например,
многочисленные команды масштабирования, поворотов изображения ит. д.).
Отфильтровать их частично можно, записав «подчищенную» версию прото­
кольного файла командой LGWRITE:
Utility Menu > File > Write DB Log File
Также полезно изучить тексты небольших верификационных примеров,
приведенных в руководстве ANSYS Verification Manual. Сами эти файлы (име­
нуемые vm* . d a t) находятся в папке \ data\ verif инсталляционной папки
AN SYS, по умолчанию: t

C :\ P ro g ram F ile s \ A n s y s Inc\ v9 0 \ A N S Y S \ data\ verif\

Вместо папки \v90 может быть папка с номером соответствующей вер­


сии, например \vl00 для версии 10.0.

5.2. Работа с Toolbar: добавление кнопок


5.2.1. Добавление команд в Toolbar
Работа с Toolbar (см. [1], стр. 88, Графический интерфейс пользователя —
GUI) имеет целью добавление аббревиатуры, которая связана с пользовательским
302 Глава 5

Рис. 5.1. Размещение аббревиатуры Е-САЕ в поле Toolbar

макросом, в поле ANSYS Toolbar, где она появляется в виде кнопки. Так, на
рис. 5.1 показано поле ANSYS Toolbar, имеющее аббревиатуру Е-САЕ, кото**
рая связана с пользовательским макросом. При нажатии кнопки Е-САЕ вы*
полняется пользовательский макрос.
В поле ANSYS Toolbar можно добавить часто используемые функций
GUI, команды ANSYS или пользовательские макросы. Также можно модифи­
цировать имеющиеся аббревиатуры или их содержание.
Аббревиатура должна содержать не более восьми буквенно-цифровых
символов. Нельзя использовать предопределенные аббревиатуры, например
SAVE DB.
Аббревиатуру можно создать, используя команду ANSYS *ABBR в ко­
мандной строке или
Utility Menu > Macro > Edit Abbreviations
или
Utility Menu > MenuCtrls > Edit Toolbar
Команда *ABBR имеет следующий синтаксис
*ABBR, A b b r, S t r in g
A hbr
имя аббревиатуры (название новой кнопки), которое интегри]
ется в ANSYS Toolbar. Количество знаков в обозначении аббг
виатуры не должно превышать восьми.
S t r in g
текстовый аргумент, являющийся именем команды, фун
или макроса. Строка должна содержать не более шестиде
символов и не должна включать в себя знак $ или любу
следующих команд: С * * * , /СОМ, /GOPR, /NOPR, /Q U IT ,
или *END.
По умолчанию ANSYS Toolbar имеет следующие предопределенные а(|
бревиатуры:

*ABBR, SAVEJDB, SAVE Сохранение модели


*ABBR, RESUM_DB, RESUME Считывание модели
*ABBR, QUIT, Fnc_/EXIT Выход из ANSYS
*ABBR, POWRGRPH, Fnc /GRAPHICS Переключение между
графическими режимами
PowerGraphics и Full Graphics
Основы языка APDL 303

5.2.2. Сохранение аббревиатур команд в Toolbar


Содержание ANSYS Toolbar не сохраняется автоматически после завер­
шения сессии, поэтому для того, чтобы иметь возможность использовать из­
мененный ANSYS Toolbar, необходимо выполнить операцию сохранения.
Операция сохранения может быть выполнена в
Utility Menu > MenuCtrls > Save Toolbar
или в командной строке с использованием команды *ABBSAV.
Восстановление ANSYS Toolbar может быть выполнено в
Utility Menu > MenuCtrls > Restore Toolbar
или в командной строке с использованием команды *ABBRES. Также может
быть использован подготовленный для этой цели макрос.

5.3. Использование параметров


Параметры (переменные), используемые в APDL, похожи на перемен­
ные используемые, например в хорошо известном FORTRANe. При опреде­
лении параметра в программе ANSYS нет необходимости в явном определе­
нии его типа.
Все числовые параметры имеют целый или действительный тип и сохра­
няются с двойной точностью (double-precision). Параметрам, которые исполь­
зуются без предварительного определения их значения, присваивается нулевое
значение. Используемые в APDL параметры могут быть скалярными (scalar)
или массивами (array).
Значения символьных параметров должны иметь длину до восьми сим­
волов и должны быть заключены в одинарные апострофы.
Символьные параметры чаще всего применяются для задания имен фай­
лов, их расширений, названий массивов, заголовков и т. п.
В APDL также используются следующие типы массивов: численные, тек­
стовые, таблицы (специальный численный тип, использование которого пред­
полагает автоматическое выполнение операции интерполяции),
Если численные или текстовые массивы и таблицы используются в ко­
мандном файле или макросе, то их размерность должна быть предварительно
определена, иначе ANSYS будет генерировать сообщение об ошибке.

5.3.1. Правила обозначения параметров


Имена параметров должны удовлетворять следующим требованиям:
• начинаться с буквы;
• содержать только буквы, цифры и символ подчеркивания;
• содержать не более 32 знаков.
Приведем несколько примеров.
304 Глава 5

Правильно:
ABC
PI
X_OR_Y
Неправильно:
MY_PARAMETER_NAME_LONGER_THAN_3 2_CHARACTERS (со­
держит более 32 символов)
2CF3 (начинается с цифры)
М&Е (включает символ &)

При определении имен параметров следует избегать использования имей^


зарезервированных программой ANSYS для других целей, например:
• ключевых слов, используемых для обозначения степеней свободы (TEMP*
UX, PRES И т. д.);
• ключевых слов, используемых в качестве аргументов операторов выбор!
(ALL, PICK, STAT И Т. П .);
• определенных пользователем ключевых слов (например, которые исполМ
зуются в команде *ETABLE);
• ключевых слов, используемых для обозначения типов массивов (таю$|
как CHAR, ARRAY, TABLE и т. д.);
• имен параметров от ARG1 до ARG9 и от AR10 до AR99, которые резерву
руются для обозначения локальных параметров;
• не рекомендуется использование имен наподобие « r e g u la r » .
Кроме этого:
• имена параметров не должны совпадать с именами, определенными Й
помощью команды *ABBR;
• не следует использовать имена переменных, которые начинаются с сиЩ
вола подчеркивания (_). Такие имена резервируются для внутренних пщ
раметров GUI и собственных макросов ANSYS.
Список используемых параметров можно посмотреть с помощью комаад
ды * STATUS.

5.3.2. Определение и уничтожение параметров


Для определения параметра и его значения используется команда *S S f
Следующие примеры иллюстрируют использование этой команды:
*SET,ABC,-24 ! Параметру ABC присваивается значение -24
*SET,QR,2.07Е11 ! Параметру QR присваивается значение
! 2.07Е11
Основы языка APDL 305

*SET,XORY,ABC ! Параметру XORY присваивается значение


! параметра ABC
*SET,CPARM,1CASE1' ! Параметру CPARM присваивается значение
! 'CASE1'

Значением параметра может быть символьная строка, число, предвари­


тельно определенный параметр, параметрическое выражение или математиче­
ская функция.
Более коротким и естественным способом определения параметров явля­
ется использование оператора «=». Используемое в этом случае выражение
имеет вид Name * V alue, вде Name — имя параметра (переменной); Value —
ее численное значение. Те же самые примеры иллюстрируют использование
этого оператора:
ABC— 24
QR*a2 .07Е11
XORY*»ABC
CPARM*'CASEl'

В GUI также предусмотрена возможность определения параметра и его


значения в окне
Utility Menu > Parameters > Scalar Parameters
Примечание. Программа ANSYS позволяет задать до 5000 параметров.
Однако в действительности максимально возможное число параметров не­
сколько меньше 5000, поскольку часть переменных отводится для меню гра­
фического интерфейса и под макросы.
Широкие возможности по определению значений параметров предостав­
ляет команда *GET (Utility Menu > Parameters > Get Scalar Data). В частности,
с помощью этой команды пользователь получает доступ к базе данных, создан­
ной в данном сеансе работы программой ANSYS. База данных содержит ин­
формацию о геометрических примитивах, узлах, элементах, нагрузках и т. д.,
которые были созданы пользователем до момента использования этой команды.
Например, выражение *GET,A,ELEM ,5,CEN T,X присваивает парамет­
ру (переменной) А значение, соответствующее ^-координате центра пятого
элемента.
Команда *GET имеет следующий синтаксис:
*GET, P ar, E n tity , ENTNUM, Ite m l, IT1NUM, Item 2, IT2NUM

P ar
имя параметра, которому присваивается возвращаемое значение.
E n tity
ключевое слово, используемое для определения типа объекта, к
которому относится возвращаемое значение. Такими ключевыми
словами являются NODE, ELEM, КР, L IN E , AREA, VOLU и т. П.
Для изучения полного перечня ключевых слов, используемых в
команде *GET, следует обратиться к ANSYS Commands Reference.
306 Глава 5 i

ENTNUM
порядковый номер или метка опрашиваемого объекта (ноль, если
рассматриваются все объекты).
It e m l
ключевое слово, используемое для конкретизации той характерней
стики выбранного объекта, измеренную величину которой требуегг*|
' ся присвоить определяемому параметру. Например, если E n t i t ^
определено как ELEM, то X te m l может быть определено как NUH&
(наибольший или наименьший порядковый номер элемента в йсй
пользуемой в данный момент времени совокупности элементов^
или COUNT (число элементов в выбранной совокупности).
изучения полного перечня ключевых слов, используемых в команд
де *GET, следует обратиться к ANSYS Commands Reference.
XT1NUM
номер или метка для указанного ключевого слова Itm m l. Нека*
торые из It e m l не требуют ввода IT1NUM.
Ite m 2 ,
IT2NUM
второе ключевое слово и соответствующий номер/метка (еаш
требуются).
Следующие примеры иллюстрируют использование команды *GET.
♦GET,BCD,ELEM,97,ATTR,MAT BCD - номер материала элемента 97
*GET,V37,ELEM,37,VOLU V37 .** объем элемента 37
♦'GET, EL52, ELEM, 52, HGEN. EL52 = значение тепловыделения
в элементе 52
*GET,OPER,ELEM,102,HCOE,2 OPER = коэффициент теплоотдачи
в элементе 102, грань 2
♦GET,TMP,ELEM,16,TBULK,3 ТМР - температура потока, действующего
на элемент 16, грань 3
*GET,NMAX,NODE,,NUM,MAX NMAX = максимальный порядковый номер
в выбранной совокупности узлов
♦GET,HNOD,NODE,12,HGEN HNOD * значение тепловыделения
в узле 12
*GET,COORD,ACTIVE,,CSYS COORD = порядковый номер
активной системы координат

Для ряда запрашиваемых величин существует сокращенная я более;


удобная форма команды *GET — так называемая GET-функция.
Обзор GET-функций приведен в разделе 5.8.
После того как параметры определены, пользователь может их увидеть^
используя команду * STATUS. Если команда * STATUS введена без параметр
ров, то выводится список всех параметр и их текущих значений. Следующий
пример показывает результат выполнения команда * STATUS.
♦'STATUS

PARAMETER STATUS { 5 PARAMETERS DEFINED)


Основы языка APDL 307

NAME VALUE TYPE DIMENSIONS


ABC -24.0000000 SCALAR
HEIGHT 57.0000000 SCALAR
QR 2.070000000E+11 SCALAR
X_OR_Y -24.0000000 SCALAR
CP ARM CASE1 CHARACTER

Пользователь может получить информацию о параметрах и их текущих


значениях в окне Utility Menu > List > Other > Parameters или Utility Menu >
List > Status > Parameters > All Parameters.
Следует заметить, что параметры, начинающиеся со знака подчеркива­
ния (_)> командой * STATUS не выводятся.
Пользователь имеет возможность вывести только необходимые парамет­
ры, используя команду *STATUS с аргументами. Следующий пример показы­
вает результат выполнения команды * STATUS с одним аргументом.

*STATUS,ABC

PARAMETER STATUS- abc ( 5 PARAMETERS DEFINED)

NAME VALUE TYPE DIMENSIONS


ABC -24.0000000 SCALAR

Пользователь может получить информацию об интересующем его пара­


метре и его текущем значении в окне Utility Menu > List > Other > Named
Parameter или Utility Menu > List > Status > Parameters > Named Parameters.
Параметры можно уничтожить двумя способами:
• введением оператора «=» справа от имени параметра без указания значе­
ния. Например, для уничтожения параметра QR необходимо использовать
выражение:

QR=

• введением команды *SET (Utility Menu > Parameters > Scalar Parameters),
но без указания значения параметра. Например, для уничтожения пара­
метра QR достаточно введения следующего выражения:

*SET,QR

Следует заметить, что присвоение параметру нулевого значения не унич­


тожает его. Точно так же присвоение символьному параметру «пустых» одинар­
ных апострофов ( 1 1) или пробелов в одинарных апострофах не удаляет его.

5.3.3. Параметрические выражения


Параметрические выражения включают числа, параметры и операции
над параметрами, такие как сложение, вычитание, умножение и деление. Сле­
дующие примеры это иллюстрируют:
308 Глава 5

Х=А+В
Р = (R2+R1)/2
D=-B+ (Е**2) - (4*А*С) ! Вычисляется D *= -В + Е2 - 4АС
XYZ=(A<B)+Y**2 ! Вычисляется XYZ = А + Y2,
! если А меньше чем В;
! иначе вычисляется XYZ = В + Y2
I N O A 1 + (31.4/9)
М= ((Х2-Х1)**2-(Y2-Y1)**2)/2

В данной таблице содержится перечень всех операторов APDL:

Оператор Действие
+ . Сложение
- Вычитание
★ Умножение
/ Деление
** Возведение в степень
< Меньше чем
> Больше чем

В программе ANSYS используются следующий порядок выполнения one*


раций:
1. Выражения и операторы внутри скобок.
2. Возведение в степень (в порядке справа налево).
3. Умножение и деление (в порядке слева направо).
4. Унитарные операции сложения и вычитания (такие, как +А или -А)
5. Сложение и вычитание (в порядке слева направо).
6. Логическое равенство (в порядке слева направо).
Например, выражение Y 2=A + B **C /D *E будет выполняться в следую­
щем порядке: в первую очередь В * *С , во вторую /D , в третью *Е, затем +А.
Для упорядочивания выполнения операций пользователь может исполь­
зовать скобки. Глубина скобок в выражениях не должна превышать четырех,
Вложенность функций не должна превышать восьми. Допускается использо­
вание в выражениях пробелов, разделяющих параметров, скобок, имен функ­
ций и операций. Символ (*) в начале строки обозначает, что далее следует
команда ANSYS, а символ ( !) — что далее следует комментарий.

5.3.4. Параметрические функции


Параметрическая функция представляют собою математическую опе­
рацию, возвращающую одно значение. Например, S I N ( x ) , SQRT(b) и
LOG (1 3 . 2 ). Следующая таблица содержит полный перечень параметриче­
ских функций программы ANSYS.
Основы языка APDL 309
.....................

ABS(x) Абсолютное значение x.

SIGN(х ,у ) Абсолютное значение x со знаком у.


Если у*0, то результат положителен.

EXP(х) Экспонента х (т. е. ех).

LOG(х) Натуральный логарифм х (т. е. In (х ) ).

LOG1 0 (х) Десятичный логарифм х (т. е. 1одю ( х ) ).

SQRT(x) Корень квадратный х.

NINT(x) Ближайшее целое к х.

MOD(x,у) Остаток от частною х /у . Если у=0, то возвращается 0.

RAND(x,у) Случайное число, имеющее постоянную функцию плотности


вероятности в диапазоне от х до у (х — нижняя граница, у —
верхняя граница).

G D I S ( x ,у) Случайное число, имеющее нормальную функцию плотности


вероятности (распределение Гаусса) (х — среднее значение,
у — стандартное отклонение).

S IN (x ), C O S (x ), Синус, косинус и тангенс х (х по умолчанию задано в радиа­


TAN (x) нах, но единицы измерения угловых величин могут быть из­
менены командой *AFUN).

S IN H (x ), Гиперболический синус, гиперболический косинус и гипербо­


COSH(x), лический тангенс х.
TANH(x)

A S IN (x ), . Обратные тригонометрические функции (для AS IN и ACOS х


ACOS(x), должен находиться в интервале от -1 .0 до +1.0). По умолча­
ATAN(x) нию функция возвращает значение в радианах (единицы изме­
рения угловых величин могут быть изменены командой
*AFUN). Диапазон возвращаемых значений от - я /2 до +я/2
для AS IN и ATAN и от 0 ДО я для ACOS.

ATAN2( у , x) Арктангенс у /х , при этом учитывается знак каждого числа.


По умолчанию функция возвращает значение в радианах (еди­
ницы измерения угловых величин могут быть изменены коман­
дой *AFUN). Диапазон возвращаемых значений от -я до +я.

VALCHR {CPARM) Численное значение текстовой переменной CPARM (если


CPARM содержит не числовые символы, то возвращает 0.0).

CHRVAL (PARM) Текстовое значение числового параметра PARM.

UPCASE ( CPARM) Возвращает строку CPARMyзаписанную заглавными буквами

LWCASE ( CPARM) Возвращает строку CPARMy записанную строчными буквами


310 Глава 5

Далее представлены примеры использования параметрических функций!


PI=ACOS(-1) PI = арккосинус -1, таким образом
PI вычисляется с точностью,
определяемой только возможностями машины
Z3=COS <2*ТНЕТА)-Zl**2
R2=SQRT(ABS(Rl-3))
X=RAND(-2 4,R2 ) X - случайное число между -2-4 и R2
♦AFUN,DEG Единицами измерения угловых величин
являются градусы
THETA=ATAN(SQRT (3)) ТНЕТА равняется 60 градусам
PHI=ATAN2 (-SQRT(3) ,-1) PHI равняется -120 градусам
♦AFUN,RAD Единицами измерения угловых величин
являются радианы
X249=NX(249) X-координата узла 249
SLOPE=(KY(2)- K Y (1))/ <KX (2)- К Х (1))
Наклон линии, проходящей
через точки 1 и 2
CHNUM=CHRVAL(X) CHNUM = текстовое значение X
UPPER=UPCASE(LABEL) UPPER = записанное заглавными буквами
значение параметра LABEL

Для того, чтобы использовать текущие значения параметров в


сессии работы, пользователь должен сначала сохранить значения параметров в
файле, а затем прочитать их (уже в новой сессии работы).
Для сохранения параметров в файле используется команда * PARSAV
(Utility Menu > Parameters > Save Parameters).
Записываемый при сохранении параметров файл является обычным
ASCII-файлом, который содержит определения сохраняемых параметров с
помощью рассмотренной выше команды *SET. Следующий пример показывай
ет формат этого файла.
/NOPR
*SET,А 10.00000000000
♦SET,В 254.3948750000
♦SET,С 1string 1
♦SET,_RETURN O.OOOOOOOOOOOOOE+OO
♦SET,_STATUS 1.000000000000
♦SET,_ZX
/GO

Для чтения файла параметров используется команда *PARRES (Utility


Menu > Parameters > Restore Parameters).
Пользователь также может записать до десяти значений параметров в
файле, используя форматы FORTRANa. Значения параметров могут быть так­
же записаны в выходной файл (output file) для использования другими про­
граммами или для других целей. Это делается командой *VWRITE (Utility
Menu > Parameters > Array Parameters > Write to File).

5.3.5. Массивы параметров


В дополнении к скалярным параметрам пользователь может использовать
массивы параметров. В программе ANSYS массивы могут быть от одномер­
ных до пятимерных:
Основы языка APDL 311

• 1-D (один столбец):


• 2-D (строки и столбцы);
• 3-D (строки, столбцы и плоскости);
• 4-D (строки, столбцы, плоскости и «книги»);
• 5-D (строки, столбцы, плоскости, «книги» и «полки»).
ANSYS поддерживает следующие типы массивов:
ARRAY
Этот тип аналогичен используемым в FORTRAN 77 массивам и
принят по умолчанию. Как и в FORTRANe, положение парамет­
ра в массиве определятся номером строки, столбца, плоскости,
«книги» и «полки». Нумерация строк, столбцов, плоскостей,
«книг» и «полок» начинается с единицы. Массив может содер­
жать целые и действительные числа.
CHAR
Это тип является текстовым. Каждый элемент этого массива
должен быть строкой буквенно-цифровых символов, каждая из
которых должна иметь длину, не превышающую восемь знаков.
Индексация в массиве осуществляется по номерам столбца, ко­
лонки и плоскости Нумерация столбцов, колонок и плоскостей
начинается с единицы.
TABLE
Этот тип является специальным типом числовых массивов, отли­
чием которых является автоматическое выполнение процедуры
линейной интерполяции между элементами массива. Это означа­
ет, что при индексации пользователь может использовать дейст­
вительные (а не только целочисленные) индексы, т. е. номера
строки, столбца, плоскости, «книги» и «полки». При определе­
нии возвращаемого значения будет использована процедура ли­
нейной интерполяция. Для определения этого типа используется
ключевое слово TABLE. Массивы этого типа могут быть исполь­
зованы для описания различных математических функций.
STRING 4

Этот тип используется для определения массивов, элементами


которого являются строковые переменные. Нумерация столбцов
и плоскостей массива начинается с единицы. Номер строки оп­
ределяет положение символа в строковой переменной.
Ограничимся рассмотрением двумерного массива типа ARRAY или CHAR.
Графическое представление такого массива показано на рис. 5.2. Массив имеет
т строк и п столбцов; т. е. он имеет размерность т * п. Каждая строка может
быть идентифицирована номером (индексом) /, который лежит в диапазоне от 1
до /и, и каждый столбец может быть идентифицирован номером (индексом)у,
который лежйт в диапазоне от 1 до л. Совокупность всех пронумерованных
таким образом параметров образует массив. Каждый элемент массива может
312 Глава 5

Column index number*


1 2 3 4 5 . П
■и # н и м > ttt a iifH f т м и * * W M M M >** ~ Array element (3,5)
2 Ж И

Row 3
index
number»

Рис, 5.2. Графическое представление двумерного массива

быть идентифицирован по паре чисел (ij), где / — номер его строки; j — но*
мер его столбца.
Порядок определения положения элемента в трехмерных, четырехмер-
ных и пятимерных массивах, которые используются в APDL, аналогичен рас­
смотренному выше.

5.3.6. Операции над массивами параметров


Так как параметрические выражения и параметрические функции пред­
назначены для работы только с параметрами, то для работы с массивами в
APDL используются специальные операторы. Эти операторы можно условна
разделить на векторные операторы; которые позволяют выполнять операции с
массивами, имеющими один столбец (т. е. векторами), и матричные операто­
ры, которые позволяют выполнять операции над массивами, имеющими не«
сколько столбцов (т. е. матрицами).

Векторные операторы
К числу векторных операторов относятся простейшие операторы сложен
ния, вычитания, синуса, косинуса, скалярного произведения, векторного про­
изведения и т. д. Эти операторы последовательно выполняют определенны®
действия над всеми элементам вектора и вполне могут быть выполнены с по­
мощью оператора цикла DO-loops, который рассматривается ниже. Однако,
использование векторных операторов *VOPER, *VFUN, *VSCFUN, *VITRS,
*V FILL, *VREAD и *VGET позволяет выполнить эти операции быстрее. Из ' 1

перечисленных операторов векторных операторы *VREAD и *VWRITE могу* i

быть применены и к текстовым векторам, а остальные — только к численны**


векторам, тип которых был определен с помощью команды размерности
(★DIM) как ARRAY или TABLE.
Рассмотрим подробнее основные векторные операторы.
Основы языка APDL 313

*VOPER или
Utility Menu > Parameters > Array Operations > Vector Operations
Выполняет операцию над двумя входными векторами и возвра­
щает один выходной вектор.
♦VFUN или
Utility Menu > Parameters > Array Operations > Vector Functions
Вычисляет заданную функцию от каждого элемента входного
вектора и помещает вычисленные значения в выходной вектор.
♦VSCFON или
Utility Menu > Parameters > Array Operations > Vector-Scalar Func
Вычисляет характеристику входного вектора и возвращает эту
характеристику как скалярный параметр.
*VITRP или
Utility Menu > Parameters > Array Operations > Vectorlnterpolate
Формирует массив параметров (тип ARRAY) интерполированием
массива параметров (тип TABLE). Интерполирование осуществ­
ляется по заданному индексу.
Приведенные ниже примеры показывают возможности использования
векторных операторов. Более подробное их описание содержится в ANSYS
Commands Reference.
Во всех приведенных ниже примерах используются массивы парамет­
ров (тип ARRAY) X» Y и THE ТА, имеющие значения и размерности, показан­
ные ниже.
-2 6 6 0 ‘ '3 2 5 -ет
-5 -7 1 0
х» 1 0 2 12 Y•
4 -3 -1 7 8 0 0 11
-8 1 10 -5
» 4
1 4. 9 18
» m

О
15
30
ТНЕТА 45
60
76
90

В следующем примере результатом выполнения операции над двумя масси­


вами является массив Z1, который имеет размерность, равную единице, т. е. это
массив является вектором. В этом примере оператор *VOPER суммирует эле­
менты второго столбца массива X с элементами первого столбца массива Y.
Суммирование элементов начинается с первой строки. Результат выполнения
314 Глава 5
к
•I

операции помещается в массив Z1, который является первым аргументом опе­


ратора *VOPER. Заметим, что положение первого элемента (номер строки я
столбца) должно быть определено для каждого массива, являющегося аргумен­
том оператора *VOPER. Положение остальных используемых оператором эле­
ментов массивов будут соответствовать увеличению их индексов на единицу.
*DIM,Z1, ARRAY, 4
♦VOPER,Z1(1),X(1,2),A D D , Y (1,1)

9
-5
Z1-
5

В следующем примере результатом выполнения операции является мас­


сив Z2, который имеет размерность, равную единице, т. е. это массив таюк»
является вектором. В этом примере оператор *VOPER умножает элементы!
первого столбца массива X (начиная со второй строки) на элементы четвертой*
столбца массива Y (начиная с первой строки). Результат записывается в массив Z2
(начиная с первой строки).
♦DIM, Z2, ARRAY, 3
*VOPER,Z2(1),X (2,1),MULT,Y(1,4)

-6
Z2~ 0
•66

В следующем примере результатом операции является массив Z 4. Опера­


тор *VOPER выполняет векторное произведение четырех пар векторов, по
одной паре для каждой строки массивов X и Y. Индексы элементов этих век­
торов: столбцы 1, 2 и 3 для массива X, столбцы 2, 3 и 4 для массива Y. Резуль­
тат выполнения операции помещен в массив Z 4.
♦DIM,Z4,ARRAY,4,3
♦VOPER,Z4(1,1),X(1,1),CROSS,Y(l,2)

-76 4 22
*2 *14 1
Z4“
-33 -44 0
-74 168 76

В следующем примере результатом операции является массив АЗ, кото­


рый имеет размерность, равную единице. Оператор *VFUN возводит каждый
элемент второго столбца массива X в степень 2 и записывает результат вычис­
ления в массив АЗ.
Основы языка APDL 315

*DIM,АЗ,ARRAY,4
*VFUN,A3(1),PWR,X(1,2),2

36
0
A3 =
9
1

В следующем примере результатом операции является массив А4. Два опе­


ратора *VFON используются для вычисления синусов и косинусов углов, запи­
санных в элементы массива THEТА. Результаты вычисления синусов и косину­
сов помещаются в первый и второй столбцы массива А4 соответственно. По­
следняя команда этого примера определяет значения третьего столбца массива
А4, которые приравнены 2.0. Таким образом, массив А4 содержит координаты
семи точек, равномерно расположенных вдоль четверти окружности, которая
имеет радиус, равный единице, и лежащей на расстоянии 2.0 от плоскости XOY.
*DIM,A4, ARRAY, 7,3
*AFUN,DEG
*VFUN,A4(1,I),COS,THETA(l)
*VFUN,A4(1,2),SIN,THETA(1)
A 4 (1, 3)=2 r2,2,2,2,2,2

■1.0 0.0 2.0"


0.966 0.259 2.0
0.666 0.5 2,0
A4 * 0.707 0.707 2.0
0,5 0.666 2,0
0.259 0.966 2.0
0.0 1.0 2,0

В следующем примере результатом операции является массив А5. В вы­


полняемой операции используется массив А4, элементы которого были опре­
делены в предыдущем примере. В этом примере оператор *VFUN вычисляет
тангенциальный вектор в каждой точке кривой, нормализует этот вектор и
помещает результат в массив А5.
*DIM,A5, ARRAY, 7,3
*VFUN,A5(1,1),TANG,A4(1,1)

-0.131 0.991 0*
-0.259 0.965 0
0.666 0
-i
о

A5 * -0.707 0.707 0
>0.866 0.5 0
-0966 0.259 0
-0.991 0.131 0
316 Глава 5

Оператор *VOPER имеет две дополнительные опции (GATtf) и (вСАЩ


предназначенные для манипулирования значениями векторов. Следующи!
пример демонстрирует использование оператора *VOPER с опцией GATH д а
формирования одномерного массива ВЗ, который имеет элементы массива ВЩ
порядок размещения которых определен массивом В2.
♦DIM,В1,,4
*d i m ,b 2,,3
*DIM,B3,,4
В1 (1)=10,20,30,40
В 2 (1)=2,4,1
♦VOPER,В З (1),В1<1),GATH,В 2 (1)

*2 0 '

63=
м 40
10
о

Матричные операторы
К числу матричных относятся математические операторы, выполняющий
сложение, умножение, транспонирование, обращение (решение систем линей­
ных алгебраических уравнений) и другие операции над матрицами.
Рассмотрим подробнее основные матричные операторы.
♦MOPER или
Utility Menu > Parameters > Array Operations > Matrix Operations
Выполняет операцию над двумя входными матрицами и возв]
щает одну выходную матрицу. Это матричный оператор може^
выполнять девять операций, основными из которых являются:
• вычисление произведения матриц;
• решение систем линейных алгебраических уравнений;
• сортировка элементов матрицы;
• вычисление ковариации между двумя векторами;
• вычисление коэффициента корреляции между двумя векторами.
*MFUN или
Utility Menu > Parameters > Array Operations > Matrix Functions
Выполняет копирование или транспонирование матриц.
*MFOURI или
Utility Menu > Parameters > Array Operations > Matrix Fourier
Вычисляет коэффициенты разложения в ряд Фурье.

Следующие примеры иллюстрируют использование некоторых матриц?


ных операторов. Более подробная информация о синтаксисе этих команд сщ
держится в ANSYS Commands Reference.
Основы языка APDL \
317

Следующий пример демонстрирует возможности оператора *MOPER по


сортировке массивов. Для примера рассмотрим массив SORT DATA, имеющий
значения и размерность, которые показаны ниже:

3 10 1Г
5 *4 12
SORTOATA * 8 -9 13
2 7 14
6 1 15

Для выполнения операции сортировки элементов массива SORT DATA оп­


ределим одномерный массив OLDORDER для хранения оригинального порядка
расположения элементов в массиве. В рассматриваемом примере оператор
*MOPER расположит элементы первого столбца массива SORT DATA в порядке
их возрастания. Результат выполнения операции будет сохранен в том же мас­
сиве. Порядок размещения элементов до выполнения операции сортировки
будет сохранен в массиве OLDORDER. Заметим, что оператором *MOPER вы­
полнена сортировка только первого столбца массива.
*DIM,oldorder,,5
*MOPER,oldorder(1),sortdata(1,1),SORT,sortdata(1,1)

Ниже представлены массивы, полученные в результате выполнения опе­


рации сортировки с помощью оператора *MOPER:

2 7 14 4*
3 10 11 1
5 -4 12 OLDORDER = 2
а 1 15 5
8 -9 13
щ й
3 *■ л

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


в массиве SORTDATA, следует выполнить команду:
*MOPER, oldorder (1), sortdata (1,1), SORT, oldorder (1,1)

В следующем примере оператор *MOPER используется для решения сис­


темы линейных алгебраических уравнений. Представленные ниже массивы
являются матрицей коэффициентов системы линейных алгебраических урав­
нений и вектором свободных членов:

2 4 3 2 2
3 6 5 2 2
8=
2 5 2 3
*
4 5 14 14
А
11 к 4
318 Глава 5

Оператор *MOPER позволяет решить систему линейных алгебраических


уравнений следующего вида с квадратной матрицей коэффициентов
aniXi +3^2X 2+>... »+ ЗипХпЪп
В условиях рассматриваемого примера, оператор *MOPER используется
для решения следующей системы линейных алгебраических уравнений:
2X1 +4X2+ 3X3+ 2X4 = 2
3X1+6X2+ 5X3+ 2X4 = 2
2 XI + 5 Х2 + 2 ХЗ - 3 Х4 = 3
4X1 +5X2+ 14X3+ 14X4= И
Г
• V ч

Аргументами оператора *MOPER являются матрица коэффициентов сис­


темы линейных алгебраических уравнений (А) и вектор свободных членов (В),
а также вектор неизвестных (С), который определяется в процессе решения.
♦DIM,С, ,4
♦MOPER,С (1), А (1,1) ,SOLV,В (1)

В рассматриваемом примере результатом выполнения оператора *MOPER


является вектор С, который имеет следующие элементы

т60
26
с=
6

Следующий пример показывает использование оператора *MFUN для


транспонирования массива переменных. В этом примере используется массив
DATA, имеющий элементы и размерность, показанные ниже:

34 251
DATA 22 68
*7 12

Результат выполнения оператора *MFUN помещается в массив


DATATRAN, который является первым аргументом этого оператора.
♦DIM, DATATRAN, ,2,3
♦MFUN,DATATRAN(1,1),TRAN,DATA(1,1)

Ниже приведены значения элементов массива DATATRAN, полученные в


результате выполнения операции транспонирования:

34 22 -
DATATRAN =
25 68 1
Основы языка APDL 319
vswrec»
МШМЙ

Рис* 53. График массива ARRAYVAL

ANSYSI

СОС 1

>■

cm, 2

ROW

Рис. 5.4. График массива TABLEVAL


320 Глава 5

AN SYS

t a b ! • 2C 1)

Рис. 5.5. Комбинированный график массивов TABLE 2 и TABLEVAL

A N SY S

tobl»v al( 1 / О)

Рис. 5.6. График массива TABLEVAL


Основыязыка APDL 321
---- - - - — ------- -------- • • - .............................................................- - - ............................ * ................................. • ........ — ■ ■■ ■

5.3.7. Графическое изображение массивов и векторов


Пользователь может представил» вектор параметров в графическом виде,
используя команду *VPLOT. Следующие далее примеры демонстрируют эти
возможности команды *VPLOT. Будем считать, что определены два массива
(TABLEVEL и TABLE2), имеющие тип TABLE и массив ARRAYVAL, имеющий
тип ARRAY.
0 3 9 0 40
4 6 1* 19 W
7 8 6 TABLE2 «88 80
1S 10 3 99 96

в 12
ARRAYVAL 8 в
10 3

Отобразить на экране график массива ARRAYVAL можно с помощью ко­


манды
*VPLOT,,arrayval(1,1),2

Результат выполнения этой операции показан на рис. 5.3.


На данном графике по оси абсцисс отложен номер строки, по оси орди­
нат — значения, стоящие в той же строке в первом и втором столбце массива
ARRAYVAL.
Отобразить на экране график массива TABLEVAL можно с помощью ко­
манды (рис. 5.4)
*VPLOT, , tableval(1,1) f 2

На данном графике по оси абсцисс отложен номер строки, по оси орди­


нат — значения, стоящие в той же строке в первом и втором столбце массива
TABLEVAL. Заметим, что при построении графика выполнена операция ин­
терполирования.
Отобразить на экране комбинированный график массивов TABLE2 и
TABLEVAL можно с помощью команды (рис. 5.5)
*VPLOT,table2(1),tableval<1,1),2

На данном графике по оси абсцисс отложены значения первого столбца


массива TABLE 2, по оси ординат — значения массива TABLEVAL, стоящие в
первом и втором столбце.
Отобразить на экране график массива TABLEVAL с его «нулевым» столб­
цом, отложенным по оси абсцисс, можно с помощью команды (рис. 5.6)
♦VPLOT,tableval(1,0),tableval(1,1>,2

Когда используется команда *VFLOT, то изображенные на графике кривые


обозначаются метками, содержание которых задано по умолчанию. Обычно
322 Глава 5
*4

первая кривая обозначается меткой «COL 1», вторая — «COL 2» и т. д. Дш<;


изменения меток пользователь может использовать команду / GCOLUMN. Вто-!
____ I

рым аргументом в этой команде должна быть строка, которая будет использф*
вания в качестве метки соответствующей кривой (длина метки не превышаем
восьми символов).
Далее приведен пример использования команды / GCOLUMN (в сокра*
щенном виде /g c o l), в котором первая кривая имеет метку « s t r i n g O l » ,
вторая — « s t r i n g 0 2 » .
/gcol,1,stringOl
/gcol,2,string02

*dim,xxx,array, 10
*dim,yyy,array,10,2

XXX 1,1) =1е6


XXX 2,1) = 1е6 + 1е5
XXX 3,1) = 1еб + 2е5
XXX 4,1) — 1е6 + Зе5
XXX 5,1) 1= 1еб + 4е5
XXX 6,1) = 1е6 + 5е5
XXX 7,1) — 1е6 + 6е5
XXX 8,1) = 1еб + 7е5
XXX 9,1) 1е6 + 8е5
XXX 10,1) — 1еб + 9е5

УУУ 1,1) =5 1
УУУ 2,1) 4
УУУ 3,1) = 9
УУУ 4,1) = 16
УУУ 5,1) = 25
УУУ 6,1) 36
— ,49
УУУ 7,1)
УУУ 8,1)
=
64
УУУ 9,1) 81
УУУ 10,1) 100

УУУ 1,2) 1
УУУ 2,2) —2
УУУ 3,2) SC 3
УУУ 4,2) =г 4
УУУ 5,2) = 5 -
УУУ 6,2) = 6
УУУ 7,2) = 7
УУУ 8,2) 8
УУУ 9,2) 9
УУУ 10,2) = 10

*vplo,xxx(1,1), y y y (1,1) /2

Результат выполнения этого примера показан на рис. 5.7.


Метки, задаваемые по умолчанию (COL 1 и COL 2), можно вернуть, вве­
дя команду /GCOLUMN без аргументов.
/gcol,l
/дсо1,2
Основы языка APDL 323
___________________ . i

ANSYS!

stringOl

V ALU E

a trin g 0 2

(xlOM 3)

$00 1100 1900 isoo 1700 1300 2100


xxx(1,1)

Рис. 5.7. График с определенными пользователем метками кривых

5.3.8. Сохранение массивов параметров


Сохранить массив параметров в файле можно с использованием команды
*VWRITE. Эта команда позволяет сохранить в форматированном виде до де­
сяти векторов. Сохраняемые вектора должны быть определены как аргументы
команды *VWRITE. При определении формата записи используются обозначе­
ния форматов, принятые в языке FORTRAN 77. Перед выполнением команды
♦VWRITE с помощью команды *CFOPEN должен быть открыт файл, в кото­
рый будет осуществляться запись.
Сохраняемый командой *VWRITE вектор определяется путем задания
положения его первого элемента (например, МУARRAY ( 1 , 2 , 1 ) — сохраняет­
ся второй столбец, первой плоскости). При использовании команды *VWRITE
допускается в качестве аргументов команды указывать константы, параметры
и параметрические выражения. Ключевое слово SEQU, являющееся первым
аргументом команды *VWRITE, означает, что порядковый номер элемента
сохраняемого вектора будет увеличиваться на единицу.
Следующий пример иллюстрирует применение команды *VWRITE для
указанной цели.
Пусть задан массив MYDATA, имеющий следующие размер и значения:

2.15215183 3.89075020 5.28636971 7.15706483 13.7859423 87.4970443


2.30485343 4,44486730 5.40919563 7.68192625 15.5483820 86,5677915
2.01051819 3.39152436 5.93663807 7.38584253 18.4635868 45.7263566
MYDATA «*
2.36833012 3.32711472 5.63220341 7.22482004 18.7977889 39.7902425
2.84819512 4.76350638 5.97802354 7.29258882 14.8096356 62.0843906
2.22795343 3.48214546 5.54685145 7.90325139 14.0708891 37.6009897
324 Глава 5

В приведенном ниже фрагменте макроса сначала определяется значение


параметра X (значение равно 25), затем открывается файл для сохранения па?
раметров (используется команда *CFOPEN). Далее следует команда *VWRITB,
с помощью которой определяются данные, которые будут сохранены в файле.
Первым аргументом команды *VWRITE является ключевое слово SEQU, кото­
рое означает; что порядковый номер элементов сохраняемых векторов будет?
увеличиваться на единицу. Для указанных в списке аргументов скалярных;
параметров и констант сохраняться будут их значения.

х~25
*cfopen,vector
*vwrite,SEQU,mydatad, 1,1), mydata(1,2,1) ,mydata(1,3,1) ,10.2, x,mydata(1,1,1) +3
(F3 .0, 1 1,F8 .4, ' ',F8 .i, ' 'F8.6,' ,,F4.1,' 'F4.0,' fF8.1)
*cfclos

Макросом будет создан следующий файл :


1. 2.1522 3.9 5.286370 10.2 25. 5.2
2. 2.3049 4.0 5.409196 10.2 25. 5.2
3. 2.0105 3.4 5.936638 10.2 25. 5.2
4. 2.3683 3.3 5.632203 10.2 ' 25. 5.2
5. 2.8491 4.8 5.978024 10.2 25. 5.2
6. 2.2280 3.5 5.546851 10.2 25. 5.2

5.4. Использование APDL для создания макросов


I

Пользователь может записать часто используемую последовательность ко­


манд ANSYS в файл макроса (это файл также называется командным файлом).
Этот макрос будет являться аналогом команды ANSYS, но созданной пользова­
телем. Например, вычисление мощности вихревых токов при проведении расче­
та магнитного поля требует выполнения в постпроцессоре нескольких команд.
Запись этих команд в макрос даст возможность выполнить их, обратившись к
одной новой команде. Этот макрос может быть вызван из GUI. Передача тре­
буемых для расчета значений параметров в макрос осуществляется с помощью
аргументов макроса.
При работе в ANSYS может быть использовано некоторое множество мак­
росов, в которых один макрос вызывает другой. Допускается использование до
20 уровней вложения макросов. После выполнения макроса на более высоком
уровне вложенности, управление будет передаваться на предыдущий уровень.
Далее приводится пример простого макроса. В результате выполнения
команд, содержащихся в этом макросе, сначала строятся параллелепипед с
размерами 4 * 3 * 2 и сфера с радиусом, равном 1, а затем из параллелепипеда
вычитается сфера (осуществляется операция логического вычитания).
/ргер7
/view,,-1,-2,-3
block,,4,,3,,2
sphere,1
vsbv,l,2
finish
Основы языка APDL 325

Если записать эту последовательность команд в файл с именем


mymacro.mac, то затем команды можно воспроизвести, выполнив одну ко­
манду:
*use,mymacro
или
rnymacro

5.4.1. Создание макросов


, , i

Пользователь может создать макрос непосредственно в программе ANSYS


или подготовить его в любом текстовом редакторе (например, в Notepad,
emacs или vi). Если макрос не очень сложен, то самым удобным способом
является его создание непосредственно в ANSYS. Если макрос сложен, то
лучшим способом является его создание в текстовом редакторе. Процесс
создания макроса в текстовом редакторе может быть существенно облег­
чен, если в качестве основы создаваемого макроса используется созданный
ANSYS lo g -файл.
При разработке больших по объему и сложных макросов может быть ис­
пользован пошаговый метод разработки макроса. Этот метод предполагает на
каждом шаге разработки макроса переход от более простого макроса к более
сложному. Это значит, что на каждом шаге разработки выполняется одна ко­
манда в интерактивном режиме работы ANSYS. Соответствующая выполнен­
ной в GUI команде строчка появляется в lo g -файле, который автоматически
создается программой ANSYS. Эта строчка содержит саму выполненную ко­
манду и значения ее аргументов. Она может быть скопирована в командный
файл (файл макроса) и новый файл может быть использован как исходный
файл на следующем шаге разработки макроса.
Макросом является последовательность команд, записанная в файл. Файл,
в котором сохранена эта последовательность команд, должен иметь имя, ис­
пользуемое в дальнейшем для обращения к этому макросу. Первые четыре
знака в имени макроса не должны совпадать с первыми четырьмя знаками
команд ANSYS, так как в этом случае будет происходить обращение к коман­
де, а не к макросу. При выборе имени макроса необходимо выполнить сле­
дующие требования:
*

• длина имени макроса не должна превышать 32 знака;


• имя макроса не может начинаться с цифры;
• расширение файла макроса не может превышать восьми знаков <но умил-
чанию макросы в ANSYS имеют расширение . шас);
• имя и расширение файла макроса не могут содержать пробелы;
• имя и расширение файла макроса не могут содержать символы, зарезер­
вированные операционной системой для служебных целей;
• имена файлов не могут совпадать с именами команд.
Создать макрос в ANSYS можно четырьмя способами:
326 Глава 5

• используя команду *CREATE в командной строке ANSYS. При создании


макроса таким способом, параметры, параметрические выражения и коман­
ды APDL будут сохранены в файле макроса, а значения параметров — нет;
• *.

• используя команды *CFOPEN, *CFWRITE и *CFCLOS. При созданий


файла макроса с помощью этих команд, в файле макроса будут сохране­
ны имена параметров и их текущие значения;
• используя команду /ТЕЕ в командной строке ANSYS. В результате выпол­
нения этой команды параметры, параметрические выражения и команды
APDL будут сохранены в файле макроса, а значения параметров — нет;
• используя Utility Menu > Macro > Create Macro. В этом случае открыва­
ется диалоговое окно, которое можно использовать как многооконный
редактор. В результате выполнения этой команды параметры, параметри­
ческие выражения и команды APDL будут сохранены в файле макроса, а
значения параметров — нет.
Отдельные макросы могут быть объединены в библиотеки, которые на­
зываются библиотеками макросов. Библиотека макросов может быть создана в
ANSYS командой * CREATE или в любом текстовом редакторе.
Файл, содержащий библиотеку макросов, не имеет явно определенного
расширения. Этот файл имеет следующую структуру:
MACRONAME1

/EOF
MACRONAME2

/EOF
MACRONAME3

,/EOF

Следующий пример демонстрирует процедуру создания библиотеки мак­


росов, которая содержит два макроса:
mybloc
/ргер7
/view,,-1, -2, -3
block,,4,,3,,2
finish
/EOF
mysphere
/ргер7
/view,,-1,-2,-3
sphere,1
finish
/EOF
Основы языка APDL 327

Заметим, что каждый м акрос в библиотеке макросов начинается с имени


макроса и заканчивается командой /E O F .

5.4.2. Использование макросов


Для выполнения м акроса используется команда *USE. Например, для то­
го чтобы выполнить макрос MYMACRO (без расширения), размещенного в ра­
бочей директории, необходимо выполнить команду

*use,mymacro

В данном случае для выполнения макроса не требуется определения ар­


гументов. Если макрос помещен в файл MYMACRO. MACRO, который находится
в директории /т у а с c o u n t / m a c r o s , необходимо выполнить команду

*use,/myaccount/macros/mymacro.macro

Заметим, что команда *USE, кроме имени и расширения файла, директо­


рии, в которой находится макрос, позволяет определить и аргументы, необхо­
димые для выполнения макроса.
Если файл м акроса имеет расширение .m ac и находится в рабочей ди­
ректории, пользователь может выполнить макрос, просто набрав в командной
строке его имя (без расширения .mac). Например, для выполнения макроса
m y m a c r o . mac достаточно выполнить команду

mymacro

Выполнить макрос, файл которого имеет расширение .mac, также мож­


но, используя диалоговое окно Utility Menu > Macro > Execute Macro.
Если для выполнения м акроса требуются определение аргументов, то их
можно задать в той же строке. Например,

mymacro, 4, 3,2,1. 5

или
S

*use,mymacro.mac,4,3,2,1.5

В самом же макросе должны присутствовать локальные переменные с


именами ARG1, , ARG9 и AR10, ... , AR19 (заметим, что в теле макроса пе­
ременных может быть и больше, вплоть до AR99; но переменные в диапазоне
AR20 ... AR99 не могут быть переданы в макрос посредством командного вы­
зова и используются только внутри макроса). При вызове макроса локальным
переменным присваиваются числовые или символьные значения, взятые из со­
ответствующего поля при вызове макроса. Первое поле после имени макроса
предназначено для аргумента ARG1, второе — для аргумента ARG2 и т. д.
В приведенном выше примере ARG1=4, ARG2=3, ARG3=2, ARG4=1. 5.
328 Глава 5

Диалоговое окно Utility Menu > Macro > Execute Macro также може$
быть использовано для передачи аргументов в макрос.
Для выполнения макроса, который находится в библиотеке макросов, нЩ
обходимо использовать команду *ULIB. Например, для выполнения макрос!
который находится в файле библиотеки макросов m ym acros.m lib, который
размещен в директории /т у acc o u n t /m acros, необходимо выполнить команд^

*ulib,mymacros,mlib,/rayaccount/macros/

После выбора библиотеки макросов для выполнения макроса можно ис*


пользовать одну команду *USE. Передаваемые в макрос аргументы такж|
можно определять в команде *USE. 'А
Заметим, что после определения с помощью команды *ULIB библиотек^
макросов, в которой содержатся используемые в данный момент макросы^
доступ к другим файлам с помощью команды *USE становится невозможным*

5.4.3. Операторы управления


Выполнение макроса предполагает линейный (последовательный) поря*!
док выполнения команд, т. е. команды выполняются в порядке их записи if
файле. Этот порядок выполнения команд может быть изменен операторам»!
управления или путем использования подпрограмм. Рассмотрим правила ис1
пользования подпрограмм и операторы управления.
Использования подпрограмм вмакросах.
Подпрограмма в APDL — это последовательность команд, которая оформ­
лена определенным образом. Любая подпрограмма также является макросом,
Правила использования подпрограмм в APDL очень похожи на правила, уста­
новленные в FORTRAN 77. Эти правила позволяют использовать подпрограм­
мы с двадцатью уровнями вложенности. В подпрограмму может быть передано
до 19 аргументов. После выполнения подпрограммы управление будет возврат
щено в вызывающую программу, из которой к выполненной подпрограмме было
обращение. Например, приведенная ниже библиотека макросов MY START со­
держит обращение к подпрограмме MYSPHERE, которая создает сферу.

mystart
/ргер?
/view,,-1,-2,-3
mysphere,1.2
finish
/eof
mysphere
sphere,argl
/eof

Безусловный переход (команда *GO).


Этот простейший оператор управления позволяет перейти к выполнению
команды, которая стоит в первой строке за меткой, на которую ссылается ко-
Основы языка APDL 329

манда *GO. При этом командный файл или макрос должен содержать строку с
соответствующей меткой. Следующий пример показывает, как использовать
команду *GO.

*GO,:BRANCH1
-- ! Этот блок будет пропущен (не выполнен)

:BRANCH1

Метка, на которую ссылается команда *GO, должна начинаться с двоето­


чия ( :) и не должна содержать более восьми знаков, включая двоеточие.
Заметим, что рассматриваемые далее операторы управления предостав­
ляют пользователю лучшие возможности для создания легких в понимании
макросов, чем команда *GO.

Условный оператор (команда * IF ).


APDL позволяет организовать выполнение макросов таким образом, что
в зависимости от одного или нескольких условий будет выполнена та или иная
команда или блок команд. Условия, используемые при такой организации мак­
роса, включают сравнение двух численных значений, значений двух парамет­
ров или параметрических выражений. Одйим из операторов условного пере­
хода в APDL является команда * IF .
Команда * IF имеет следующий синтаксис:
* IF , VAX.1, О р е х , VAL2, B ase
VAL1
это первое сравниваемое значение, параметр или параметриче­
ское выражение.
О рег
ключевое слово, определяющее оператор сравнения.
VAL2
это второе сравниваемое значение, параметр или параметриче­
ское выражение.
B ase
ключевое слово, определяющее действие, происходящее при вы­
полнении условия.
APDL использует восемь операторов сравнения, более подробное описа­
ние которых содержится в описании команды * IF . Кратко рассмотрим эти
операторы сравнения:
SQ
равенство (VAL1 = VAL2),
I • •• '

неравенство (VA&1 Ф VAL2).


330 Глава 5

LT
меньше чем ( VAL1 < VAL2).
GT /


больше чем ( VAL1 > VAL2).
LE
меньше или равно (VAL1 < VAL2),
1

GE
больше или равно (VAL1 > VAL2).
ABLT
меньше по абсолютному значению.
ABGT
больше по абсолютному значению.

Значением аргумента Влве может быть ключевое слово THEN. В этом


случае команда * IF становится похожей на конструкцию IF-THEN-ELSE,
которая широко используется в FORTRANe. Эта конструкция может состоять
из команды * IF и следующих за ней:
• одной или нескольких команд *ELSEIF (могут отсутствовать);
• команды *ELSE (может отсутствовать);
• команды * ENDIF , которая обозначает завершение команды *1Р (должна
присутствовать обязательно).
В самом простом случае при выполнении команды *XF происходит вы»
числение и сравнение выражений, являющихся первым и третьим аргумента*
ми команды. При выполнении условия (логическое выражение имеет значений
‘t r u e ’) выполняется действие, специфицированное аргументом Base.
Пример использования команды * IF показан ниже. В этом примере, при
выполнении условия А = 1 происходит выполнение блока 1, при невыполне­
нии — управление передается сразу на первый оператор, стоящий за командой
♦ENDIF.

*IF,A,EQ,1,THEN
! Блок 1

*ENDIF

! Продолжение
t .

В следующем примере показана более сложная конструкция (рис. 5.8Х


Заметим, что при любом значении параметра А будет выполнен только один
блок. Если значение параметра А не удовлетворяет всем трем условиям, т6
будет выполнен блок, стоящий после команды *ELSE.
Основы языка APDL 331

* IF ,A ,E Q , 1,-THEN
I B lo c k l

*E L S E IF ,A ,E Q , 0
t B lo c k 2

*E L S E IF ,A ,E Q ,- 1
B lo c k 3

♦ELSE
Block4

* ENDI F
I C o n tin u e

Рис. 5.8. Схема выполнения команды * IF

Оператор повторения {команда *REPEAT).


Простейшим оператором цикла является команда * REPEAT, которая по­
зволяет определенное число раз повторить перед этим введенную команду,
изменяя при этом значения аргументов этой команды. Например
Е,1,2
*REPEAT, 5,0,1

Команда Е создает один элемент между узлами 1 и 2. Следующая за ней


команда *REPEAT создаст пять элементов (с учетом уже созданного элемента),
увеличивая при этом на единицу значение второго аргумента в команде Е. Та­
ким образом, будут созданы пять элементов с узлами 1-2, 1-3, 1-4, 1-5 и 1-6.
Заметим, что некоторые команды, начинающиеся со знаков (/) или (*), а
также макросы не могут быть повторены командой * REPEAT. С этой целью
может быть использован следующий оператор цикла.

Оператор цикла {команда *DO).


Оператор цикла DO-loop позволяет выполнить команду или блок команд
определенное число раз. Повторяемый блок должен находиться между коман­
дами *DO и *ENDDO.
Следующий пример демонстрирует, как команды *DO и *ENDDO могут
быть использованы для пятиразового выполнения заключенного между ними
блока команд.
332 Глава 5

♦DO, 1,1,5 Счетчик цикла I меняется от 1 до 5:


LSREAD,I Чтение файла шага нагружения (load step файла)
номер I
OUTPR,ALL,NONE Изменение опций вывода результатов
ERESX,NO Отказ от экстраполяции результатов
из точек интегрирования в узлы
LSWRITE,I Перезапись файла шага нагружения номер I
с новыми опциями
♦ENDDO

Для реализации более сложной последовательности выполнения команд


в конструкции *DO-*ENDDO могут быть использованы команды * IF , *ЕХ1Т
или ★CYCLE.
При использовании конструкции *DO-*ENDDO необходимо придержи­
ваться следующих правил:
• не переходить из блока *DO- *ENDDO к выполнению команд, находящих­
ся за его пределами, используя команды * IF или *GO; j
• избегать использования меток при изменении порядка выполнения ко­
манд в цикле DO-loop. Для этой цели лучше использовать конструкции*
IF-THEN-ELSE-ENDIF.
Вывод сообщений при выполнении команд в цикл DO-loop автоматически
подавляется после выполнения первого цикла. Для управления этим процес*
сов могут использоваться команды /GOPR и /GO, которые могут выполняться!
в цикле DO-loop.

Использование столбцов для организации цикла.


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

{х : у: z)

По умолчанию z равняется 1. Например, конструкция:

п, (1:6), (2:12:2)

соответствует следующим командам:


n, 1, 2
п ,2, 4
п, 3, 6

п ,6,12
Основы языка APDL 333

Число повторений в цикле будет определяться минимальной размерно­


стью входящих в выражение векторов (столбцов).
Например, результат выполнения команды
п, (1:7), (2:12:2)

будет таким же, как и в предыдущем примере.

Дополнительное управление в цикле (команда *DOWHILE).


Можно прервать выполнение цикла раньше, чем внутренняя переменная
цикла достигнет предельного значения. Это можно сделать с помощью коман­
ды *DOWHIUC.
Команда *DOWHILE имеет следующий синтаксис:
♦DOWHILE, Parm
Оператор цикла будет выполняться до тех пор, пока логический параметр
Р ал а имеет значение « tru e » . Если Рапп примет значение « f a l s e » (или
станет меньше или равен 0.0), то выполнение цикла прекращается. Команды
*CYCLE и *ЕХ1Т могут быть использованы вместе с командой *DOWHZLE.

5.5. Работа с интерфейсом GUI


Существует несколько способов использования возможностей GUI в
макросах ANSYS:
• можно изменять ANSYS Toolbar (эта возможность рассматривалась в
разделе 5.2);
• с помощью команды *ASK можно управлять диалоговым окном для вво-
да значения одного параметра;
• можно управлять диалоговым окном для ввода значений нескольких па­
раметров;
• с помощью команды *MSG можно управлять выдачей сообщений;
• можно управлять окном индикации завершенности процесса;
• можно использовать возможности графического выбора;
• можно вызыв&ть некоторые диалоговые окна.

5.5.1. Создание окна дли ввода одного параметра


Создание окна для ввода значения одного параметра осуществляется ко­
мандой *А$К, которая записывается в тексте макроса.
Команда *ASK имеет следующий синтаксис:
*Л8К, P a r , Qumry, DVAL
P ar
имя скалярного параметра, которому будет присвоено введенное
значение. Имя должно удовлетворять требованиям, которые бы­
ли рассмотрены ранее.
334 Глава 5
4

Рис. 5.9. Диалоговое окно для ввода одного значения

Q uery
"•г

текстовая строка, которая будет показана в графическом окне при


выполнении команды. Эта строка должна состоят^ не более
54 буквенно-цифровых символов. Использование символов «$»
« I » не допускается.
DVAL
; \

значение, которое будет присвоено параметру по умолчанию. Эщ


значение будет присвоено параметру, если на запрос пользогJ
тель не ввел никакого значения. Вводимое значение должно
стоять не более чем из восьми цифр, разделенных запятой.
значение параметра по умолчанию не будет установлено и в oi
л*
запроса не будет введено число, то параметр будет уничтонсбн.
г'Л
Ч
vi

При выполнении команды *ASK в графическом окне появляется текст 3||


проса (определенный аргументом команды Query) и программа ожидает вво
да численного значения, которое будет присвоено параметру (определенной
аргументом команды Par). , i
Следующий пример показывает диалоговое окно (рис. 5.9), в которец I

пользователю предлагается определить значение символьного параметра РАКМЗ


(с напоминанием необходимости использования одинарных апострофов).
*ask,parml,'username (enclose the username in single quotes)'

5.5.2. Создание окон для ввода нескольких параметров


Команда MULTIPRO позволяет разместить в одном диалоговом окне
** *

десяти полей для ввода значений параметров и необходимые пояснения


инструкции. Для организации полей ввода значений параметров использ;
несколько команд *CSET, каждая из которых позволяет сформировать з; ’■
I,

на получение значения параметра или определить это значение по умолчания))


Нельзя использовать команду MULTIPRO в цикле DO-loop.
Основы языка APDL 335

Команда MULTI PRO должна использоваться совместно с:


• командами *CSET (от одной до десяти);
• специальными командами *CSET, которые позволяют разместить в диа­
логовом окне пользовательские инструкции или пояснения (до двух).
Команда MDLTIPRO имеет следующий синтаксис:
MtJLTIPRO, 's t a r t r, Proapt_Nvm
*CSET, Strt Loc, End Loc, Param_Name, 'Prompt String', Dei Value
MULTI PRO, "end'

's t a r t 9
текстовая строка, которая рассматривается как первый аргумент,
для рбозначения начала выполнения конструкции MULTIPRO.
Текстовая строка должна быть заключена в апострофы.
Prompt^JNum
это целое число, равное числу включений команд *CSET. Требу­
ется только в том случае, когда в последней команде *CSET не оп­
ределен аргумент D ef_V alue или значение D ef^V alue равно 0.
S trt^ L o c , End__Loc
номера строк, в которых будут размещены окна для ввода значе­
ния параметра Param_Jfame. Strt__Loc — номер первой стро­
ки, End_Loc — номер последней строки. Начальное значение
S trt^L o c для первой команды *CSET равно 1, а значение
End^Loc равно Strt__Loc+2 (для первой команды *CSET зна­
чение End_Loс равно 3). Значение S trt^L o c для каждой сле­
дующей команды *CSET равно End__Loc+1.
ParamJHama
имя параметра, которому будет присвоено введенное пользовате­
лем значение. Если никакое значение не введено, то этому пара­
метру будет присвоено значение по умолчанию, т. е. значение,
определенное аргументом D ef_V alue.
'P ro m p t^S trin g '
текстовая строка, используемая для описания определяемого па­
раметра. Длина строки не должна превышать 32 знаков. Тексто­
вая строка должна быть заключена в апострофы.
D ef_V alue
значение параметра по умолчанию. Для определения этого зна­
чения может быть использовано число или параметрическое вы­
ражение APDL. При этом использование текстовых параметров
не допускается.
336 Глава 5

Рис. 5.10. Диалоговое окно для ввода нескольких значений

'e n d '
текстовая строка, обозначающая закрытие команда MULTIPRO.
* ’ > » * 4 *

Далее следует пример использования команды MULTIPRO.

multipro,’start', 3
*cset,1,3,beamW,'Enter the overall beam width',12.5
*cset,4,6,beamH,'Enter the beam height1,23.345
*cset,7,9,beamL,'Enter the beam length1,50.0
multipro,’e n d ’
i* •

До двух дополнительных команд * С SET может быть использовано в кон*


струкции команды MULTIPRO для размещения в поле диалогового окна инсг*
рукций или пояснений. Длина инструкции не должна превышать 64 знака.
В этом случае команда *CSET имеет следующий синтаксис:
* ' ' '
*C SE T , 61, 62, * H e lp _ _ S trin g ’ , rH e lp J S t r in g f
*C SE T , 63, 64, ’H e lp J S t r in g 1, 'H e lp J S t r in g 1
'H e lp J S t r in g '
текстовая строка, длина которой не должна превышать 32 знака,;
Если для размещения пояснения требуется большее число зна­
ков, то в качестве аргументов используется вторая, третья и чет*
вертая строки H e lp J S t r in g .
Основы языка APDL 337

Следующий пример показывает, каким образом в диалоговом окне, выво­


димым с использованием команды MOLTXPRO, размещать линии, содержащие
инструкции или пояснения.
multipro,'start1,3
*cset,l,3,dx,'Enter DX Value',0.0
*cset,4,6,dy,’Enter DY Value',0.0
*cset,7,9,dz,'Enter DZ Value',0.0
*cset,61,62,'The MYOFSET macro offsets the',' selected nodes along each'
*cset,63,64,'of the three axes. Fill in the fields accordingly.'
multipro,'end' ,

В результате выполнения рассматриваемой команды появляется диалого­


вое окно, показанное на рис. 5.10.

5.6. Шифрование макросов


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

5.6.1. Подготовка макросов


До шифрования макроса сначала необходимо подготовить его обычным
способом. Подготовленный обычным способом макрос является основой для
его шифрований. После того как создан зашифрованный макрос, редактирова­
ние его становится невозможным. Для шифрования макроса необходимо до­
бавить в его первую и последнюю строки команду /ENCRYPT. Команда
/ENCRYPT имеет следующий синтаксис:
/ЕЮ ТРТ, Encryptlonkay, F ilejiam a, F ilejB x t, D irectoryJP ath/
Encrypt 1 onjkay
пароль, который должен состоять из восьми знаков.
Filejnamm
имя файла зашифрованного макроса.

расширение файла зашифрованного макроса. Может использо­


ваться расширение .mac.
D±rBctory_Path/
директория, в шторой находится макрос. Путь к директории
должен содержать не более 60 знаков. Если макрос находится в
рабочей директории, путь можно не указывать.

Пример использования команды /ENCRYPT в первой и последней стро


ках зашифрованного макроса показан ниже.
I

338 Глава 5

/encrypt,mypasswd,myenfile,mac,macros/
/nopr
/prep7
/view,,-1,-2,-3
block,,argl,,arg2,,arg3
sphere,arg4
vsbv,1,2*
/gopr
finish
/encrypt

Команда /ENCRYPT, стоящая в верхней строке сохраняемого файла, Щ


качестве аргумента содержит текстовую строку — пароль. Созданный зашиф|
рованный макрос m y e n f ile .m a c будет помещен в директорию /тасхоЩ
Команда /ENCRYPT, стоящая в последней строке исходного макроса, завер*
шает процедуру шифрования и записывает макрос в файл с определенны^
ранее именем.
Заметим, что стоящая во второй строке команда /NOPR подавляет вывсу^
информации о создании макроса в lo g -файл. Стоящая ниже команда /<ЗОШЩ
отменяет команду /NOPR.

5.6.2. Создание зашифрованных макросов •I

После ввода команд /ENCRYPT, стоящих в верхней и нижней Игроках мак* .I-)

роса, а также самих команд макроса, процесс создания зашифрованного макроса


будет завершен. Ввести команды макроса можно построчно в командной строи£
или как отдельный командный файл. В результате выполнения этих команд 6yz*tfj
создан зашифрованный файл. Содержание зашифрованного макроса, который
получен в результате выполнения предыдущего примера, показан ниже.
/DECRYPT,mypasswd
013AZ,A%
02xA0 S e |L v (уТ.6>?
03J3]Q_LuXd3-6«m+*f$k]?eB
04: AVY7S#S>c>
05daV;u(yY
06T]3WjZ
/DECRYPT

Заметим, что команды этого макроса сейчас скрыты. Доступ к выполни


нию команд зашифрованного макроса дает команда /DECRYPT. Первым ар$
гументом команды /DECRYPT является текстовая строка — пароль.

5.6.3. Выполнение зашифрованных макросов


Скрытый макрос можно выполнить так же, как и любой другой макрос*
Для этого необходимо поместить его в рабочую директорию. Бели пользова­
тель хочет получить преимущественное право использования скрытого макро*
са, то он должен установить общие для всех макросов пароль. Для этого необ*
ходимо изменить первый аргумент команды /DECRYPT, который является
паролем. Таким образом, первой строкой скрытого файла становится:
/DECRYPT,PASSWORD
Основы языка APDL 339

До выполнения макроса в ANSYS необходимо ввести следующую коман­


ду в командную строку:
/DECRYPT,PASSWORD,Encryption_Key

Еп c ry p t i on_K ey
пароль, который использовался при создании скрытого файла.
Уничтожить общий пароль можно командой

/DECRYPT,PASSWORD,OFF

5.7. Перечень команд APDL


*ABBR Определение аббревиатуры.
ABBRES Чтение аббревиатуры из файла.
ABBSAV Сохранение текущих аббревиатур в файле.
*AFUN Определение единиц измерения угловых единиц.
*ASK Запрос значения параметра.
*CFCLOS Закрытие командного файла (файла макроса).
*CFOPEN Открытие командного файла (файла макроса).
*CFWRITE Запись команд ANSYS (или строк) в командный файл.
* CREATE Открытие (создание) файла макроса.
★CYCLE Пропуск выполнения команд до конца цикла DO-loop.
★d e l Уничтожение параметра или параметров.
/DFLAB Изменение меток DOF для пользовательских элементов.
*DIM Определение размерности массива параметров.
/DIRECTORY Помещение имен файлов, находящихся в текущей
директории, в массив строк.
*DO Определение начала цикла DO-loop.
*DOWHILE Повтор цикла DO-loop до прекращения выполнения условия.
★e l s e Отделение последнего блока операторов IF-THEN-ELSE.
* e l s e if Отделение средних блоков операторов IF-THEN-ELSE.
♦END Закрытие файла макроса.
*ENDDO Окончание цикла DO-loop.
*ENDIF Окончание оператора IF-THEN-ELSE.
★EXIT Выход из оператора DO-loop.
★get Получение значения параметра или элемента массива из базы данных.
★GO Переход к выполнению команды в строке командного файла, стоящей
после специфицированной в команде метки.
★IF Оператор условного перехода.
/INQUIRE Запись информации о системе в текстовый параметр.
/MAIL Отправка сообщения в специфицированный адрес.
340 Глава 5

Продолжение табл

★MFOURI Вычисление коэффициентов разложения в ряд Фурье.


★MFUN Копирование или транспонирование массива параметров (матрицы).1
★MOPER Выполнение операции над массивом параметров (матричного one* 1'
Vfifl

ратора). 1 t14Н

★MSG Запись сообщений ANSYS в текстовые параметры. *


1

★MWRITE Форматированная запись матрицы в файл. j|


PARRES
, ьЯ

Чтение параметров из файла.


уд

PARSAV Запись параметров в файл. 1 *II 1

/PMACRO Запись содержания макроса в lo g -файл.


/PSEARCH Определение директории, в кбторой будет осуществляться 1 ’ ЧЬ

поиск макросов.
♦REPEAT Повторение предыдущей команды.
★RETURN Возвращение на более высокий уровень.
★SET Присвоение параметру значения.
•<
ll,

й
★SREAD Чтение файла в массив текстовых строк. \

★STATUS
1
Вывод текущих значений параметров и аббревиатур. 1*4
I

★TAXIS Присвоение элементам массива параметров значений. 11


г1

/TEE Запись команды в файл макроса. '■ ■*


1

★TOPER Выполнение операторов над таблицей параметров. J--J9

★TREAD
• '.'J

Чтение данных из внешнего файла в массив параметров (таблицу). >


-4J

/UCMD Присвоение пользовательской команде имени.


■ i

★ULIB
• t

Определение имени файла библиотеки макросов. •i


★USE Выполнение макроса.



★VABS Задание режима работы, при котором значения одного


или нескольких аргументов заменяются их абсолютными значениями*;]
★VCOL Определение номеров столбцов, используемых в матричных операторах * ■

★VCUM Задание режима работы, при котором вводимые значения массивов


параметров суммируются с определенными ранее значениями. ]
★VEDIT Редактирование массива в графическом окне. ,

★VFACT Задание режима, при котором массивы параметров,


являющиеся аргументами оператора, умножаются на скаляр.
★VFILL Заполнение массива параметров. j
★VFUN Выполнение функции над одним массивом параметров. , i

★VGET Извлечение значений и сохранение их в массиве параметров. i


i

★VITRP Формирование массива параметров из таблицы параметров путем i


i

интерполяции.
★VLEN Определение числа строк, используемых в операциях над массивами
параметров.
★VMASK Задание режима работы, при котором формирование
векторов в матричных операциях осуществляется с помощью маски.
★VOPER Оператор над двумя массивами.
Основы языка APDL 341

Окончание таблицы

*VPLOT Построение графика массива параметров.


*VPUT Запись массива параметров в базу данных ANSYS.
★VREAD Чтение данных и запись их в массив параметров (вектор или матрицу).
♦VSCFUN Вычисление характеристик массива параметров.
*VSTAT Выводит информацию об условиях выполнения операций
с массивами параметров.
*VWRITE Форматированная запись данных в файл.
/WAIT Вызывает задержку чтения следующей команды.

5.8. Перечень GET-функций


Функция Описание
Функции определения статуса
NSEL(N) Статус узла N:
-1 = не выбран, 0 = не определен, 1 = выбран.
ESEL (Е) Статус элемента Е :
-1 “ не выбран, 0 = не определен, i = выбран.
KSEL (К) Статус точки К:
-1 = не выбрана, 0 = не определена, 1 = выбрана.
LSEL (L) Статус линии L :
-1 = не выбрана, 0 = не определена, 1 - выбрана.
ASEL (А) Статус поверхности А :
“ 1 = не выбрана, 0 = не определена, 1 = выбрана.
VSEL ( V) Статус объема V:
-1 = не выбран, 0 = не определен, 1 = выбран.
Функции определения номера ближайших по номеру объектов
NDNEXT (N) Определение номера узла, имеющего
ближайишй больший, чем N, номер.
ELNEXT (Е) Определение номера элемента, имеющего
ближайший больший, чем Е, номер.
KPNEXT (К) Определение номера точки, имеющей
ближайший больший, чем К, номер.
LSNEXT(i) Определение номера линии, имеющей
ближаиший больший, чем L, номер.
ARNEXT (А) Определение номера поверхности, имеющей
ближайший больший, чем А, номер.
VLNEXT ( V) Определение номера объема, имеющего
ближайший больший, чем У, номер.
Функции определения положения
CENTRX (Е) Определение ^-координаты центра элемента Е в гло­
бальной декартовой системе координат. Центр опреде­
ляется по выбранным в данный момент узлам элемента.
342 Глава 5
I

Продолжение таблицы

CENTRY(Е) Определение У-координаты центра элемента Е в гло­


бальной декартовой системе координат. Центр опреде­
ляется по выбранным в данный момент узлам элемента.
CENTRZ(Е) Определение Z-координаты центра элемента Е в гло­
бальной декартовой системе координат. Центр опреде­
ляется по выбранным в данный момент узлам элемента.
NX (N) Определение ЛГ-координаты узла N в активной систе­
ме координат.
NY (N) Определение У-координаты узла N в активной системе
координат.
NZ (N) Определение Z-координаты узла N в активной системе
координат. j
KX(JC) Определение Jf-координаты точки К”в активной сис­
теме координат.
KY (K) Определение 7-координаты точки Кв активной сис­
теме координат.
kz (к) Определение Z-координаты точки Кв активной сис-
теме координат.
L X (L , LFRAC) Определение Х-координаты точки линии L, расположен­
нойна части ее длины LFRAC (изменяется or 0.0 до 1.0).;
LY (L,LFRAC) Определение У-координаты точки линии L, расположен­
ной на части ее длины LFRAC (изменяется от 0.0 до 1.0).
L Z (L,LFRAC) Определение Z-координаты точки линии L, расположен­
ной на часта ее длины LFRAC (изменяется от 0.0 до 1.0).,
'П м
LSX (L , LFRAC) Определение наклона линии L к оси X в точке, распо-
ложенной на части ее длины LFRAC (изменяется от ]
0.0 до 1.0). л
LSY [L,LFRAC) Определение наклона линии L к оси Y в точке, распо­
ложенной на части ее длины LFRAC (изменяется от
0.0 до 1.0). ^
L S Z {L,LFRAC) Определение наклона линии L к оси Z в точке, распо*
ложенной на части ее длины LFRAC (изменяется от
0.0 до 1.0). i
Функции определения номера объекта, занимающего в пространстве
определенное положение ]
—■ " .... —.... ........... 1"1
NODE (X , У, Z) Определение номера узла, расположенного ближе ]
других к точке пространства с координатами X , Y, Z j
(в активной системе координат; наименьший номер,
если положения нескольких узлов совпадают). j
КР {X ,Y,Z) Определение номера точки, расположенной ближе Щ
других к точке пространства с координатами X , Y, Z ;
(в активной системе координат; наименьший номер, |
если положения нескольких точек совпадают). ]
Основы языка APDL 343

Продолжение таблицы

Функции определения расстояния


D1STND {№ ,N2) Определение расстояния между узлами N1 и N2.
DISTKP [К1,К2) Определение расстояния между точками К1 и К2.
DISTEN {E,N) Определение расстояния между центром элемента Е и
узлом N (центр элемента определяется по выбранным
в данный момент узлам элемента).
Функции определения угла
ANGLEN {№ ,N 2,N 3) Вычисление угла между двумя линиями по трем уз­
лам, принадлежащим этим линиям, где N1 находится
в точке пересечения линий. По умолчанию измеряет­
ся в радианах.
ANGLEK {К1,К2,КЗ) Вычисление угла между двумя линиями по трем точ­
кам, принадлежащим этим линиям, где К1 находится
в точке пересечения линий. По умолчанию измеряет­
ся в радианах.
Функции определения ближайшего по номеру
NNEAR (N) Определение номера узла, ближайшего к N.
KNEAR ( К) Определение номера точки, ближайшего к К.
ENEARN (N) Определение номера элемента, ближайшего к N. По­
ложение элемента определяется по выбранным в дан­
ный момент узлам.
Функции поверхностей
AREAND(N1,N2,N3) Вычисление площади плоской поверхности, имею­
щей вершины в узлах Ш , N2 и N3.
AREAKP {К1,К2,КЗ) Вычисление площади плоской поверхности, имею­
щей вершины в точках KI, К2 и КЗ.
ARNODE [N) Вычисление осредненной площади граней выбран­
ных элементов (осредненной длины ребер в двумер­
ном случае), соединенных с узлом N.
Функции нормалей
№ V m X (N l,N 2,N 3) Определение направляющего косинуса между осью
X и нормалью к поверхности, заданной узлами N1,
N2 и N3.
NORMNY (N1, N2 , N3) Определение направляющего косинуса между осью
У и нормалью к поверхности, заданной узлами N1,
N2 и N3.
NORMNZ (N1, N2 , N3) Определение направляющего косинуса между осью
Z и нормалью к поверхности, заданной узлами N1,
N2 и N3.
NORMKX (K I, К2 , КЗ) Определение направляющего косинуса между осью
X и нормалью к поверхности, заданной точками К1,
К2 и КЗ.
344 Глава 5
__ .. ..j

:'ji

Продолжение табдмй

1i
*l■I
NORMKY {K I, K2, КЗ) Определение направляющего косинуса между осью \
Y и нормалью к поверхности, заданной точками K ljJ
К2 и КЗ.
NORMKZ ( K 1,K2,K3) Определение направляющего косинуса между осью !
Z и нормалью к поверхности, заданной точками К1
К2 и КЗ. j
Функции соединения А
ENEXTN(N,LOC) Определение номера элемента, включающего узел нЛ
где LOC — номер в списке элементов, соединенных t i1'
узлом N.
NELEM( £ , NPOS) Определение номера узла, входящего в элемент Е, гд41
NPOS — номер (позиция) узла в списке узлов элемен­
та £ (от 1 до 20). !
NODEDOF (AT) Возвращает код активных DOF для узла N. |
0 для UX, 1 для U Y ...5 для ROTZ, j
6, 7, 8 для АХ, AY, AZ,
9, 10,11 для VX, VY, VZ, I
18 для PRES, '
19 для TEMP, . '-i
20 для v o lt ; |
21 для M AQ "А
24 для EMF, i
25 для CURR, !
7 для UX, UY, UZ (биты 0,1,2) ^
63 для UX, UY, UZ, ROTX, ROTY, ROTZ
(битыО, 1,2,3,4,5). "Л
Функции граней 14
ELADJ(К ,FACE) Для 2-D плоских и 3-D объемных элементов возвращает
номер элемента, смежного с гранью FACE элемента Е.
Этот тот же номер грани, который используется при
определении поверхностной нагрузки на элемент.
NDFACE(E,FACE,LOC) Номер узла в позиции LOC на грани с номером FACE
элемента Е. Этот тот же номер грани, который ис­
пользуется при определении поверхностной нагрузки
на элемент.
NMFACE(E) Номер грани элемента Е, содержащей выбранные узлы.
ARFACE{E) Для 2-D плоских и 3-D объемных элементов возвра­
щает площадь грани элемента Е, содержащей вы­
бранные узлы. ;
Функции степеней свободы (результаты)
и X(N) Перемещение UX узла N.
UY (N) Перемещение UY узла N.
UZ (N) Перемещение UZ узла N.
ROTX(N) Угол поворота ROTX узла N.
Основы языка APDL 345

Продолжение таблицы

ROTY(N) Угол поворота ROTY узла N.


ROTZ (N) Угол поворота ROTZ узла N.
TEMP (N) Температура в узле N Для элементов SHELL131 и
SHELL 132 с опцией KEYOPT(3) = 0 или 1, использу­
ются функции ТВОТ {N) , ТЕ2 (N) ,
ТЕЗ (N) ,...,ТТОР (N) взамен функции TEMP (N) .
PRES (N) Давление в узле N.
VX(tf) Скорость жидкости VX в узле N.
VY(N) Скорость жидкости VY в узле N.
VZ (N) Скорость жидкости VZ в узле N.
ENKE(N) Кинетическая энергия турбулизации (FLOTRAN)
в узле N.
ENDS(N) Диссипация энергии турбулизации (FLOTRAN)
в узле N.
VOLT(N) Электрический потенциал в узле N.
MAG (N) Скалярный магнитный потенциал в узле N.
AX (N) Компонента АХ вектора магнитного потенциала
в узле N.
AY (N) Компонента AY вектора магнитного потенциала
в узле N.
AZ (N) Компонента AZ вектора магнитного потенциала
в узле N.
Функции, возвращающие сведения о базе данных
VIRTINQR(l) Число страниц, размещенных во внутренней памяти.
VIRTINQR(4) Размер страницы в словах.
VIRTINQR(7) Максимальное число страниц, которое можно размес­
тить на диске.
VIRTINQR(8) Число операций чтения/записи на странице.
VIRTINQR(9) Максимальное число записей на странице.
VIRTINQR(11) Максимальное число страниц.
Функции, возвращающие значение ключевых слов ANSYS
KWGET(KEYWORD) Возвращает текущее значение ключевого слова, спе­
цифицированного KEYWORD. См. ANSYS UIDL Pro­
grammer's Guide.
Функции преобразования
Функции, преобразующие текстовые строки в числа с двойной точностью
VALCHR(ав) а 8 — десятичное число, записанное как текстовая
к
строка.
VALOCT(аб) а 8 — восьмиричное число, записанное как текстовая
строка.
VALHEХ(а8) а 8 — шестнадцатиричное число, записанное как тек­
стовая строка.
346 Глава 5

Окончание табли!
'' ■
' ■■ ....... —■

■■

■■ . Mi^l
Функции, преобразующие числовые значения в восьмизначные строки |
CHRVAL {dp) dp — числовое значение, записанное с двойной точ- *
ностью.
CHROCT(dp) dp — целое число. |
C H R H E X ( dp) dp — целое положительное число. |
Функции, которые манипулируют строками: StrOut — возвращаемая строка, |
Strl и Str2 — входные строки (длина строк до 128 знаков; см. *DIM) |
StrOut = Возвращает nChar знаков, начиная ;;
STRSUB (Strl,nLoc,nChar) с nLoc из Strl. ■§
StrOut = STRCAT(Strl,Str2) Добавляет Str2 в конец Strl. ^
StrOut = Добавляет Str2 в Strl начиная ^
S T R F I L L ( S t r l , S t r 2 , nLoc) с nLoc. ;;
StrOut = STRCOMP(Strl) Удаляет все пропуски из S t г 1.
StrOut = S T R L E F T ( S t r l ) Записывает строку Strl без пробелов
слева.
nLoc = STRPOS(Strl,Str2) Возвращает положение Str2 в Strl.
nLoc « S T R L E N G ( S t r l ) Возвращает положение последнего
значимого символа (не пробела).
StrOut = U P C A S E ( S t r l ) Пишет строку Strl заглавными буквами,
StrOut =• L W C A S E ( S t r l ) Пишет строку Strl строчными буквами..
Функции управления именами файлов
Path String = Осуществляет сложение маршрута,
J O I N ( ’ di r e c t o r y * , ' f i l e n a m e ', имени файла и расширения
1e x t e n s i o n ')
Path String = Осуществляет сложение маршрута и
J O I N ( ' d i r e c t o r y ’ , ' f i l e n a m e ') имени файла
S P L I T ( ’ P a t h S t r i n g 1, ’D I R 1) Осуществляет разделение директории
от маршрута.
S P L I T ( ’ P a t h S t r i n g ', ' F I L E 1) Осуществляет разделение имени файла
с расширением от маршрута.
S P L I T ( ’ P a t h S t r i n g 1, ' N A M E 1) Осуществляет разделение имени файла
от маршрута.
S P L I T ('P a t h S t r i n g ' , ' E X T ' ) Осуществляет разделение расширения
файла от маршрута.
Заключение

Развитие механики разрушения, совершенствование систем автоматизи­


рованного инженерного анализа и самой системы конструкторских и техноло­
гических расчетов неразрывно связаны с совершенствованием методов мате­
матического описания разрушения металлических и неметаллических тел под
действием нестационарной термосиловой нагрузки. Этот процесс совершен­
ствования является очень динамичным. В настоящее время методы расчета
наиболее распространенных критериев механики разрушения — коэффициента
интенсивности напряжений, инвариантнтного энергетического интеграла, —
в достаточно полном объеме реализованы в одной из самых мощных систем
автоматизированного инженерного анализа — программе ANSYS. Представлен­
ные здесь, написанные на языке параметрического программирования APDL,
макросы несколько расширяют эти возможности, особенно для упругопласти­
ческих тел и термомеханической нагрузки. Эти новые возможности проиллю­
стрированы при решениии примеров.
К сожалению, многие вопросы, связанные с расчетом параметров меха­
ники разрушения, не нашли своего отражения в данном пособии или рассмот­
рены недостаточно подробно. Это прежде всего вопросы:
• расчета параметров механики разрушения в несимметричных трехмер­
ных телах, в том числе с криволинейным фронтом трещины;
• расчета параметров механики разрушения в упруговязкопластических
телах и телах из композиционных материалов;
• расчета параметров механики разрушения в динамических задачах, учи­
тывающих скорость деформирования, инерционные и температурные
эффекты;
• описания процессов распространения, ветвления и остановки трещин;
• расчета параметров механики разрушения в электромеханических и дру­
гих связанных задачах.
Некоторые из перечисленных вопросов дополнительно раскрываются в
соответствующем лекционно-практическом учебном курсе «Расчет парамет­
ров механики разрушения в программе ANSYS» Московского представитель­
ства CAD-FEM GmbH.
I

Литература

1. Каплун А. Б., Морозов Е. М., Олферьева М. A. ANSYS в руках инженера. П]


ческое руководство. М.: URSS. 1-е изд. 2003.272 с. 2-е изд. 2004.272 с. .ы-т
2. ЧигаревА. А, Кравчук А. С., Смалюк А. Ф. ANSYS для инженеров: Справ*
пособие. М.: Машиностроение-1,2004. 512 с.
3. Басов К. A. ANSYS в примерах и задачах / Под ред. Д. Г. Красковского. М.:
пьютер Пресс, 2002. 224 с.
4. Броек Д. Основы механики разрушения. М.: Высшая школа, 1980. 368 с.
5. Качанов JI. М. Основы механики разрушения. М.: Наука, 1974. 312с.
6. Партой В. 1, Морозов Е. М. Механика упругопластического разрушения. М.:
1985. 504 с. 3-е изд. М.: Издательство ЛКИ/URSS, 2008. В 2 т: Т. 1. 352 с. Т. 2.1
1. Пестрите В. М., Морозов Е. А/. Механика разрушения твердых тел: Курс лез
СПб.: Профессия, 2002. 320 с.
8. Пестриков В. М., Морозов Е. М. Механика разрушения на базе компьютер]
технологий» Практикум. СПб.; БХВ-Петербург, 2007,464 с.
9. Хеллан К. Введение в механику разрушения / Пер. с англ. под ред. Е. М. Мо]
ва. М.: Мир, 1988. 364 с.
10. Черепанов Г П. Механика хрупкого разрушения. М.: Наука, 1974.640 с.
11. Ивлев Д. Д. О теории трещин квазихрупкого разрушения К Журнал Прикл. м<
ники и технич. физики. 1967. №6. С. 88-128. См. также: Ивлев Д. Д. М<
пластических сред. М.: Физматлит, 2002. Т. 2.448 с. |
12. Астафьев В. #., РадаевЮ. Я , Степанова Л. В. Нелинейная механика
ния. Самара: Самарский университет, 2001.632 с.
13. Левин В. А.у Морозов Е. М, Матвиенко Ю. Г. Избранные нелинейные задачи
ханики разрушения. М.: Физматлит, 2004.408 с. |
14. Матвиенко Ю. Г. Модели и критерии механики разрушения. М.: Физматлит, 200$
328 с. •Ч * t

15. Васильченко Г С, Кошелев И Ф. Практическое применение механики разрушу


ния для оценки прочности конструкций. М.: Наука, 1974.148 с. i *

16. Механика разрушения и прочность материалов / Справочное пособие под


В. В. Панасюка; В 4 т. Киев: Наукова думка, 1988-1990. Т.1. Основы мех!
разрушения. 488 с. Т. 2. Коэффициенты интенсивности напряжений в телах'
трещинами. 620 с. Т. 3. Характеристики кратковременной трещиностойюости
териалов и методы их наблюдения. 436 с. Т. 4. Усталость и циклическая трещит^
стойкость конструкционных материалов. 680 с. 1
17. Справочник по коэффициентам интенсивности напряжений: В 2 т. / Пер. с ант,
под ред. Ю. Мураками. М.: Мир, 1990.448 с.
Литература 349

18. Атлури С. и др. Вычислительные методы в механике разрушения. М.: Мир, 1990.
392 с.
19. Сиратори М., Миеси Т., Мацусита X\ Вычислительная механика разрушения /
Пер. с японск. под ред. Е. М. Морозова. М.: Мир, 1986. 334 с.
20. Фридман Я. Б. Механические свойства материалов: В 2 т, М.: Машиностроение,
1974. Т. 1.472 с. Т. 2. 368 с.
21. Серенсен С. В.у КогаевВ. Л,, ШнейдеровичР. М\ Несущая способность й расчеты
деталей машин на прочность. Справочное пособие. М.: Машиностроение, 1975.
488 с.
22. Folias Е. S. Joum. of Appl. Mechanics. 1975. V. 42. P. 663-674.
23. Шестериков С. A., Степанова Л. В. Анализ напряженно-деформированного со­
стояния в окрестности вершимы трещины для дробно-линейного закона ползуче­
сти // Изв. РАН. Механика твердого тела, 1995. № 1. С. 96-103.
24. Морозов Е. М., НикишковГП. Метод конечных элементов в механике разруше­
ния. 2-е изд. М.: Издательство ЛКИ/URSS, 2008. 256 с.
25. ГОСТ 25.506-85. Методы механических испытаний металлов. Определение ха­
рактеристик трещиностойкости (вязкости разрушения) при статическом нагруже­
нии. М.: Изд-во стандартов, 1985. 61 с. См. также: МР 1-95. Определение харак­
теристик трещиностойкости (вязкости разрушения) при статическом нагружении /
Механика катастроф. Определение характеристик трещиностойкости конструк­
ционных материалов. Методические рекомендации. М.: Изд. МИБ СТС. Ассо­
циация КОДАС, 1995. С. 7-82.
26. Марочник сталей и сплавов / Под ред. В. Г. Сорокина. М.: Машиностроение,
1980.640 с.
27. KohnkeP. ANSYS. Theory Reference. Southpointe: ANSYS Inc. 1998.
28. Родюшкин П. P. Использование ANSYS для расчета параметров механики разру­
шения / Сборник трудов Пятой конференции пользователей программного обес­
печения CAD-FEM GmbH (Москва, 21—22 апреля 2005 г.) / Под ред. А. С. Шад-
ского. М.: Полигон-пресс, 2005. С. 26-33.
29. Браун У. у СроулиДж. Испытания высокопрочных металлических материалов на
вязкость разрушения при плоской деформаций. М.: Мир, 1972. 248 с.
30. Москвичев В. В.> Maxymoe Н. А., Черняев А. П. и др. Трещиностойкость и механи­
ческие свойства конструкционных материалов. Новосибирск: Наука, 2002. 334 с.
31. Кудряшов В. Г., Смоленцев В. И. Вязкость разрушения алюминиевых сплавов.
М.: Металлургия, 1976.295 с.
32. APDL Programmer's Guide. ANSYS Release 9.0 Documentation. Canonsburg: ANSYS
Inc.
Приложения

Приложение 1

Модель пластины с центральной трещиной при растяжении

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Расчет параметров механики разрушения
(коэффициентов интенсивности напряжений (КИН) и J-интеграла)
для плоского образца с центральной трещиной
(симметричная задача, условие плоской деформации).
Геометрические размеры образца (см. рис. 2.4);
bm — ширина образца;
lm = (0 .15...0 .25) Ьт — длина трещины;
-bb * (1.25...1.60)bm — ширина захвата;
hm = (0 .10...0 .20) bm — глубина надреза;
tm * (0 .15...0.25) bm — толщина образца;
rb * О.ЗОЬт — радиус скругления;
kb = О.ОЗЬт — ширина надреза;
lb * З.ООЬт — длина рабочей части образца.
Вначале создается двумерная КЭ сетка, затем она выдавливается.
Используются квадратичные элементы со срединньши узлами,
вокруг вершины создается слой вырожденных сингулярных КЭ
с узлами, сдвинутыми на 1/4 в сторону вершины.
Итоговые величины КИН сохраняются в параметрах KII - KI3.
Для вычисления J-интеграла используется макрос j_f_l.mac,
вызываемый с четырьмя аргументами (номерами узлов nji - njl).
Итоговая величина J-интеграла сохраняется в параметре JINT,
величина КИН К(1), вычисленного с помощью J-интеграла,
сохраняется в параметре KI1J.

(С) А. Ю. Муйземнек, А. С. Шадский (CAD-FEM GmbH)

п м м м м м м ; ; ! I !!! { м м ! ! ! ! ! ! ! ! I м м ы ; j ! м м м ; ! ! ! ! ! ! ! j ы ( !
/CONFIG,NPROC,2 ! Определение числа процессоров
Задание Jobname и заголовка
/FILNAME,Model 1,1 Jobname = «Model_l»
(все файлы будут иметь имя Model_l)
/TITLE,Model 1 Заголовок графического окна
НАЗНАЧЕНИЕ ПАРАМЕТРОВ
*AFUN,DEG Угловые величины будут
задаваться в градусах

Вам также может понравиться