×

Принципы организации связи между FlowVision и EULER

Для связывания FlowVision с EULER используется сетевой канал TCP/IP. С точки зрения сетевого канала EULER является сервером, FlowVision – клиентом. EULER после запуска создает серверный TCP/IP сокет с заданным номером порта, FlowVision после запуска выполняет подключение к EULER по заданным IP адресу и номеру порта. В FlowVision IP адрес и номер порта задаются пользователем на этапе подготовки расчетного проекта (но могут быть изменены и непосредственным редактированием файлов проекта на диске при необходимости автоматизации запуска FlowVision без использования GUI).
С точки зрения управления обменом после установления соединения, вводится понятие управляющей программы (master). Управляющая программа определяет время следующего обмена (шаг обмена), ведомая программа обязана отработать этот шаг. При этом ведомая программа передает в управляющую желательный для неё шаг обмена, который управляющая программа может учесть или проигнорировать.
На данном этапе управляющей программой является EULER. В дальнейшем возможна реализация варианта, в котором роль управляющей программы будет играть FlowVision (в FlowVision такая возможность уже имеется, в зависимости от настроек проекта он может играть роль как управляющей, так и ведомой программы в совместном расчете).
Управляющая программа (EULER) выполняет расчет первой, после этого передает в FlowVision расчетные данные и своё текущее время. FlowVision считает до этого времени, после чего передает в EULER расчетные данные и свое текущее время (для контроля – оно должно совпадать с принятым от EULER). Далее итерации обмена повторяются.
Непосредственно обмен по каналу TCP/IP выполняется с использования протокола прикладного уровня, описанного в приложении А. Основной единицей обмена является бинарный массив, содержащий все необходимые для передачи в одну и другую сторону данные. Его формат описан в приложении Б.
Базовым понятием является понятие региона обмена. В контексте взаимодействия FlowVision с EULER под регионом обмена в простейшем случае понимается твердое тело. Для каждого региона обмена в процессе совместного решения происходит обмен результатами расчета. Согласование регионов обмена в FlowVision и EULER производится по строковым идентификаторам. В описании протокола (Приложение А) эти идентификаторы обозначены как «имя региона».
Строковые идентификаторы регионов обмена определяются в EULER. После этого EULER сохраняет в файл на диске (Приложение В) эти имена вместе с начальными координатами соответствующих тел. Данный файл импортируется FlowVision на этапе подготовки расчетного проекта, что позволит избежать ошибок в задании имен регионов на стороне FlowVision. При необходимости, пользователь FlowVision может задать имена регионов вручную. Ответственность за согласование имен регионов связи в FlowVision и EULER возлагается на пользователя, выполняющего совместный расчет.
На начальном этапе обмена после установления соединения, EULER присылает в FlowVision имена всех регионов связи (команда MBC_REGIONNAME). FlowVision определяет наличие в своем проекте тел с такими именами и при отсутствии таковых (хотя бы одного) расчет аварийно завершается с выдачей соответствующего сообщения в лог файл.
При дальнейшем обмене данными результаты расчета пересылаются для каждого региона (тела) отдельно командой MBC_VALUES. Команды MBC_VALUES для регионов обмена должны быть посланы в том же порядке, в каком были посланы/приняты команды MBC_REGIONNAME.