Клиентская и серверная части проекта - что это такое и как с ними работать?

Проект FlowVision

Проект FlowVision состоит из двух частей: первая – клиентская, которая формируется в ПреПостпроцессоре (ППП) и предназначена для задания параметров счета (вещества, модели, гу и т.д.), а также параметров визуализации (слоев, характеристик и др.); вторая – серверная часть проекта, она включает в себя помимо входных параметров счета клиентской части еще и сами данные расчета Солвером.

Клиентская часть проекта предназначена для работы с ПреПостпроцессором, а серверная часть – для Словера. Для того чтобы изменения проекта в ПреПостроцессоре были учтены Солвером, необходимо их вносить на связи ППП и Солвера. Аналогично, данное подключение используется для просмотра результатов во время и после расчета, создания новых параметров визуализации и т.д.

Разделение на клиентские и серверные модули и части проекта FlowVision предназначено для работы на разных машинах и кластерах, когда клиентская часть используется клиентскими модулями на клиентской машине, а все результаты расчетов на серверной машине, кластере.

Так, например, проект создается локально в ППП (клиентская часть), загружается на Солвер на серверной машине (серверная часть), запускается на расчет и далее локально можно просматривать результаты подключившись к Солверу на серверной машине.


Подключение к посчитанному проекту на серверной машине возможно с любой клиентской машины, причем клиентскую часть проекта нет необходимости хранить на всех машинах, ее всегда можно скачать с серверной части проекта.

Отличие клиентской и серверной частей проекта FV

До начала расчета набор файлов клиентской и серверной частей идентичны друг другу.
Клиентская часть проекта представляет собой папку с набором файлом, отвечающих за геометрию, граничные условия, визуализацию и др.).

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

Местоположение, хранение частей проектов

Директория для хранения серверной части проекта указывается в настройках пользователя СолверАгента (СА). Возможно хранение проектов в разных директориях – для это можно создать нескольких пользователей СА, в настройках которых прописать соответствующие директории для разных проектов.

Директория расположения клиентских частей  может быть любой, на любой машине (клиентской или серверной). Исключение – директория хранения серверных частей проектов.

В случае, если по каким-то причинам нет клиентской части проекта (повреждена, удалена, не существует на локальной машине) но имеется серверная часть проекта, то клиентскую часть можно скачать с серверной  следующим образом:

  • Используя СолверАгент и Терминал:

Открыть Терминал > Авторизоваться на СА > Проекты > Скачать проект > Клиентская часть > выбрать папку для скачивания)

  • Используя ППП, СолверАгент, Солвер, Терминал:

Терминал > Запустить новый Солвер > Загрузить проект на Солвер
ППП > Подключиться к Солверу > Загрузить удаленный проект с солвера

  • Вручную – копированием файлов клиентской части проекта из серверной (не рекомендуется)

Таким образом, хранение, резервное копирование возможно как обеих частей проекта, так и только серверной части проекта.
В любом случае, при необходимости восстановления данных, желательно иметь резервные копии проектов как клиентских, так и серверных частей.

Как формируются клиентская и серверные части

Клиентская часть проекта формируется при:

  • создании нового проекта – после загрузке геометрии
  • копировании текущей открытой клиентской части проекта в ППП (Файл > Сохранить как…, Сохранить копию… )
  • скачивании с серверной части проекта (при наличии)
  • копировании вручную клиентской папки с проектом – не рекомендуется

Серверная часть проекта формируется при:

  • подключении к солверу проекта из ППП, если проект не обнаружен в серверной директории будет предложено загрузить проект на солвер – в этом случае вся папка с файлами клиенткой части будет скопирована в серверную директори

Удаленный проект отсутствует: Загрузить проект...

  •  копировании вручную клиентской папки с проектом в серверную директорию
  • создании копии проекта на связи ППП с Солвером (Файл > Сохранить как…, Сохранить копию… )
     копировании вручную серверной папки с проектом – не рекомендуется. Необходимо учитывать (при использовании СА), что в директории хранения серверных проектов  не может находится два проекта с одинаковым ID, его надо изменять вручную (параметр ProjID прописанный в файле .fvproj)

Синхронизация клиентской и серверной частей проектов (ПреПостпроцессор – Солвер)

Для изменения проекта в процессе счета (входных данных), для просмотра посчитанных результатов и др., необходимо подключение клиентской части  проекта (открытой в ППП) к серверной (загруженной на Солвер).

При подключении ППП к Солверу возможны следующие сценарии:

  1. ППП + открыта клиентская часть  -  Солвер (новый/пустой)
  2. ППП (пустой)  -  Солвер + загружен серверный проект
  3. ППП + клиентская часть  -  Солвер + загружен серверный проект

Сценарий 1

При подключении клиентского проекта, открытого в ППП к Солверу (новый, на него не загружен проект), проверяется существует ли серверная часть текущего проекта. Поиск серверной части проекта осуществляется в Серверной директории (у серверной и клиентской частей одного и того  же проекта должен совпадать параметр ProjID в файле .fvproj).

Если соответствующая серверная часть данного проекта не была обнаружена, то появляется диалоговое окно со следующими возможными вариантами:

  1. «Загрузить проект на Солвер»
  2. «Разорвать соединение с Солвером»

Удаленный проект отсутствует: Загрузить проект...

Внимание! Если проект существует и уже считался, но выскакивает данное окошко, то: либо поврежден .fvproj файл; либо проект находится в отличной от указанной в настройках пользователя СА директории. Необходимо, либо восстановить fvproj из .fvproj.backup файла или обратится в ТП Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.; либо проверить и изменить путь до серверной директории.

Если соответствующая серверная часть данного проекта была обнаружена, то осуществляется проверка версий (параметр VersionID в файле .fvproj) клиентской и серверной частей проекта.

Если версии совпадают, то синхронизация не требуется – связь ППП с Солвером установлена

Если отличаются версии (параметр VersionID в файле .fvproj), то появляется диалоговое окно со следующими возможными вариантами:

Разрешение конфликта версий: Закрыть текущий проект...

Это может произойти, например,  если проект считается с сохранением истории без связи с ППП, или клиентская часть проекта был изменена в Препроцессоре и сохранена не на связи с солвером и др.

Варианты действий:

  1. «Закрыть текущий проект на клиенте и загрузить проект с солвера в новую директорию" - в этом случае клиентская часть скачивается  в новую указанную папку из серверной части проекта и открывается в ППП автоматически, далее появляется сообщение - связь ППП с Солвером установлена.
  2. «УДАЛИТЬ текущий проект НА КЛИЕНТЕ и загрузить вместо него проект с солвера» - в текущей папке клиентской части проекта удаляются ВСЕ файлы и далее файлы клиентской части  скачиваются из серверной – связь ППП с Солвером установлена.
  3. «УДАЛИТЬ текущий проект НА СОЛВЕРЕ и загрузить вместо него клиентский проекта» - внимание, в этом случае в папке с серверной частью проекта удаляются ВСЕ-ВСЕ файлы и файлы клиентской части копируются серверную папку. Т.к. все данные расчета были удалены, то запуск на расчет возможен только с нуля

Дополнительно, при выборе скачать клиентскую часть проекта выдается следующее окошко:

Получение проекта: Выбор дополнительных файлов...

Дополнительные файлы выбираются  только в случае необходимости, они скачиваются в локальную клиентскую папку из серверной части проекта. Скачать дополнительные файлы также можно на связи ППП с Совлером (ППП > Файл > Скачать дополнительные файлы).

Также, до связи ППП с Солвером, можно скачать актуальную текущую версию клиентской части с серверной используя Терминал (Проекты > Скачать проект > Выбор группы файлов …).

Терминал: Полученеи проекта: Выбор группы файлов

После скачивания клиентской части, при открытии ее в ППП при подключении к Солверу синхронизации не потребуется – связь ППП с Солвером установлена.

Если отличаются версии сцены (параметр SceneID в файле .fvproj), то появляется диалоговое окно со следующими возможными вариантами:
Разрешение конфликта сцен: Версии сцены...

Это может произойти когда были изменены параметры проекта на закладке Постпроцессора (слои, объекты, характеристики и др.)

  1. «Загрузить сцену с солвера на клиент» - загружаются параметры отображения с серверной части проекта в клиентскую
  2. «Загрузить сцену с клиента на солвер» - загружаются параметры отображения из клиентской части проекта в серверную

Параметры сцены влияют на изменение визуализации (отображение, сохранение слоев/характеристик и др.), но не влияют на расчет. При синхронизации выбирается сцена актуальная для пользователя.

Рекомендация: можно создавать слои без связи ППП с Солвером, далее при синхронизации загрузить сцену на солвер. НО, это можно делать, если клиентская и серверная части идентичны – их версии одинаковы.

Если отличаются версии параметров управления расчетом и критериев останова (параметр CtrlID в файле .fvproj), то появляется диалоговое окно со следующими возможными вариантами:

Разрешение конфликта файлов параметра расчета: Версии файлов...

Это может произойти если были изменены параметры управления расчетом и критериев останова на закладке Солвер (шаг, доп.настройки, критерий останова и др.), например. В клиентской части в ППП без связи с солвером.

  1.  «Загрузить параметры расчета с солвера на клиент» - скачивается файл с параметрами расчета с серверной части проекта в клиентскую
  2.  «Загрузить параметры расчета с клиента на солвер» - скачивается файл с параметрами расчета из клиентской части проекта в серверную


Параметры управления расчетом и критериев останова (закладка Солвер) влияют на расчет, при синхронизации выбирается актуальная для пользователя версия параметров и расчет может быть успешно продолжен.

Сценарий 2

В случае, когда на Солвер уже загружен проект (через Терминал или ППП с последующим отключением связи) при подключении к нему ППП без открытого в нем проекта (пустого)  предлагается открыть клиентский проект соответствующий серверному проекту , загруженному на Солвер:

Загрузка локального проекта: Выберите желаемые действия...

Рекомендация: для ускорения подключения и синхронизации проектов на Солвере и в ППП следует остановить расчет, если солвер считает. Это удобно сделать через Терминал до подключения ППП (Терминал > Проекты > Остановить расчет)

Варианты действий при загрузке локального (клиентского) проекта:

  1.  «Найти локальный  проект автоматически» - появляется информационное окно «Обзор папок» для выбора  пути до папки, в которой будет осуществляться автоматический поиск соответствующего проекта.При успешном поиске выдается сообщение «Подтверждение: Найден проект…», иначе, заново предлагаются варианты загрузки локального проекта. Далее происходит сравнение клиентской и серверной частей  по VersionI, SceneID, CtrlID – см. описанный выше сценарий подключения №1
  2.    «Выбрать локальный путь вручную» - вручную указывается .fvproj файл клиентской части проекта. Далее происходит сравнение клиентской и серверной частей  по VersionI, SceneID, CtrlID – см. описанный выше вариант подключения №1
  3.    «Загрузить удаленный проект с солвера» - скачивается клиентская часть проекта с серверной части.  В появившемся окне «Сохранение проекта» следует указать место и название папки для загрузки

Сценарий 3

В случае, когда в ППП открыта клиентская часть и на Солвер уже загружена серверная (через Терминал или ППП с последующим отключением связи) при подключении ППП к Солверу происходит сравнение частей проектов по ID проекта (параметр ProjID прописанный в файле .fvproj).

Если ProjID совпадают, то в дальнейшем идет проверка по VersionID, SceneID, CtrlID – см. описанный выше вариант подключения №1.

Если ID клиентской и серверной частей не совпадают то, появляется информационное окно «Разрешение конфликтов проектов»:

Разрешение конфликта проектов: Выбирете желаемые действия...

Подобное может произойти, например, в  случае, когда в ППП открыта клиантская часть одного проекта, а на Солвер загружена серверная часть от другого.

Варианты действий:

  1.  «Закрыть текущий проект на клиенте и загрузить вместо него проект с солвера» - в этом случае из ППП выгружается текущий проект и предлагается открыть клиентский проект соответствующий серверному проекту , загруженному на Солвер (см. выше вариант подключения №2)
  2. «Закрыть текущий проект на солвере и загрузить вместо него проект с клиента» - в этом случает с Солвера выгружается  текущий серверный проект и загружается проект, соответствующий клиентской части (при его наличии). Если серверной части проекта пока не существует, то появится соответствующее сообщение об ее создании («загрузить проект на солвер»)

В результате описанных действий при подключении в ППП и на Солвере загружены обе части одного и того же проекта.

Об авторе
Татьяна Маркова
Author: Татьяна Маркова
Руководитель группы технической поддержки
МГТУ им. Н.Э. Баумана. Экспертиза в областях: CFD, технологии производства, ракетостроение