на чем пишут скрипты для ansys
Интеграция программы на C# с расчетным ядром ANSYS 11
Проблемы интеграции своих программ с чужими все более широко охватывают область разработки программного обеспечения. Многие программисты считают, что нужно писать свое, интегрироваться с чужими разработками это плохо, причем не учитывают размеры команд разработчиков, их опыт и целесообразность. Да и в течении года-два реализовать ту же самую систему расчета методом конечных элементов хоть и можно, но высокого качества она не будет. Разве можно за пару лет повторить путь развития проекта, который развивался 10–20 лет? Естественно нельзя и часто нецелесообразно.
Никто ведь не спорит, что в России самыми популярными программными средствами являются ANSYS, ABAQUS, SCAD, LIRA, PLAXIS и т.д. И какова вероятность занять свою нишу в этом уже давно поделенном участке рынка? Да и мало кто захочет переучиваться под новую программу. А вот проблемы интеграции своих программ с мощными расчетными системами и перенос результатов из одной в другую задача намного более востребованная. Мы имеем мощные вычислительные пакеты, на разработку и отладку которых ушло много лет, имеем некую задачу, реализовать которую в одной вычислительной системе подчас весьма сложно, или отсутствуют необходимые нам возможности, которые мы можем сами реализовать.
Этой задачей я занялся при необходимости выполнить параметрическую оптимизацию моделей материалов, для соответствия результатов моделирования группы реальных испытаний с их расчетными моделями. Это еще усугубляется тем, что каждый программный продукт считает по своему и результаты расчетов в ANSYS не будут идентичными расчету в ABAQUS при одинаковых параметрах модели. Это зависит от конкретной реализации расчетов, типов конечных элементов и даже расположения узлов сетки. В итоге инженер вводит параметры материалов, не зная, на сколько точно они соответствуют реальности. Причем вариативность оптимальных параметров может достигать 70% от результатов испытаний, тем более что обработка испытаний выполняется в рамках одной, максимум двух условий прочности, зачастую самых простых, а для сложных моделей не всегда даже известно как определить требуемые параметры, особенно когда их предлагают задать исходя из опыта в каком либо диапазоне.
Именно для решения этой проблемы и была поставлена задача интегрировать программу с расчетным ядром ANSYS. Задача интеграции была успешно решена, хотя и не без проблем. Причем главной проблемой оказалось полное отсутствие документации в свободном доступе, так что я думаю информация по реализации интеграции будет весьма полезна тем, у кого возникли такие же проблемы, как и у меня.
Механизм интеграции
С началом интеграции всех программных продуктов компании ANSYS под единую среду ANSYS Workbench возникла возможность интегрировать свои программы непосредственно с этой средой. Сама архитектура ANSYS Workbench построена на использовании Java и VB скриптов, посредством которых и происходит вызов тех или иных модулей ANSYS, которые называются апплетами (Applets).
Самым первым вариантом, который приходит на ум любому разработчику, что достаточно вызывать из программы написанные ранее или сгенерированные скрипты на Java-Script. Однако такой путь содержит один достаточно серьезный изъян: каждый раз при вызове скрипта необходимо будет заново открывать Workbench, инициализировать апплет ANSYS и только после этого отсылать ядру команды для расчета. Это видно из скрипта, который расположен в C:\Program Files\ANSYS Inc\v110\AISOL\SDK\samples\JPDL\Demo.js. Текст скрипта приведен ниже:
oWB = new ActiveXObject ( «AnsysWB.WB.90» ) ;
oWB. StartApplet = «AAOApplet» ;
oWB. Run ( ) ;
oWB. Title = «ANSYS Workbench» ;
Если генерировать программно скрипты и их запускать, то это будет очень неудобно, т.к. сам скрипт будет выполняться внешним обработчиком, что существенно усложнит его отладку. Да и генерировать скрипт, который отвечает за полный цикл работы очень неудобно.
Главной проблемой было получение дескриптора на среду WorkBench и его сохранение. С этой точки зрения наиболее интересной является часть, отвечающая за загрузку среды Workbench:
oWB = new ActiveXObject ( «AnsysWB.WB.90» ) ;
oWB. StartApplet = «AAOApplet» ;
oWB. Run ( ) ;
oWB. Title = «ANSYS Workbench» ;
При изучении этого и других скриптов у меня возник вопрос: если это может Java-Script, то почему не может C#? И оказалось, что вполне может. При установке ANSYS MS Visual Studio сама находит ссылки на все библиотеки ANSYS, но они, по крайней мере в 11 версии, сильно «урезанные“. Но среди них нашлась библиотека, которая как раз отвечала за программную работу со средой Workbench: AnsysWB, которая подключается в виде пространства имен ANSYSWBLib.
Для запуска ANSYS оказалось достаточно написать следующий код:
Итак, этот код позволяет запустить ANSYS, причем в качестве стартового апплета указан непосредственно апплет классического ANSYS, который и будет запущен. Но далее нам нужно организовать передачу управляющих команд ему, и вот тут возникли сложности. В Java-Script это реализуется следующей строчкой
Где App — ссылка на дескриптор модуля AAOApplet. Она хранится в свойстве класса
Но в 11 версии ANSYS в подключаемых библиотеках я не нашел интерфейса для работы с апплетом ANSYS. К счастью в NET FrameWork есть такая библиотека, как Microsoft.JScript, которая позволяет прямо в памяти компилировать скрипты JScript и исполнять их, причем можно реализовать из C# вызов необходимой функции.
Для этой цели я решил написать свой класс, который бы реализовывал все необходимые возможности, для работы с ANSYS/ Код класса представлен ниже.
class WBCommand
<
ANSYSWBLib. WBClass wb ;
public WBCommand ( ANSYSWBLib. WBClass WB )
<
wb = WB ;
string code = @»function closure()
<
return function (App, Command)
<
return App.Script.ans_sendcommand(Command);
>
>
public void SetWorkingDirectory ( string WorkingDirectory )
<
SendCommand ( «/CWD, » + WorkingDirectory ) ;
>
>
При вызове конструктора моего класса происходит формирование вызываемой процедуры на JScript и сохранение ее точки входа:
string code = @»function closure()
<
return function (App, Command)
<
return App.Script.ans_sendcommand(Command);
>
>
Для вызова ее был реализован метод:
В качестве входного параметра которому необходима текстовая команда, а при вызове JSCript функции дополнительно передается ссылка на апплет, которая была получена в конструкторе и сохранена в переменную aao.
Теперь вызывая метод SendCommand можно будет передавать ANSYS команды на языке APDL из нашего внешнего приложения, выполняя все необходимые действия. Этот метод эмулирует ввод команд непосредственно в командную строку ANSYS, но на многие команды ведь необходимо подтверждение. Для того, что бы избежать запросов на подтверждение действий достаточно не вставлять команды по одной, а записать их в APDL файл и вызвать команду SendCommand («/inp, f, apdl»). В этом случае ANSYS не будет требовать подтверждения на выполнение той или иной операции.
Работу с новыми версиями ANSYS я не проверял, так что возможно сейчас уже можно полностью отказаться от использования JS, но если необходима совместимость с 11 версией, то иного способа интегрировать свою программу я не нашел.
Модуль Pre/Post ANSYS CFX
Мы продолжаем знакомить наших читателей с возможностями современных расчетных комплексов компании ANSYS, Inc. В настоящей статье на примере гидравлического расчета воздуховода системы вентиляции рассмотрены основные приемы работы с программным продуктом ANSYS CFX. Кроме того, для полноты изложения материала мы включили в статью описание последовательности построения расчетной сетки для нашей задачи в ICEM CFD. В этот раз мы создадим сетку, составленную из гексаэдрических элементов. Таким образом, следуя нашим инструкциям, вы всегда сможете без особого труда решить похожую задачу в расчетном комплексе ANSYS CFX.
Прежде всего — несколько слов о модуле ICEM CFD/Hexa. В основе метода построения гексаэд- рической сетки в ICEM CFD лежит понятие блока: практически любая твердотельная модель может быть описана набором блоков, точно повторяющих ее топологию. Например, круглое U-образное колено можно представить в виде шести блоков- параллелепипидов, как это показано на рис. 1.
Рис. 1. Пример блочной структуры.
Для корректного описания некоторых особенностей геометрии (выступов, пазов и пр.) иногда требуется назначить ассоциативные связи между узлами, ребрами и боковыми гранями полученных блоков и соответствующими им геометрическими объектами: точками, линиями и поверхностями 3D-модели. В общем случае эту операцию можно не выполнять.
Рис. 2. Геометрия расчетной модели.
На следующем этапе необходимо указать характерные размеры элементов на ребрах или задать характерные размеры элементов для геометрической модели в целом. И последнее действие — это проецирование граней блока на поверхность модели.
После создания сетки рекомендуется проверить ее качество.
Теперь перейдем к практической части нашего мастер-класса. Вид и основные геометрические размеры расчетного объекта показаны на рис. 2. Это тройник прямоугольного сечения с плавным поворотом на 90°. Поскольку тройник обладает симметрией, достаточно вырезать из него половину и в препроцессоре ANSYS CFX задать на соответствующей поверхности граничное условие симметрии.
Построение гексаэдрической сетки
Рис. 3-8. Этапы построения гексаэдрической сетки.
Результат выполнения этой операции показан на рис. 3.
Рис. 9-10. Завершение построения сетки.
Препроцессор ANSYS CFX
Чтобы начать работу в ANSYS CFX, необходимо загрузить CFX Launcher и далее в поле Working Directory указать рабочую директорию проекта. При выборе имени директории следует учитывать, что Launcher не распознает буквы русского алфавита и специальные символы.
Вызов модуля CFX-Pre производится из главного меню CFX — CFX-Pre — на экране появляется пустое окно проекта. Для создания нового проекта следует перейти в меню File — New Simulations и в режиме General создать файл.
Графическое окно препроцессора условно можно разделить на три области: 1 — область меню, 2 — область дерева модели, 3 — окно просмотра (рис. 11).
Область дерева модели состоит из нескольких закладок: Physics — задание граничных условий, выбор физических моделей; Mesh — операции с расчетной сеткой; Regions — работа с расчетной областью; Expressions — создание выражений (например, для задания профиля скорости на входе); Materials — выбор материалов и указание их свойств; Reactions — выбор моделей горения или описание химических реакций.
После создания нового файла мы автоматически попадаем в закладку Mesh. Для импорта сетки нажимаем на кнопку Import mesh, находящуюся в правой части закладки. Указываем тип сетки (Mesh Format), то есть в нашем случае — ICEM CFD, выбираем нужный файл и размерность единиц — мм. В общем случае можно импортировать несколько сеток и соединить их интерфейсами.
После импорта сетки необходимо определить расчетную область (Domain) и все физические условия в ней. Команда определения расчетной области вызывается из главного меню следующим образом: Create — Flow Objects — Domain. После указания имени на экране должна появиться панель Edit Domain, где мы указываем тип расчетной области — Fluid Domain, рабочее тело — Air Ideal Gas и относительное давление — 101 325 Па.
Далее переходим в закладку Fluid Models и в списке Heat Transfer Model выбираем изотермический (Isothermal) расчет. Устанавливаем температуру рабочего тела в расчетной области равной 50 °С. В качестве модели турбулентности выбираем Shear Stress Transport (SST).
Рис. 11. Окно препроцессора ANSYS CFX (CFX-Pre).
Следующий шаг создания расчетной модели — это задание соответствующих граничных условий на границе расчетной области. Мы будем использовать следующие типы граничных условий: Inlet (Вход), Opening (Свободный выход), Symmetry (Симметрия) и Wall (Стенка). Расстановка граничных условий осуществляется командой Create—Flow Objects—Boundary Conditions.
Рис. 12. Панель Define Run.
На входе задаем скорость (Normal speed) 20 м/с и начальный уровень турбулентности потока 5%. На выходе задаем условие Opening с опцией Opening Pressure and Directions. В поле Relative Pressure задаем давление 0 Па и указываем направление потока (Flow Direction) как перпендикулярное плоскости выхода. На боковой стенке половины тройника ставим условие симметрии Symmetry.
По умолчанию на оставшихся поверхностях будет задано граничное условие Wall (No Slip).
В меню Solver control (Create—Flow Objects — Solver Control) задаются параметры, которые определяют процесс расчета: метод расчета, критерий сходимости, число итераций и шаг по времени. В нашем случае мы укажем максимальное число итераций (Max. Iterations) — 1000 и выберем опцию автоматического определения шага по времени Auto Timescale.
Сохраняем все настройки расчетного варианта в файл-описание (*.def): File — Write Solver File. После выполнения этого действия автоматически загрузится Solver Мanager, а на экране появится панель Define Run (рис. 12).
Рекомендуемые сочетания граничных условий
Поскольку в любой задаче обязательно существует несколько типов граничных условий (ГУ), возникает вопрос об оптимальном их сочетании и даже о корректности совместного использования некоторых типов ГУ.
Наиболее устойчивым сочетанием ГУ является задание скорости или массового расхода на входе и статического давления на выходе расчетной области. В этом случае полное давление на входе определяется расчетом.
Также весьма устойчивым является сочетание полного давления на входе и скорости или расхода на выходе. Статическое давление на выходе и скорость на входе определяются расчетом. Однако комбинация полного давления на входе со статическим давлением на выходе является очень чувствительной к начальным значениям. Массовый расход при этой комбинации ГУ определяется расчетом.
Не рекомендуется задавать статическое давление на входе и выходе. Массовый расход и полное давление на входе являются результатами расчета, однако граничные условия слабо обусловливают расчетную область. Задание полного давления на выходе является недопустимым.
Если при заданном условии Outlet на выходе рядом с расчетной границей возможно формирование рециркуляционной зоны, то на этой границе рекомендуется использовать условие Opening. Можно также попробовать удлинить расчетную область, переместив таким образом границу выхода подальше от зоны обратных токов.
Для запуска варианта на расчет сначала указываем путь до файла-описания, а затем нажимаем на кнопку Start Run в левом нижнем углу панели Define Run. На экране появятся два окна, отображающие состояние процесса расчета: графики сходимости по основным переменным и сводные данные для каждой итерации.
В случае необходимости расчет можно остановить нажатием кнопки Stop Current Run. В конце расчета будет выведено общее процессорное время, а также невязки по основным переменным.
В заключение отметим, что все команды, вызываемые из главного меню, продублированы на экране в виде иконок:
Иконки упорядочены таким образом, что для задания варианта расчета нужно только последовательно пройтись по ним слева направо.
Постпроцессор ANSYS CFX
Рассмотрим кратко интерфейс постпроцессора ANSYS CFX и методы работы с ним.
Постпроцессор ANSYS CFX работает с файлами результатов (*.res, *.trn), файлами сеток в собственном формате (*.gtm), файлами ошибок, генерируемых решателем (*.res.err), файлами-описаниями (*.def) и др.
Кроме того, все геометрические объекты (и их настройки), созданные во время текущей сессии, могут быть сохранены в специальный файл-состояние (State file) с расширением *.cst. Заметим, что файл-состояние не содержит объекты, а лишь указывает путь к ним.
Сразу же можно заметить, что постпроцессор ANSYS CFX имеет схожий с препроцессором интерфейс, поэтому главное окно CFX-Post так же легко делится на три условные зоны: 1 — дерево постпроцессора (выбор объектов), 2 — редактирование настроек объектов, 3 — окно просмотра (см. рис. 13).
Рис. 13. Окно постпроцессора (CFX-Post).
Постпроцессор ANSYS CFX предоставляет пользователю разнообразные способы отображения расчетной геометрии, полный набор существующих методов визуализации расчетных переменных, возможность расчета интегральных характеристик течения на любом объекте, анимацию и многое другое. Однако для первого знакомства с ANSYS CFX достаточно рассмотреть только стандартные методы визуализации (векторное представление и градиентную заливку) и способ детализации течения, а также научиться строить графики.
Создание геометрического объекта
В постпроцессоре ANSYS CFX можно создать следующие геометрические объекты: точки (Point), облако точек (Point Cloud), линии (Line), плоскости (Plane), поверхности (Isosurface — изоповерх- ности и Surface of Revolution — поверхности вращения), объемы (Volume) и сплайны (Polyline).
Для создания геометрических объектов применяется команда Create^Location и далее из выпадающего списка выбирается нужный объект, например плоскость. Затем следует присвоить имя новой плоскости (Plane 1) и нажать на Apply. На экране слева (область 2) появится панель редактирования свойств объекта (рис. 14).
Рис. 14. Панель редактирования свойств объекта.
Для создания плоскости могут использоваться следующие способы (Definition Method) из закладки Geometry: Three Points — по трем точкам, Point and Normal — по точке и нормальному вектору, XY/YZ/ZX Plane — по любым двум ортам.
Мы применили метод ZX Plane. С помощью ползунка можно перемещать секущую плоскость по нормали (ось Y) вверх-вниз.
Для отрисовки линий пересечения граней элементов расчетной сетки с плоскостью следует перейти в закладку Render, убрать галочку напротив Draw Faces и поставить ее напротив Draw Lines. Далее необходимо поменять режим Colour Mode с Default на User Specified и выбрать цвет линии. Вид секущей плоскости представлен на рис. 15.
Рис. 15. Вид секущей плоскости.
Заливка
Для тоновой заливки плоскости необходимо выполнить следующие действия: перейти в закладку Colour и изменить режим цвета c Constant (постоянный) на Variable (переменный). После этого из списка Variable следует выбрать нужную переменную (Pressure, Temperature, Total Pressure…) и указать диапазон изменения (Range) значений расчетной переменной (по умолчанию — Global, то есть максимальное и минимальное значения переменной, полученные во всей расчетной области). Затем нужно нажать на кнопку Apply. Как видите, изображение в окне просмотра осталось прежним. Но здесь все верно — просто мы забыли в закладке Render снять галочку напротив Draw Lines. На рис. 16 представлено поле давлений.
Рис. 16. Поле давлений.
Создание векторов
Для создания векторов используется команда Create—Vector.
В качестве опорного объекта в поле Locations указываем плоскость Plane 1. В списке режимов дискретизации (Sampling) выбираем Equally Spaced (равноотстоящие векторы) и в поле параметра # of Points указываем нужное число векторов. В качестве переменной (для раскраски векторов) выбираем скорость (Velocity). Результат приведен на рис. 17.
Длина векторов регулируется параметром Symbol Size, который находится в закладке Symbol. Если вы хотите, чтобы все векторы имели одинаковую длину, используйте операцию Normalize Symbols.
Рис. 17. Вектора скоростей.
Детализация структуры течения
В начале статьи мы высказали предположение, что за поворотом должна сформироваться отрывная зона. И теперь было бы неплохо более детально рассмотреть структуру потока на этом участке, чем мы сейчас и займемся.
Теперь, если мы выберем режим Below Intersection, то получим сферу, а если Above Intersection — объем, полученный вычитанием из объема расчетной области объема сферы.
Следующий шаг — построение линий тока, ограниченных объемом сферы. Команда построения линий тока вызывается из главного меню Create—Streamline. Используем следующие настройки объекта Streamline: Type — 3D Streamline, Start From — Volume 1, Reduction — Max Number of Points, Max Points — 50, Variable — Velocity, Direction — Forward.
Для отображения на экране точек, из которых будут запущены треки, нажмите на кнопку Preview Seed Points .
После этого в разделе Symbol мы должны поставить галочку напротив Draw Symbols (отрисовка символов) и выбрать символ — это может быть Arrowhead (острие стрелки), Ball (шар), Fish3D (рыбка) и др. Мы остановили свой выбор на Arrowhead (рис. 18).
Рис. 18. Структура вихревой зоны.
Создание двумерного графика
В заключение расскажем о том, какие действия надо выполнить в постпроцессоре ANSYS CFX, чтобы построить график изменения какой-либо расчетной величины вдоль произвольной кривой.
Сразу же оговоримся, что мы рассмотрим самый общий случай — когда кривая создается непосредственно в постпроцессоре, а не импортируется извне.
Предварительной операцией по созданию кривой является построение срединной поверхности, которая для постпроцессора является типичной User Surface (поверхность пользователя). Выполняем команду Create^Location^ User Surface. В закладке Geometry выбираем метод построения поверхности Offset From Surface (эквидистантная поверхность). В качестве опорной поверхности используем одну из стенок воздуховода (на рис. 19 она выделена синим цветом).
Рис. 19. Срединная поверхность.
В поле Distance указываем расстояние, на которое перемещается опорная поверхность, — в нашем случае это 100 мм. Все остальные настройки оставляем без изменений. Нажимаем на кнопку Apply. Срединная поверхность (User Surface 1) построена.
После этого создаем контур (Contour) с помощью команды Create ^Contour. В качестве Locations указываем поверхность User Surface 1, выбираем переменную Pressure и задаем число контуров (# of Contours) равным 3. В результате срединная поверхность приобретет вид двух полос-контуров (на рис. 19 — желтая и бирюзовая полосы).
Теперь приступим к созданию самой кривой (Polyline 1): Create ^Location ^Polyline. Выбираем метод From Contour (Извлечь из контура) и указываем контур (Contour). Нажимаем на кнопку Apply. На этом процедуру построения вспомогательной кривой можно считать завершенной.
Рис. 20. Панель Chart.
Для создания графиков используется команда Create ^Chart. Переходим в закладку Chart Line и в списке Locations выбираем Polyline 1. В качестве переменной, значения которой будут откладываться по оси Х, указываем Chart Count, а по оси Y — Pressure (рис. 20).
10 полезных функций в Mechanical R16
Компания Делкам-Урал продолжает информировать читателей о новостях инженерного мира ANSYS. В этот раз из всех новых возможностей 16го релиза мы отобрали для вас 10 нововведений общего характера, которые могут оказаться полезными при решении разнообразных задач.
1. Отображение критерия качества элементов в графическом окне
Новая опция настроек отображения сетки позволяет легко показывать параметры качества элементов (например, отношение сторон, асимметрию, качество элементов и т.д.) прямо на модели. По умолчанию отдельным телам в графическом окне присваивается какой-нибудь цвет, однако, в опции ветки дерева Mesh – Display Style можно переключить отображение на вывод соответствующего параметра, как показано на рисунках ниже:
Рисунок 1 A – Отображение параметра «Element Quality» на модели
Рисунок 1 B – Новые значения параметра качества после перестроения сетки
Рисунок 1 C – Выпадающий список в настройках отображения
2. Сохранение снимка экрана в буфер обмена
Как часто, например, при формировании отчетов приходится делать снимок экрана, вставлять его в графический редактор, обрезать или сразу сохранять в файл чтобы потом в свою очередь вставить его в документ Word или презентацию PowerPoint? Новая возможность копирования изображения в буфер может существенно упростить этот нудный процесс. Теперь достаточно только настроить нужный вид в графическом окне, щелкнуть ПКМ и выбрать команду «Image to Clipboard». Или даже просто нажать комбинацию «Ctrl + C». При вставке в документ вы получите именно содержание активного графического окна. Вот как это выглядит:
Рисунок 2 – Щелчок ПКМ и Image to Clip Board в графическом окне
3. Балочная формулировка контакта
В версии 15 эта функция была реализована как бета-опция. И для тех, у кого не было возможности опробовать ее раньше, приятной новостью станет то, что в 16й версии эта настройка теперь полностью доступна в обычном интерфейсе. Идея введения здесь заключается в замене «традиционных» методов жесткой склейки «Bonded» (на основе расширенного метода множителей Лагранжа) или уравнений связи (MPC) на балочную формулировку. Таким образом, с ее помощью между контактными поверхностями автоматически создаются невесомые линейные балочные элементы. В случаях с переопределенными контактными и MPC связями моделями балочная формулировка позволит избежать конфликтов между связями и сделает задачу более линейной.
Рисунок 3 – Балочная формулировка контакта типа «Bonded»
4. Адаптивное перестроение сетки в нелинейном расчете
Для тех, кого выводили из себя сообщения об ошибках расчета, вызванных чрезмерным искривлением некоторых конечных элементов (“Element xyz … has become highly distorted…”), настоящим подарком станет новость о появлении в 16й версии инструментов для адаптивного перестроения сетки «Nonlinear Adaptive Region». Эта функция является новой и пока только развивается, но и она в своем нынешнем состоянии при определенных условиях способна помочь в решении задач с сильно искривляющимися элементами путем остановки решения, перестроения сетки и продолжения расчета. Все, что необходимо знать об этом инструменте на данный момент, приведено в справке по 16й версии Mechanical. Его применение серьезно ограничено, однако, его самый существенный недостаток – это то, что метод адаптивного перестроения работает только для сильно искривленных элементов подверженных большим и неоднородным деформациям. Имеется в виду невозможность применения для нестабильных материалов, численной неустойчивости или случаев потери устойчивости самой конструкцией.
Как показано на рисунке 4 A, объект «Nonlinear Adaptive Region» может быть добавлен в ветку «Solution» дерева модели. Инструмент применяется к телам и имеет гибкий набор опций для пользовательской настройки.
Рисунок 4 A – Настройки «Nonlinear Adaptive Region»
Если решатель обнаруживает, что значение выбранного параметра в расчете равно или превышает критерий, то он выдает сообщение подобного содержания:
**** REGENERATE MESH AT SUBSTEP 5 OF LOAD STEP 1 BECAUSE OF
NONLINEAR ADAPTIVE CRITERIA
Перестроение сетки будет также отражено в таблице с результатами, как это показано на рисунке 4 B.
Рисунок 4 B – По таблице результатов видно, что на одном из подшагов произошло перестроение сетки
Рисунок 4 C – До и после адаптивного перестроения сетки
5. Моделирование тепломассообмена с помощью элементов FLUID116
В предыдущих версиях применение этого типа элемента реализовывалось через бета-опции. Суть нововведения заключается в том, что в 16й версии элементы типа ANSYS Mechanical APDL FLUID116 теперь можно использовать в интерфейсе Mechanical без командных вставок. Такие элементы имеют одну степень свободы – температуру, а также учитывают эффекты одномерного течения среды. Это означает, что в них заложена модель пониженного порядка для расчета теплообмена, вызванного движением среды по каналу, без явного учета модели этого канала. Путь переноса тепла задается с помощью линейного тела.
Поперечное сечение для линейного тела задается в CAD и переносится в Mechanical в виде именованного набора. Взаимодействие элементов теплопровода с нужными поверхностями модели осуществляется с помощью конвекции. После задания конвекции на соответствующих поверхностях необходимо переключить опцию «Fluid Flow» на «Yes» и создать соответствующий именованный набор из линейного тела. Также к линейному телу нужно приложить граничные условия, такие как температура и массовый расход как показано на рисунке 5.
Рисунок 5 – Наверху показано граничное условие, заданное с помощью линейного тела, разбитого на элементы FLUID116
6. Настройка проверки решателем главных элементов матрицы
Новая опция в настройках анализа Analysis Settings – Solver Controls позволит вам по возможности продолжить решение, остановленное из-за проблем с главными элементами матрицы, возникающими из-за недостаточно закрепленной расчетной модели или незакрытых контактных пар.
Есть разные варианты настройки: Program Controlled, Warning, Error и Off. Настройку «Warning» следует применять, если вы хотите, чтобы после обнаружения проблем с главными элементами решение продолжалось. При заданном параметре «Error» решение задачи остановится при возникновении соответствующих проблем. Настройка «Off» отключает проверку на ошибки главных элементов, в то время как при «Program Controlled», задаваемой по умолчанию, реализация того или иного сценария будет зависеть от самого решателя.
Рисунок 6 – Опция проверки главных элементов в настройках анализа
7. Трекер контактных результатов
Рисунок 7 A – Инструменты отслеживания контактных результатов в дереве
Отображать можно различные контактные результаты, такие как число контактирующих точек, зазор, взаимное проникновение и т.д.
Рисунок 7 B – Настройки отображения результатов в трекере
Значения отслеживаемых параметров можно отображать в реальном времени в процессе решения (рисунок 7 C).
Рисунок 7 C – Отслеживание увеличения зазора в контактной паре в процессе решения задачи
8. Группирование объектов дерева
Работу с большими сборками или другими сложными моделями сделали более удобной путем добавления возможности группирования объектов дерева. Группы могут состоять из объектов дерева, таких как геометрические объекты, системы координат, разнообразные соединения, граничные условия и даже результаты. Их объединение осуществляется простым выбором нужных объектов в дереве и последующим кликом ПКМ на них и выбором команды «Group», как показано на рисунке 8 A.
Рисунок 8 A – Объединение граничных условий в одну группу
При этом в дереве создастся папка, которой можно дать какое-нибудь уникальное имя. На рисунке 8 B показано как граничные условия были сгруппированы в такую папку.
Рисунок 8 B – Группа граничных условий с соответствующим названием
При необходимости можно отменить группирование с помощью ПКМ на объекте и выбора «Ungroup». Помимо этого доступна возможность объединять в группы однородные объекты путем ПКМ на каком-нибудь представительном объекте и выбора «Group Similar Objects».
9. Новый способ загрузки результатов
В дополнение к отображению информации о перестроения сетки на подшагах при применении упомянутой выше функции появилась возможность быстро вызывать результаты по щелчку ПКМ на таблице с подшагами. С этим нововведением время отображения результатов по напряжениям и деформациям для конкретного момента времени существенно сократится.
Процедура весьма проста:
· ЛКМ на ветке «Solution» в дереве.
· ЛКМ на нужном шаге расчета в таблице.
· Щелкнуть ПКМ на этой строке и выбрать «Create Total Deformation Results» или «Create Equivalent Stress Results», как показано на рисунке 9.
После этого в дереве появятся соответствующие результаты, которые нужно будет сгенерировать, чтобы увидеть их отображение.
Рисунок 9 – ПКМ на таблице чтобы вызвать отображение полных перемещений или эквивалентного напряжения с соответствующего шага
Самое забавное – возможность «взрывать сборку» – мы оставили для финала. Эта функция позволит вам разделять детали сборки, что возможно сделает ее более удобной для визуализации и изучения взаимодействия между частями. Для использования этого инструмента убедитесь, что отображение панели «Explode View Options» включено в настройках вида. У команды есть опция, касающаяся выбора точки, относительно которой будут двигаться детали. Это могут быть: центр сборки и глобальная или пользовательская системы координат.
Рисунок 10 A – Панель инструментов «Explode View»
Как видно из рисунка 10 A на панели есть ползунок, который позволяет контролировать «уровень» растаскивания деталей. Имейте в виду, что это только графический инструмент, применение которого никак не влияет на саму сборку.
На рисунке 10 B показана сборка в разобранном виде.