Запуск на продолжение совместного расчета Abaqus - FlowVision

Совместный FSI расчёт может быть прерван по ряду причин:

    • Нехватка памяти (как оперативной, так и физической)
    • Перезапуск машины, на которой проводился расчёт
    • Необходимость остановки расчёта для модификации проекта

Для совместного расчёта, в отличии от расчёта только с помощью FlowVision, процедура рестарта усложняется необходимостью синхронизации точки рестарта.
Также хлопот добавляет наличие у Abaqus двух солверов: Abaqus/Standard и Abaqus/Explicit, логика рестарта которых отличается друг от друга.

В статье описаны процедуры запуска FSI расчёта на продолжение в связке Abaqus - FlowVision для протокола взаимодействия Co-Simulation Engine.
Для протокола Direct Coupling процедура аналогична.

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

Полезные ссылки:

  1. Документация FlowVision: Запуск, остановка и продолжение расчета.
  2. Документация FlowVision: Сохранение проекта.
  3. SIMULIA Abaqus User Assistance. 

Рестарт с использованием Abaqus/Standard

Рассмотрим запуск расчёта на продолжение FlowVision с солвером Abaqus/Standard. Можно выделить следующие этапы:

  • Подготовка проектов к расчёту;
  • Подготовка проекта Abaqus к запуску на продолжение;
  • Синхронизация расчётов – подготовка проекта FlowVision на продолжение;
  • Запуск совместного расчёта на продолжение.

Подготовка к расчёту: Abaqus project

При создании проекта Abaqus необходимо учесть возможность рестарта данного проекта. В противном случае, без наличия записей на рестарт, необходимо будет удалять текущий результат и запускать проект с нуля.
Учесть возможность рестарта можно через интерфейс или вручную, изменив input-файл.

Добавление записей о рестарте через интерфейс


Перейдите в модуль Step. На панели меню выберите Output > Restart Requests… Появится окно Edit Restart Request:

Restart 1

Добавление записей о рестарте вручную

Аналогичным образом эту информацию можно добавить в input-файл вручную, вписав следующие строки в настройки соответсвующего шага:

*Restart, write, overlay, number interval=50, time marks = YES
*Restart, write, frequency=100

Параметры, которые задаются для рестарта:

  • Frequency – частота записи. Указывается количество итераций, через которое будет сделана очередная запись на рестарт;
  • Intervals – количество записей, которые будут сделаны в течении расчёта. Частоту записи можно также узнать, исходя из времени останова в Abaqus и количества интервалов.
  • Overlay – перезапись последнего сохранения на рестарт.  В этом случае всегда будет только одна точка на рестарт. Рекомендуется использовать этот способ при частом сохранении: файл на рестарт быстрее заполняют память, чем odb (так как содержат в себе полный набор о предыдущем сохранении расчёта), а выполение предподготовки процессом pre увеличивается в несколько раз.
  • Time Marks – доступен только при использовании типа сохранения Intervals. При включенном параметре Abaqus будет делать запись рестарта в той точке, где указано. При отсутсвии записи временные границы расширены и время расчёта Abaqus может варьироваться перед тем как будет сделана запись определяющая рестарт.
 

Подготовка к расчёту: FlowVision project

Для включения сохранений во FlowVision необходимо в ПреПостПроцессоре перейти во вкладку Солвер > Автосохранение данных и в окне свойств включить Историю > Да.
Тип частота записи = Автоматическое значит, что сохранение происходит на каждом шаге расчёта.

Restart 2

Рекомендуется ставить частоту сохранений во FlowVision выше, чем в Abaqus: историю в FV можно почистить, а в Abaqus – нет. Эта частота должна быть пропорциональна частоте сохранений в Abaqus.

Подготовка проекта Abaqus к запуску на продолжение

В inp-файле Abaqus необходимо скопировать последний шаг анализа в новый пустой файл и сохранить с расширением inp.

Необходимо прописать строку *Heading. И далее добавить:

  • *Restart, read, step=N, inc=f (если использовалось frequency);
  • *Restart, read, step=N, iteration=i (если использовалось number interval).

Все упоминания о предыдущем шаге сохранения необходимо изменить. Например, если шаг рестарта был назван STEP-1, то самым простым способом изменения будет переименновать его в  STEP-2.

Определить, с какого шага и с какой записи запускать Abaqus на продолжение можно с помощью файла с расширением *.sta. 

Вид *.sta файла

 Restart 3

Номер шага указан в стобце STEP.

При выборе типа записи frequency можно вычислить номер итерации, с которой можно запустить рестарт. Например, если frequency = 10, рестарт можно запустить с 690, 700, 710 и 720 итерации. Если включена функция overlay рестарт можно запустить только с 720 итерации.

В случае использования interval необходимо знать время с которого запускается Abaqus на продолжение. Так как точность информации, выводимой в файл *.sta ограничена количеством знаков после запятой, то точное время узнать не получится, просто посмотрев в стоблец Total time.

Столбец Step Time/LPF даёт больше информации, поэтому необходимо просуммировать все значения данного столбца, исключая итерации, на которых не была достигнута сходимость.

В ситуации, если FlowVision сделал больше записей, чем Abaqus, необходимо выбрать момент, с какого времени FlowVision начнет свой расчёт. Определив точное время рестарта в Abaqus, необходимо сравнить с ним время в fvproj-файле.

Оставляем последнее сохранение для FV:

  • Если солвер с проектом на связи с ППП: в панели меню Файл > Сохранить выборочно... удалить ненужные сохранения.
  • Либо удалить  записи о ненужных сохранениях в текстовом fvproj файле проекта. Для этого в fvproj-файле находится необходимый блок <ITEM> со временем, что было найдено ранее из sta-файла Abaqus.

   <ITEM>

<Number>302</Number>
<Iteration>604</Iteration>
<Time>0.035500000000014</Time>
<Contents>OSMV</Contents>

   </ITEM>

Все последующие блоки <ITEM> необходимо удалить.

Запуск совместного расчёта на продолжение

Для CSE Director необходимо создать новый конфигурационный файл. Для этого достаточно создать копию исходного файла. В копии файла заменяются все упоминания имени исходного проекта Abaqus на новое имя. Удобнее всего это сделать простым поиском и заменой в текстовом редакторе.

Restart 4

В строке CSE Director меняется имя конфигурационного файла.

После выполения всех модификаций, Abaqus запускается на продолжение, используя параметр oldjob (предрасчёт). В качестве oldjob задается исходный файл, в качестве job задается новый файл.

FlowVision может запускаться как из Терминала FlowVision, так из ПреПостПроцессора, так и с командной строки. При запуске на продолжение необходимо проставить следующие параметры:

Restart 5

В случае запуска через командную строку, необходимо ввести SS_SOLVESTART<7>. Подробнее про горячие команды запуска читайте в документации.


Рестарт с использованием Abaqus/Explicit

Запуск на продолжение FlowVision с солвером Abaqus/Explicit обладает небольшими отличиями от запуска Abaqus/Standard. Аналогичные этапы можно выделить для этого запуска:

  • Подготовка проектов к расчёту;
  • Подготовка проекта Abaqus к запуску на продолжение;
  • Синхронизация расчётов – подготовка проекта FlowVision на продолжение;
  • Запуск совместного расчёта на продолжение. 

Подготовка к расчёту: Abaqus project

При создании проекта Abaqus необходимо учесть возможность рестарта данного проекта. В противном случае, без наличия записей на рестарт, необходимо будет удалять текущий результат и запускать проект с нуля.
Учесть возможность рестарта можно через интерфейс или вручную, изменив input-файл.

Добавление записей о рестарте через интерфейс


Перейдите в модуль Step. На панели меню выберите Output > Restart Requests… Появится окно Edit Restart Request:

Restart 6

Добавление записей о рестарте вручную

Аналогичным образом эту информацию можно добавить в input-файл, вписав строки в настройки соответсвующего шага:

*Restart, write, overlay, number interval=50, time marks=YES

 

В отличии от Abaqus/Standard, Abaqus/Explicit не использует частоту сохранения.

Параметры, которые задаются для рестарта:

  • Intervals – количество записей, которые будут сделаны в течении расчёта. Частоту записи можно также узнать, исходя из времени останова в Abaqus и этого числа.
  • Overlay – перезапись последнего сохранения на рестарт.  В этом случае всегда будет только одна точка на рестарт. Рекомендуется использовать этот способ при частом сохранении: файл на рестарт быстрее заполняют память, чем odb (так как содержат в себе полный набор о предыдущем сохранении расчёта), а выполение предподготовки процессом pre увеличивается в несколько раз.
  • Time Marks – доступен только при использовании типа сохранения Intervals. При включенном параметре Abaqus будет делать запись рестарта в той точке, где указано. При отсутсвии записи временные границы расширены и время расчёта Abaqus может варьироваться перед тем как будет сделана запись определяющая рестарт.

Подготовка к расчёту: FlowVision project

Для включения сохранений во FlowVision необходимо в ПреПостПроцессоре перейти во вкладку Солвер > Автосохранение данных и в окне свойств включить Историю > Да.
Тип частота записи: Автоматическое значит сохранение на каждом шаге расчёта.

Restart 2

Рекомендуется ставить частоту сохранений во FlowVision выше, чем в Abaqus: историю в FV можно почистить, а в Abaqus – нет. Эта частота должна быть пропорциональна частоте сохранений в Abaqus.

Подготовка проекта Abaqus к запуску на продолжение

inp-файле Abaqus необходимо скопировать последний шаг анализа в новый пустой файл и сохранить с расширением inp.

Необходимо прописать строки:
*Heading
*Restart, read, step=N, interval=i. end step

Все упоминания о предыдущем шаге сохранения необходимо изменить. Например, если шаг рестарта был назван STEP-1, то самым простым способом изменения будет переименновать его в  STEP-2.

Определить, с какого шага и с какой записи запускать Abaqus на продолжение можно с помощью файла с расширением *.sta. 

Вид *.sta файла

 

Restart 8

Номер шага указан в под строкой SOLUTION PROGRESS.

Чтобы узнать номер интервала, с которого необходимо запустить, в *sta файле необходимо найти строку Restart Number.
В случае использования Overlay, сохранение будет перезаписываться и Restart Number будет равен 1.
Если используется параметр interval: 

Restart 9

Restart Number равен 4. 

Так как просуммировать все итерации в *.sta файле, геренируемым солвером Abaqus/Explicit довольно трудно, то необходимо всегда использовать параметр TimeMarks=Yes. Время, с которым будет синхронизироваться проект FlowVision, прописано в одной строке с Restart Number. 

Синхронизация проектов

В ситуации, если FlowVision сделал больше записей, чем Abaqus, необходимо выбрать момент, с какого времени FlowVision начнет свой расчёт. Определив точное время рестарта в Abaqus, необходимо сравнить с ним время в fvproj-файле.

Оставляем последнее сохранение для FV:

  • Если солвер с проектом на связи с ППП: в панели меню Файл > Сохранить выборочно... удалить ненужные сохранения.
  • Либо удалить  записи о ненужных сохранениях в текстовом fvproj файле проекта. Для этого в fvproj-файле находится необходимый блок <ITEM> со временем, что было найдено ранее из sta-файла Abaqus.

<ITEM>

<Number>302</Number>
<Iteration>604</Iteration>
<Time>0.035500000000014</Time>
<Contents>OSMV</Contents>

</ITEM>

Все последующие блоки <ITEM> необходимо удалить.

Запуск совместного расчёта на продолжение

Для CSE Director необходимо создать новый конфигурационный файл. Для этого достаточно создать копию исходного файла. В копии файла заменяются все упоминания имени исходного проекта Abaqus на новое имя. Удобнее всего это сделать простым поиском и заменой в текстовом редакторе.

Restart 4

В строке CSE Director меняется имя конфигурационного файла.

После выполения всех модификаций, Abaqus запускается на продолжение, используя параметр oldjob (предрасчёт). В качестве oldjob задается исходный файл, в качестве job задается новый файл.

FlowVision может запускаться как из Терминала FlowVision, так из ПреПостПроцессора, так и из командной строки. При запуске на продолжение из ППП необходимо использовать следующие параметры:

Restart 5

В случае запуска через командную строку, необходимо ввести SS_SOLVESTART<7>. Подробнее про горячие команды запуска читайте в документации.

Об авторе
Владимир Каширин
Author: Владимир Каширин
Инженер технической поддержки
Экспертиза в областях: FSI, прочность, физика металлов, АЭС