==========================================
Настройка интеграции PRADIS и ANSYS Fluent
==========================================
Настройка PRADIS
----------------
2d случай: моделирование прямоточной трубы
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. figure:: media/pradis_fluent1.png
:width: 500px
Рис. 1
Рис. Пример тестовой схемы для проверки совместной работы Прадис и
Fluent.
.. figure:: media/pradis_fluent2.png
:width: 500px
Рис. Пример настроек для источника скорости
- Выставить размер шага в Dynamic, соответствующий настройкам во
Fluent:
.. figure:: media/pradis_fluent3.png
:width: 500px
Рис. Красным отмечены параметры, относящиеся к настройкам времени
интегрирования, которые согласуются с аналогичными (подобными)
настройками во Fluent.
3d случай: пример с твердотельными трубками, одним входом и 2 выходами
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Каждая граница моделируется парой портов — “Input”, “Output”.
| На вход подается давление, на выход суммарный массовый расход по
границе.
.. figure:: media/pradis_fluent4.png
:width: 500px
Рис. Схема с одним входом и 2 выходами
Настройка ANSYS Fluent
----------------------
- | Выставить параметры в в файле, содержащем UDF функции:
| int INX_SIZE = 3; - число входных портов;
int OUTX_SIZE = 3; - число выходных портов;
- Собрать libudf.dll (см. «Сборка dll библиотеки с UDF для Fluent»);
| При этом в терминале Visual Studio command prompt необходимо
указать путь к директории установки Fluent, например:
| $ set FLUENT_INC=D:\\Programs\\ANSYS\\v192\\fluent;
| и путь к утилите resolve, например:
| $ set PATH=D:\\Programs\\ANSYS\\v192\\fluent\\ntbin\\win64;%PATH%
- Настройка среды\*:
открыть «Монитор брандмауэра Защитника Windows»,
.. figure:: media/pradis_fluent5.png
:width: 500px
Создать правило → далее → «путь Программы»
| (Например,
D:\\Programs\\ANSYS\\v192\\fluent\\fluent19.2.0\\win64\\2d\\fl1920.exe)
→ далее → далее → указать имя.
Проделать процедуру добавления правила для нескольких возможных
случаев:
2d, 2d_node, 2ddp_node.
- Скопировать файл вида fl*1920.exe из папки, соответствующей пути, по
которому собрана dll (точное название файла можно узнать, открыв dll
файл в Dependency Walker) в рабочий каталог, например:
| название директории с целью:
`D `__\ `:\\ `__...\\libudf\\win64\\2d ;
| название директории с файлом вида fl*1920.exe:
`D:\\ `__...\\ANSYS\\v192\\fluent\\fluent19.2.0\\win64\\2d
.. figure:: media/pradis_fluent6.png
:width: 500px
- Загрузить скопированный в рабочую директорию (согласно инструкции, с
одним замечанием — при загрузке dll не нужно указывать расширение):
.. figure:: media/pradis_fluent7.png
:width: 500px
- Назначить UDF функции во вкладке User Defined:
и во вкладке «Boundary Conditions», граница «inlet»:
.. figure:: media/pradis_fluent8.png
:width: 500px
.. figure:: media/pradis_fluent9.png
:width: 500px
- сопоставить настройки времени с аналогичными в Прадис*\*
.. figure:: media/pradis_fluent10.png
:width: 500px
- прописать ip адрес и порт в файле inlet.ini, который должен лежать в
рабочем каталоге:
.. figure:: media/pradis_fluent11.png
:width: 500px
| - запустить процесс моделирования в Прадис, и, убедившись, что в
терминале выведено сообщение:
| «The address of host (in . notation): 192.168.X.XXX Successfully
binded»;
| - запустить расчет во Fluent.
- \* - необходимость этого пункта нужно проверить, вычитано на форуме
`[TUTORIAL] Run fluent on distributed memory with 2 windows 7 64 bit
machines - Page 3 -- CFD Online Discussion Forums
(cfd-online.com) `__
\*\* - при выставлении количества шагов, в точности равным значению
параметра «Конечное время интегрирования» в Прадисе, процесс
моделирования, запущенный во Fluent'е, может зависнуть.
Предложения по Client API
-------------------------
-
- `unsigned int domain_id_count() const;`
- `unsigned int get_domain_id(int index) const;`
- `get's для INX_SIZE, OUTX_SIZE` – в принципе, они равны
`pradis_get_boundaries_count();`
- `char\* get_model_sch_name(); std::string get_model_sch_name()
const;`
- `unsigned int get_in_size() const;`
- `unsigned int get_out_size() const;`
- `unsigned int get_port() const;`
- `char\* get_network_name(); std::string get_network_name() const;`
Примеры результатов моделирования
---------------------------------
.. figure:: media/pradis_fluent12.png
:width: 500px
Рис. Графики сходимости процесса моделирования.
.. figure:: media/pradis_fluent13.png
:width: 500px
Рис. Результаты расчета расхода можно проверить с помощью
интегрированных средств.
.. figure:: media/pradis_fluent14.png
:width: 500px
Рис. Пример графиков результатов, получаемых в Прадис