========================================== Настройка интеграции 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 Рис. Пример графиков результатов, получаемых в Прадис