Новый подход
к моделированию полей

Главная >> Загрузить >>

ELCUT Problem Builder

ELCUT Problem Builder создает задачу ELCUT по командам из скрипта .qfp. Программа задает параметры задачи, сохраняет их в файле .pbm и при необходимости запускает подготовку геометрии и данных.

В скрипте указывают тип и класс задачи, единицы измерения, параметры расчета по времени, а также имена файлов геометрии и данных. Для создания этих файлов ELCUT Problem Builder вызывает ELCUT Model Builder и ELCUT Data Builder.

ELCUT Model Builder строит геометрию по скрипту .qfs и сохраняет ее в файле .mod, а ELCUT Data Builder создает файл данных по скрипту .qfd.

Исходный код, готовая программа и полное описание в формате PDF доступны в разделе загрузки.

Параметры запуска программы

ELCUT Problem Builder можно запускать с параметрами командной строки или без них:

elcut_problem_builder.exe [/h] [filepath]

При запуске elcut_problem_builder.exe без параметров открывается окно выбора скрипта.

Формат и версия QFP-скрипта

Скрипт ELCUT Problem Builder (.qfp) – это текстовый файл в кодировке UTF-8. Команды записываются в формате JSON Lines: по одному JSON-объекту в каждой непустой строке. Каждый объект содержит одну команду.

Первой строкой скрипта идёт номер версии формата QFP. Текущая версия – 1.2.

{"version":"1.2"}

Справочник команд

analysis – тип задачи

{"analysis":"code"}
КодТип задачиФайл данных
msМагнитостатика.dms
temНестационарное магнитное поле.dms
heМагнитное поле переменных токов.dhe
esЭлектростатика.des
dcЭлектрическое поле постоянных токов.dcf
ecЭлектрическое поле переменных токов.dec
tvНестационарное электрическое поле.dtv
saМеханические напряжения.dsa
shtСтационарная теплопередача.dht
thtНестационарная теплопередача.dht

Нестационарное магнитное поле: в скрипте .qfp используйте {"analysis":"tem"}, а в соответствующем скрипте .qfd – {"analysis":"ms"}.

problemClass – класс задачи

{"problemClass":"plane-parallel"}
{"problemClass":"axisymmetric"}

units и coordinates – единицы длины и система координат

{"units":"mm"}
{"coordinates":"cartesian"}

Необязательные параметры задачи

КомандаОписание
{"frequency":60}Частота в Гц для задач переменного тока.
{"ZLength":100}Длина по оси Z для плоскопараллельных задач. Для осесимметричных задач не требуется.

Параметры расчета по времени

КомандаОписание
{"timeFinal":0.001}Момент времени, до которого выполняется расчет.
{"autoTimeStep":false}Отключает автоматический выбор шага по времени.
{"timeStep":0.000001}Фиксированный шаг по времени.
{"timeOutputFirst":0}Момент времени, начиная с которого сохраняются результаты.
{"timeOutputStep":0.000002}Шаг по времени для сохранения результатов.

modelFile и dataFile

{"modelFile":"example.mod"}
{"dataFile":"example.dms"}

Команда modelFile задает имя файла геометрии, а dataFile – имя файла данных. Обе команды обязательны. Ссылки на эти файлы записываются в файл задачи .pbm.
Сами файлы при этом не создаются. Можно указать имена как существующих файлов, так и тех, которые будут созданы с помощью ELCUT Model Builder и ELCUT Data Builder.

Расширение файла данных зависит от типа задачи. Для нестационарного магнитного поля используется .dms, для нестационарного электрического поля – .dtv, для нестационарной теплопередачи – .dht.

modelBuilder и dataBuilder

{"modelBuilder":"example.qfs"}
{"dataBuilder":"example.qfd"}

Эти команды указывают, какие скрипты должны выполнить ELCUT Model Builder и ELCUT Data Builder. ELCUT Problem Builder запоминает их и запускает при выполнении команды save, после сохранения файла задачи. Если путь к скрипту относительный, он отсчитывается от папки с файлом .qfp.

Команды modelBuilder и dataBuilder нужно записать перед командой save.

save – сохранение задачи

{"save":"example.pbm"}
{"save":{"file":"example.pbm","solve":{}}}

Команда save сохраняет задачу в файле .pbm вместе со ссылками на файлы геометрии и данных. Затем выполняются скрипты, указанные в командах modelBuilder и dataBuilder.
Чтобы после подготовки файлов запустить расчет, добавьте необязательное поле solve, как во втором примере. ELCUT Problem Builder запускает решатель, но не ждет окончания расчета.

Команда save должна быть последней в файле .qfp. Команды modelBuilder или dataBuilder, расположенные после save, выполняться не будут.
В имени файла укажите расширение .pbm.

Что происходит при выполнении save

  1. pbm.SaveAs(file) – создает файл .pbm.
  2. pbm.SetReferencedFile(0, modelFile) – записывает ссылку на файл геометрии .mod.
  3. pbm.SetReferencedFile(1, dataFile) – записывает ссылку на файл данных.
  4. pbm.Save() – сохраняет обновленные ссылки.
  5. run_pending_builders() – выполняет скрипты, указанные в командах modelBuilder и dataBuilder.

Примеры скриптов QFP

Магнитостатика, осесимметричная задача

{"version":"1.2"}
{"analysis":"ms"}
{"problemClass":"axisymmetric"}
{"units":"mm"}
{"coordinates":"cartesian"}
{"modelFile":"example.mod"}
{"dataFile":"example.dms"}
{"modelBuilder":"example.qfs"}
{"dataBuilder":"example.qfd"}
{"save":"example.pbm"}

Нестационарное магнитное поле, осесимметричная задача

{"version":"1.2"}
{"analysis":"tem"}
{"problemClass":"axisymmetric"}
{"units":"mm"}
{"coordinates":"cartesian"}
{"timeFinal":0.001}
{"autoTimeStep":false}
{"timeStep":0.000001}
{"timeOutputFirst":0}
{"timeOutputStep":0.000002}
{"modelFile":"example.mod"}
{"dataFile":"example.dms"}
{"modelBuilder":"example.qfs"}
{"dataBuilder":"example.qfd"}
{"save":"example.pbm"}

Расположение исходных файлов

Для запуска программы из исходного кода поместите следующие файлы Python в одну папку:

elcut_problem_builder.py
elcut_model_builder.py
elcut_data_builder.py
elcut_data_builder_common.py
elcut_data_builder_*.py

ELCUT Problem Builder подключает модули elcut_model_builder и elcut_data_builder из своей папки и вызывает в них функцию run(filename). Создавать для этих модулей отдельные папки model_builder/ и data_builder/ не нужно. Текущую рабочую папку программа не меняет.

После выполнения скрипта ELCUT Problem Builder оставляет задачу открытой в ELCUT. Можно просмотреть ее или запустить расчет.

Проверка и создание QFP-скрипта

Введите команды в поле ниже или загрузите файл .qfp. При проверке выявляются ошибки в записи JSON, неизвестные команды, отсутствие обязательных команд и неверные расширения файлов. Также проверяется, что команда save стоит последней. Готовый скрипт можно сохранить в файл. Проверка выполняется в браузере и не запускает ELCUT, ELCUT Model Builder или ELCUT Data Builder.

Сертификаты ELCUT по ГОСТ, СП, ИСО, СанПиН