Skip to main content
13 октября, 2025

Оптимизация инженерных расчётов в ЛОГОС на базе 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 представлены входные параметры модели, значения которых будут варьироваться в заданном диапазоне.

Оптимизация инженерных расчётов в ЛОГОС DT Seven
Рис. 3. Модель T-образного трубопровода

Таблица 1. Входные параметры модели

Входные параметры:Скорость на входе Inlet1 Vel1Скорость на входе Inlet2 Vel2Температура потока на входе Inlet1 T1Температура потока на входе Inlet2 T2
Диапазон изменения параметров0.1 м/c < Vel1 < 1 м/c1 м/c < Vel2 < 15 м/c280 К < 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»

Получить консультацию

Заполните форму прямо сейчас, и мы свяжемся с Вами!

* Обязательные поля для заполнения

13 октября, 2025
# Темы