Оптимизация инженерных расчётов в ЛОГОС на базе DT Seven
В современном инженерном проектировании особое место занимает использование систем CAE, которые позволяют моделировать сложные физические процессы, проводить расчет прочности, тепловых и гидродинамических характеристик. Одним из мощных инструментов в этой области является программный продукт ЛОГОС — отечественное мультифизическое программное обеспечение, разработанное в ФГУП «РФЯЦ-ВНИИЭФ» (Росатом). ЛОГОС предназначен для решения задач статического и динамического нагружения, теплообмена, гидродинамики и электромагнетизма.
Для эффективной автоматизации расчетных процессов и интеграции различных инженерных задач используется DT Seven — десктопное кроссплатформенное приложение компании DATADVANCE.
DT Seven позволяет строить автоматизированные расчетные схемы, объединять различные инженерные приложения в единую цепочку расчетов, проводить оптимизацию и создавать предиктивные модели на основе встроенных алгоритмов машинного обучения. Интеграция DT Seven и ЛОГОС предоставляет возможность инженерам оперативно получать точные и надежные результаты, эффективно управлять сложными проектами и существенно сокращать затраты времени и ресурсов на проведение расчетов.
Возможности программного продукта DT Seven
DT Seven включает в себя различные инструменты для автоматизации инженерных расчетов, позволяя объединять различные программы и решения в единую расчетную цепочку. Основные возможности DT Seven включают:
Интеграция и построение расчетных схем

Построение расчетных схем в DT Seven позволяет объединять отдельные расчеты в единую цепочку. Каждый блок схемы выполняет конкретную задачу: запуск решателя, перестройка геометрии, анализ данных и т.д. Расчетная цепочка обеспечивает интеграцию с CAD, CAE-пакетами, такими как ЛОГОС для автоматической передачи данных между различными этапами расчета. Это избавляет инженера от ручного выполнения многочисленных шагов, сокращает вероятность ошибок и ускоряет весь процесс.
Выполнение оптимизационных расчётов
Оптимизация — это процесс поиска наилучших значений входных параметров модели, которые обеспечивают достижение заданной цели при соблюдении всех ограничений. В DT Seven для этого используется блок Design Space Exploration (DSE), который позволяет:

- Оценивать отклики системы;
- Проводить различные типы оптимизации:
- Однокритериальная и многокритериальная оптимизация: для точных и детализированных расчётов.
- Робастная оптимизация: учитываются неопределённости и вариации во входных данных.
- Оптимизация на основе мета-моделей: используются аппроксимирующие модели для ускорения расчётов.

В DT Seven также используется техника SmartSelection, которая автоматически выбирает оптимальный метод планирования эксперимента в зависимости от типа задачи и данных. Это позволяет эффективно исследовать пространство возможных решений и находить оптимальные параметры без необходимости углубляться в алгоритмы планирования эксперимента.
Практический пример интеграции расчетных цепочек ЛОГОС в DT Seven
Рассмотрим пример построения расчетной цепочки ЛОГОС по передаче нагрузок из Логос Аэро-Гидро в Логос Прочность на базе DT Seven. В качестве примера возьмем T-образную модель, в которой происходит смешивание метана и бензола при различных температурах. Соединение подвержено тепловой нагрузке и давлению от смешивающихся потоков. В таблице 1 представлены входные параметры модели, значения которых будут варьироваться в заданном диапазоне.

Таблица 1. Входные параметры модели
| Входные параметры: | Скорость на входе Inlet1 Vel1 | Скорость на входе Inlet2 Vel2 | Температура потока на входе Inlet1 T1 | Температура потока на входе Inlet2 T2 |
| Диапазон изменения параметров | 0.1 м/c < Vel1 < 1 м/c | 1 м/c < Vel2 < 15 м/c | 280 К < T1 < 300 К | 350К < T2 < 400 К |
На данной модели выполним оптимизацию по нескольким критериям:
- Температура потока в выходном отверстии T_out → Max
- Максимальные напряжения Stress → Min
- Uniformity Index (коэффициент перемешивания см. формула 1) в выходном отверстии → Max
- Ограничение на объемную долю метана на выходе 0.78 < φch4< 0.82

где φi – локальное значение объемной доли метана;
φch4 – среднее значение объемной доли метана на выходе Outlet;
UI – индекс перемешивания, принимающий значения от 0 (полностью неравномерное распределение) до 1 (идеально равномерное распределение);
Ai– площадь ячейки.
Свойства материала T-образного трубопровода: E = 2 ×10^11 Па, μ = 0.3, λ = 16.27 Вт / (м2×K),
ρ = 8030 кг/м3. В качестве модели турбулентности для CFD-региона выбрана модель k-omega SST, заданы физические модели: модель многофазности – односкоростная VOF модель, модель энергии, модель гравитации, постановка задачи стационарная.
Давление на выходе Poutlet = 10^5 Па.
Расчетная цепочка. Схема расчетной цепочки состоит из двух основных блоков – блок DSE и блок Composite (ниже переименован как Logos_Solver):

Далее подробнее рассмотрим блок Composite. Этот блок является контейнером для других блоков, тем самым, группирует вложенные блоки в соответствии с логикой построения расчетной схемы. Расчет в цепочке блоке Composite состоит из нескольких этапов: [0] – входные [In] и выходные порты [Out] блока Composite, в нем определяются входные параметры Vel1, Vel2, T1, T2 и выходные параметры T_out, Stress, Uniformity Index, φch4; блок прямой интеграции Logos для расчетного модуля Логос Аэро-Гидро и блок Text yaml_reader для изменения параметров модели, недоступных в блоке Logos; [2] – блоки постобработки данных, полученных в ходе CFD расчета и передачи нагрузок из Логос Аэро-Гидро в Логос Прочность (передача осуществляется через файл command.xml); [3] – блок общей интеграции Program для запуска расчета в Логос Прочность; [4] – блоки Program для постобработки прочностной задачи в ScientificView. Блоки между собой связаны логическими портами do-done.

Группа блоков [1]
В блоке yaml_reader определим входные параметры в разделе Configuration, также зададим text Encoding Windows-1251 в разделе Options, определим рабочую директорию в разделе Sandbox: .\CFD_task\CFD_task_model1_files. Для чтения/записи yaml-файла можем определить рабочую директорию, отличную от рабочей директории, указанной в Sandbox.

В блоке прямой интеграции Logos будем считывать значения с мониторов температуры потока, объемную долю метана и коэффициент перемешивания на выходе (для этого предварительно в проекте Логос Аэро-Гидро нужно создать соответствующие мониторы величин). Поскольку значения с мониторов представляют собой 2-D массивы, необходимо в блоке Python считать значения на последнем шаге итерации.

Группа блоков [2]
Ниже представлен листинг кода для считывания значений с мониторов на последнем шаге итерации блока Python Result A-G и листинг кода для передачи нагрузок из Логос Аэро-Гидро в Логос Прочность Python A-G_to_SA.
Листинг 1. Блок Result A-G
temp_out = temp_out_arr[-1][-1]
uniformity_index = uniformity_index_arr[-1][-1]
vf = vf_arr[-1][-1]
Для блока Result A-G выходными портами являются переменные temp_out, uniformity_index и vf; входными temp_out_arr, uniformity_index_arr, vf_arr.
Листинг 2. Блок Result A-G
import pandas as pd
import os
import re
from shutil import copy
folder_path = “CFD_task\\CFD_task_model1_files”
# Шаблон для поиска нужных файлов
pattern = re.compile(r’model1_PatchData_(\d+)\.Int_fluid.dat$’)
latest_file = None
max_number = -1
# Перебираем файлы в папке
for filename in os.listdir(folder_path):
result_match = pattern.match(filename)
if result_match:
number = int(result_match.group(1))
if number > max_number:
max_number = number
latest_file = filename
number_000 = result_match.group(1)
file_path = os.path.join(folder_path, latest_file)
df = pd.read_csv(file_path, delim_whitespace=True)
# Удалим указанные колонки
df_cleaned = df.drop(columns=[“Step”, “Sf”, “Yplus”]
# Удалим первые строки очищенного DataFrame
df_cleaned.head()
# Функция форматирования в экспоненциальный стиль с фиксированной длиной
def format_row(row):
return ‘ ‘.join([f”{x: .7E}” for x in row])
# Путь до проекта в Логос Прочность
output_path = “SA\\SA_model1_files\\model1-solution-1”
out_file = os.path.join(output_path, “pressure_data.dat”)
with open(out_file, ‘w’) as f:
for _, row in df_cleaned.iterrows():
f.write(format_row(row) + ‘\n’)
# Выполнение копирования lkg файлов в проект Логос Прочность
lgk_file_name = f”T_{number_000}.lgk”
file_path_lgk = os.path.join(folder_path, lgk_file_name)
copy(file_path_lgk, os.path.join(output_path, “lgk_last_results.lgk”))
Блок [3]
В блоке Logos SA определим путь до исполняемого файла решателя в разделе Configuration. В разделе Sandbox определим путь до директории проекта: .\SA\SA_model1_files\model1-solution-1

Группа блоков [4]
В блоке Program ScientificView определим путь до исполняемого файла постобработчика ScientificView с указанием следующих ключей: -i @{sandbox}\model1.yaml – путь до входного файла Логос Прочность (рабочая директория в Sandbox – директория проекта Логос Прочность), -screen – ключ закрывает окно ScientificView после выполнения команд по обработке данных, -script_f Find_Maximum.py – путь до файла с макрокомандами ScientificView на ЯП python. Скрипт Find_Maximum.py можно расположить либо в директории проекта Логос Прочность, либо указать путь для Prototype до директории со скриптом в разделе Sandbox. После выполнения команд по постобработке сохраняем максимальные напряжения и перемещения в блок Text reader, затем эти значения передаются на выходные порты блока Composite.

Листинг 3. Скрипт макрокоманд ScientificView.
#находим количество временных шагов
timestep = getTimeStepCount()
#Получаем доступ к нерег. мат. области
irregArea= getElemByName(‘Нерегулярная область 1’)
nameArea = irregArea.getName();
TimeStep=2
setTimeStep(TimeStep)
resMax = []
#Устанавливаем отображаемую величину
ArrayName = “Displacement”
vec = 4
irregArea.showArray(ArrayName, vec, “node”)
tmp_max = findMax( ArrayName, vec, nameArea)
resMax += [tmp_max, ]
#Устанавливаем отображаемую величину
ArrayName = “Stress”
vec = 7
irregArea.showArray(ArrayName, vec, “cell”)
tmp_max = findMax( ArrayName, vec, nameArea)
resMax += [tmp_max, ]
fieldNames = [‘timeStep’, ‘findMax’];
saveToFile(…\\SA\\SA_model1_files\\Results.dat’, resMax);
Настройка блока DSE для оптимизационных расчетов
В блоке Design Space Exploration определим входные и выходные данные с указанием желаемого числа точек для проведения оптимизации. Для переменных укажем диапазон варьирования параметров, для откликов укажем их тип и зададим ограничение на объемную долю метана на выходе. Поскольку по умолчанию работает техника SmartSelection, автоматически выбирается техника суррогатной оптимизации.

Необходимо соединить порты между блоками DSE и Logos_Solver, как показано на рисунке 11.

Результаты оптимизационного расчета
В ходе выполнения оптимизации формируется набор данных, который генерируется в соответствии с техникой планирования эксперимента. Для предварительного анализа данные можно просмотреть в таблице, а также определить коэффициент корреляции между данными.


Для визуализации полученных оптимальных точек в многомерном пространстве можно воспользоваться инструментом «Parallel coordinates». При выделении ЛКМ интересующего диапазона данных те точки, которые выходят за этот диапазон, окрашиваются в бледные цвета, что облегчает интерпретацию результатов.

Заключение
В рамках статьи был рассмотрен пример построения оптимизационной расчетной схемы с использованием модулей Логос Аэро-Гидро, Логос Прочность и постобработчика ScientificView на базе «DT Seven». Для выполнения оптимизации необходим комплексный подход, включающий автоматизацию расчетов, методы планирования экспериментов и современные алгоритмы поиска оптимальных решений. Инструменты «DT Seven» позволяют реализовать этот подход, снижая вероятность ошибок и сокращая сроки проектирования.
Можно выделить следующие основные преимущества и функциональные возможности при работе с оптимизационными задачами в «DT Seven»:
- Автоматизация инженерных расчётов. Построение расчётных схем обеспечивает полный цикл — от подготовки данных до анализа результатов. Это исключает необходимость ручного перебора параметров и снижает вероятность ошибок.
- Однокритериальная и многокритериальная оптимизация. Блок Design Space Exploration позволяет одновременно учитывать несколько целевых показателей и ограничений. Такой подход помогает находить баланс между конкурирующими параметрами и формировать набор оптимальных решений, из которых инженер может выбрать наиболее подходящее.
- Техника SmartSelection. Этот инструмент автоматически подбирает наиболее эффективные алгоритмы планирования эксперимента, что избавляет инженера от необходимости глубоко погружаться в математический аппарат и позволяет быстрее находить качественные решения.
Таким образом, использование DT Seven предоставляет инженеру универсальный и надежный инструмент, который сочетает автоматизацию, гибкость в работе.
Подробное рассмотрение данных видов расчётов, включая их теоретические основы и практическое применение, представлено в вебинаре “Создание автоматизированных расчетных схем Логос на базе DT Seven”
Получить консультацию
Заполните форму прямо сейчас, и мы свяжемся с Вами!
* Обязательные поля для заполнения

