В данном примере рассматривается объемное кольцо. На внутреннюю поверхность кольца действует момент 120 Н*м, который необходимо равномерно распределить по поверхности кольца. Для решения такой задачи используются команды APREPRO и формулы.
В CAE Fidesys есть поддержка языка программирования APREPRO (aлгебраический препроцессор для задания параметров анализа методом конечных элементов). Переменные APREPRO могут быть заданы и изменены с помощью графического интерфейса. Редактор можно включить/выключить из пункта меню Вид / Редактор Aprepro. Редактор открывается с отдельном окне, которое пользователь может разместить любом месте в пределах графического интерфейса программы.
Создание геометрической модели
Для задания переменной, определяющей внутренний радиус кольца для дальнейших построений и вычислений, пропишите в командную строку:
#{innerRadius=1}

Затем создайте два цилиндра. На панели команд выберите Режим - Геометрия, Объект - Объем, Действие - Создать. Из выпадающего списка выберите Цилиндр и задайте необходимые параметры. Нажмите Применить.

Проделайте тоже самое для создания второго цилиндра с высотой 0,1 и радиусом 1.

Вычтите второй цилиндр из первого. На панели команд выберите Режим - Геометрия, Объект - Поверхность, Действие - Логические операции. Из выпадающего списка выберите Вычесть и задайте необходимые параметры. Нажмите Применить.

Задайте переменные смещения, для этого пропишите в командную строку:
#{moveX=0.5}#{moveY=0.7}

Переместите геометрическую модель. На панели команд выберите Режим - Геометрия, Объект - Объем, Действие - Преобразовать. Из выпадающего списка выберите Переместить и задайте необходимые параметры. Нажмите Применить.

Задание зависимости ГУ
Задайте значение момента, действующего на кольцо, для этого пропишите в командную строку:
#{moment=120}
Для вычисления переменной усилия, вызывающего выбранный момент с учетом плеча, пропишите в командную строку:
#{force=moment/innerRadius}
Для вычисления переменной распределенного усилия пропишите в командную строку:
#{distributedForce=force/SurfaceArea(7)}

Приложите распределенную силу, действующую на внутреннюю поверхность кольца. На панели команд выберите Режим - Граничные условия, Объект - Распределенная сила, Действие - Создать. Задайте необходимые параметры. Нажмите Применить.

Проделайте тоже самое для векторного направления 0 2 0.

Для передачи формульных значений для вычисления распределенных по узлам усилий с учетом смещения центра кольца в командую строку пропишите следующие команды:
create formula 1 '-{distributedForce} * (x-{moveX})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))'modify distributed force 2 vector value1 0 formula2 1 value3 0 value4 0 value5 0 value6 0create formula 2 '{distributedForce} * (y-{moveY})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))'modify distributed force 1 vector formula1 2 value2 0 value3 0 value4 0 value5 0 value6 0

Построение сетки
Постройте сетку для геометрической модели. На панели команд выберите Режим - Сетка, Объект - Объемная, Действие - Интервалы. Из выплывающего списка выберите Автоматический размер и задайте необходимые параметры. Нажмите Задать размер, Построить сетку.

Задание материала и свойств блока
Создайте материал. На панели команд выберите Режим - Материал, Объект - Управление материалами. В колонке "Импортированный материал" дважды нажмите на Углеродистая сталь.

Создайте блок. На панели команд выберите Режим - Блоки, Объект - Блок, Действие - Добавить сущность в блок. Задайте необходимые параметры. Нажмите Применить.

Задайте свойства блоку. На панели команд выберите Режим - Блоки, Объект - Блок, Действие - Свойства/параметры блока. Задайте необходимые параметры. Нажмите Применить.

Задание граничных условий
Закрепите поверхность в перемещениях по всем осям. На панели команд выберите Режим - Граничные условия, Объект - Перемещение, Действие - Создать. Задайте необходимые параметры. Нажмите Применить.

Запуск расчета
Для запуска на расчет в CAE Fidesys выберите на панели команд Режим - Настройки расчета, Настройки расчета - Статический, Статический - Общие. Задайте требуемые параметры и нажмите Применить, Начать расчет.

Задайте дополнительные настройки. На панели команд выберите Режим - Настройки расчета, Настройки расчета - Статический, Статический - Поля вывода. Задайте требуемые параметры и нажмите Применить, Начать расчет.

Анализ результатов
Откройте файл с результатами. Это можно сделать тремя способами:
- Нажмите Ctrl+E;
- В главном меню выберите Расчёт - Результаты. Нажмите Открыть последний результат;
- На панели команд выберите Результаты (Режим - Результаты, Результаты - Открыть Результаты).
Появится окно Fidesys Viewer, в котором вы сможете ознакомиться с результатами расчёта.
В верхней строке выберите Фильтр → Алфавитный указатель → Построить векторное поле. Затем в Свойствах задайте необходимые параметры и нажмите Применить.

В результате на модели отобразится векторное поле.

Для проверки правильности решения воспользуйтесь функцией Включить всплывающую подсказку при наведении на точку.

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

Использование консольного интерфейса
Построение геометрии, генерацию сетки, задание граничных условий и материалов можно выполнить с использованием консольного интерфейса. Ниже приведён код программы, позволяющий выполнить шаги описанного выше руководства, необходимо только самостоятельно указать полный путь и название сохраняемого файла.
reset
#Задаем переменную, определяющую внутренний радиус кольца для дальнейших построений и вычислений
#{innerRadius=1}
create Cylinder height 0.1 radius 2
create Cylinder height 0.1 radius {innerRadius}
subtract volume 2 from volume 1
#В общем случае кольцо может быть смещено, поэтому задаем переменные смещения
#{moveX=0.5}
#{moveY=0.7}
#Смещаем кольцо
move Volume 1 x {moveX} y {moveY} include_merged
#Задаем значение момента, действующего на кольцо
#{moment=120}
#Вычисляем переменную усилия, вызывающего выбранный момент с учетом плеча
#{force=moment/innerRadius}
#Вычисляем переменную распределенного усилия, которое необходимо задать на площадь внутренней поверхности кольца
#{distributedForce=force/SurfaceArea(7)}
#Создаем пару распределенных сил, чтобы передать им нужные формульные значения
create distributed force on surface 7 force value 1 moment value 0 direction 1 0 0 specific
create distributed force on surface 7 force value 1 moment value 0 direction 0 2 0 specific
#Передаем формульные значения для вычисления распределенных по узлам усилий с учетом смещения центра кольца
create formula 1 '-{distributedForce} * (x-{moveX})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))'
modify distributed force 2 vector value1 0 formula2 1 value3 0 value4 0 value5 0 value6 0
create formula 2 '{distributedForce} * (y-{moveY})/sqrt((y-{moveY}) * (y-{moveY})+(x-{moveX}) * (x-{moveX}))'
modify distributed force 1 vector formula1 2 value2 0 value3 0 value4 0 value5 0 value6 0
volume all size auto factor 7
mesh volume all
create material 1 from 'Углеродистая сталь'
set duplicate block elements off
block 1 add volume all
block 'Block 1' material 1 cs 1 element solid order 1
create displacement on surface 1 dof all fix
analysis type static elasticity dim3
output nodalforce on energy off midresults on record3d off material off fullperiodic off