МЕТОДЫ АВТОМАТИЗАЦИИ РАСЧЕТОВ В CAE-ПАКЕТЕ ANSYS С ПОМОЩЬЮ ТЕХНЛОГИИ ACT
Морозов Д.И.1, Смирнов А.П.2
1Магистрант, Сибирский федеральный университет
2Магистрант, Сибирский федеральный университет
МЕТОДЫ АВТОМАТИЗАЦИИ РАСЧЕТОВ В CAE-ПАКЕТЕ ANSYS С ПОМОЩЬЮ ТЕХНЛОГИИ ACT
Аннотация
Работа с CAE-программой Ansys требует специальные знаний для настройки самой среды, конкретного численного эксперимента и получаемых результатов. Для решения таких монотонных задач была разработана технология ACT, с помощью которой можно автоматизировать монотонные действия. В данной статье кратко рассмотрены основные методы автоматизации расчетов с помощью технологии ACT. Приведены основные инструменты для выполнения автоматизации и рассмотрен пример задания автоматической упорядоченной сетки.
Ключевые слова: автоматизация, ANSYS, ACT
Morozov D.I.1, Smirnov A.P.2
1Undergraduate, Siberian federal university
2Undergraduate, Siberian federal university
METHODS OF AUTOMATICAL CALCULATIONS IN ANSYS CAE-PACKAGE WITH ACT TECHNOLOGY
Abstract
The use of Ansys CAE-program requires a special knowledge to configure the environment itself, a particular numerical experiment and results obtained. ACT technology has been developed in order to solve these monotonous tasks, it is used to automate repetitive actions. This article briefly describes the main methods of calculation automation with the help of ACT technology. The automation tools are described, the example of automatic ordered grid setting is considered in the paper.
Keywords: automation, ANSYS, ACT
В настоящее время в своей работе инженеры-разработчики все чаще сталкиваются с программными пакетами для выполнения широкого ряда инженерных расчетов, так называемыми CAE-пакетами, которые внутри себя включают сложные математические модели для выполнения моделирования различных воздействий на проектируемые изделия. Одним из наиболее распространенных программных комплексов для выполнения инженерных расчетов является ANSYS. В состав данного пакета входит множество различных модулей, позволяющих выполнять расчеты в самых различных областях. На данный момент работа данным программным пакетом выполняется через современную программную оболочку, называемую ANSYS Workbench.
Однако работа с такими программными продуктами зачастую требует специальных знаний для настройки самой среды, конкретного численного эксперимента и получаемых результатов. Все это приводит к сложной монотонной работе, которую требуется выполнять перед проведением каждого эксперимента и для каждой модификации проектируемого изделия.
В качестве решения этих проблем в последних версиях ANSYS был разработан функционал называемый ACT (Application Customization Toolkit), который представляет собой специализированный набор инструментов для адаптации и автоматизации расчетов на базе ANSYS Mechanical в среде ANSYS Workbench. Также он предоставляет широкие возможности для создания, адаптации и настройки «дружелюбного» пользователю функционала, а также реализацию собственных «ноу-хау». Данный инструмент позволяет объединить весь потенциал языков программирования, используемых в среде ANSYS Workbench, а также языка APDL, который также в свою очередь позволяет выполнять автоматизацию данной среды, но является более старой разработкой, однако имеет более глубокую интеграцию с ядром решателя ANSYS.
Если более подробно остановиться на рассмотрении функционала ACT, то следует выделить следующие основные возможности, которые описаны ниже.
Интеграция APDL-макросов в ANSYS Mechanical. При помощи ACT возможно создать дополнительные кнопки и элементы меню, интегрирующие макросы на языке APDL в проект и обеспечивающие возможность использования сложных команд даже теми инженерами, кто не владеет соответствующими навыками. Создаваемые элементы меню и кнопки выглядят так же, как и любой другой стандартный элемент графического интерфейса ANSYS Mechanical. Интегрируемые APDL- макросы при этом защищаются от нежелательных исправлений для 100% гарантии работоспособности.
Расширение функционала APDL. Эта возможность позволяет сблизить функционал Mechanical Workbench с MAPDL, реализуя незапрограммированные возможности.
Реализация новых функций пре/постпроцессинга (пользовательские нагрузки, граничные условия и результаты). Добавленные нагрузки и граничные условия появятся в дереве проекта со всеми настройками и определениями как для стандартных элементов Mechanical, включая указание геометрии и возможности параметризации. Команды, включенные в элемент, будут отправлены в решатель после формирования входного файла при нажатии кнопки Solve. Если необходимо отобразить результат согласно отраслевому стандарту или стандарту предприятия, то это возможно с помощью ACT. Новый результат может вычисляться на основе стандартных компонентов по сложным математическим соотношениям или на основании работы внешнего обработчика результатов.
Интеграция собственных решателей и обработчиков в интерфейс ANSYS Mechanical. С помощью ACT можно интегрировать в интерфейс ANSYS Mechanical собственные расчетные коды. При этом останутся доступны возможности среды ANSYS Workbench и интерфейса ANSYS Mechanical, в т.ч. двусторонняя ассоциативная связь с CAD-системами, возможность построения расчетных сеток и обработки результатов.
Риc. 1 – Пример работы Wizard, реализованного с помощью технологии ACT
Реализация расширений ACT возможна различными вариантами. Во-первых, существует возможность реализовать дополнительный пользовательский функционал через создание новых меню и кнопок в окнах требуемых инструментов (например, в окне Modeller), с помощью которых можно выполнять вызов форм или скриптов, для автоматизации определенных действий. Во-вторых, существует возможность создавать Wizard для выполнения настройки эксперимента шаг за шагом через интерфейс, пример представлен на рисунке 1. Например, как в данном случае на рисунке 1, работая с таким расширением можно выбором понятных параметров шаг за шагом прийти к построению модели фланца с требуемой геометрией.
Рис. 2 – Инструменты ACT
Для разработки расширений ACT в 17 версии ANSYS существуют следующие инструменты: Extension Manager, ACT Console. Кроме этого существует возможность просмотра лога работы расширений, их компилирования, а также через страницу ACT Start Page можно выполнять создание Wizards. Выполнение разработки скриптов ведется на языке IronPython 2.7, который встроен в ANSYS.
Рис. 3 – Окно ACT Console во время работы
Основным же инструментом для разработки и отладки приложений и скриптов для ACT является ACT Console. Преимуществом данного инструмента является возможность отладки скриптов в любом модуле ANSYS, который поддерживает ACT. Кроме этого в данном инструменте можно интерактивно выполнять команды, а также поиск методов и атрибутов объектов ANSYS с помощью встроенных функций type(), dir() и print(). Однако существует проблема с отладкой скриптов, заключающаяся в том, что в языке Python нет дебаггера, но его роль может выполнить дебаггер среды Microsoft Visual Studio, о настройке данной опции существует раздел в справке по работе с ACT.
Входной точкой для начала автоматизации с использованием ACT является интерфейс IExtAPI, расположенный в пространстве имён «Ansys.ACT.Interfaces». Динамическая библиотека с этим интерфейсом располагается в папке %ANSYS172_DIR%\Addins\ACT\bin\Win64\ Ansys.ACT.Interfaces.dll. Этот путь верен для версии ANSYS v17.2, для других версий пакета ANSYS переменная среды окружения будет иной. Для каждого расширения Workbench существует глобальная переменная ExtAPI, которая дает доступ к свойству DataModel типа IDataModel, которое возвращает объект для доступа ко всем интерфейсам верхнего уровня этого пакета.
Рассмотрим два основных:
- Project – открывает доступ к иерархии расчётного проекта, позволяет создавать исследования, связывать их и управлять файлами.
- Context – открывает доступ к контекстным командам и утилитам, не связанным непосредственно со структурой проекта.
В коде доступ к этим объектам будет выглядеть следующим образом:
import clr
clr.AddReference('Ansys.ACT.Interfaces')
import Ansys.ACT.Interfaces
project = ExtAPI.DataModel.Project
context = ExtAPI.DataModel.Context
Для облегчения подключения к функционалу ANSYS в поставку входят модули, которые можно подключить к своему коду вместо непосредственного обращения к dll. Эти модули лежат в папке %ANSYS172_DIR%\Addins \ACT\libraries\. В этой папке лежат следующие заголовочные файлы: DesignModeler.py, Mechanical.py, Project.py, SpaceClaim.py, Study.py. В отличие от вышеописанных некоторые модули невозможно определить, не зная контекста, в котором они должны быть использованы, например, модуль с материалами будет различным для конкретного исследования Static Structural и общего проекта, который может состоять из нескольких таких исследований. Для того, чтобы разрешить эту неопределённость подобные модули написаны отдельно для каждого контекста, например, materials.py существует в трех вариациях:
- libraries/Mechanical/materials.py
- libraries/Project/materials.py
- libraries/Study/materials.py
Пример использования модуля materials представлен ниже:
import materials
mat = ExtAPI.DataModel.GeoData.Assemblies[0].Parts[0].Bodies[0].Material
prop = materials.GetMaterialPropertyByName(mat,"Elasticity")
val = materials.InterpolateData(prop["Temperature"][1:],prop["Young's Modulus"][1:],10.)
После того, как получен указатель на объект DataModel через него можно получить доступ ко всему функционалу, связанному с построением трехмерных моделей, сетки и граничных условий. Крайне скудное и неподробное описание методов, которыми обладает этот интерфейс можно найти в документе “ACT Developers Guide”, который можно скачать с официального сайта поддержки ANSYS. Пример задания автоматической упорядоченной сетки приведен ниже:
mesh = ExtAPI.DataModel.Project.Model.Mesh
mesh_method = mesh.AddAutomaticMethod()
mesh_method.Method = MethodType.AllTriAllTet
mesh_method.Algorithm = MeshMethodAlgorithm.PatchIndependent
mesh_method.MaximumElementSize = Quantity("0.05 [m]")
mesh_method.FeatureAngle = Quantity("12.000000000000002 [degree]")
mesh_method.MeshBasedDefeaturing = True
mesh_method.DefeaturingTolerance = Quantity("0.0001 [m]")
mesh_method.MinimumSizeLimit = Quantity("0.001 [m]")
mesh_method.NumberOfCellsAcrossGap = 1
mesh_method.CurvatureNormalAngle = Quantity("36 [degree]")
mesh_method.SmoothTransition = True
mesh_method.TetraGrowthRate = 1
В результате можно сказать, что разработка нового функционала с применением технологии ACT помогает увеличить скорость выполнения типовых расчетов за счет того что часть действий, которые пользователь обычно выполняет во время работы будут выполняться автоматически. А в некоторых случаях, как например, при использовании визардов, так и совсем позволяет автоматизировать выполнение построения модели, настройки и выполнения расчета.
Список литературы / References
- Free Engineering Simulation Software for Students [Electronic resource] // ANSYS Inc. - 2016. - URL: http://www.ansys.com/products/academic (accessed: 30.10.2016).
- Python 2.7.13 documentation // Python Software Foundation. - 2016. -URL: https://docs.python.org/2/ (accessed: 30.10.2016).