Совместный FSI расчёт может быть прерван по ряду причин:
-
- Нехватка памяти (как оперативной, так и физической)
- Перезапуск машины, на которой проводился расчёт
- Необходимость остановки расчёта для модификации проекта
Для совместного расчёта, в отличии от расчёта только с помощью FlowVision, процедура рестарта усложняется необходимостью синхронизации точки рестарта.
Также хлопот добавляет наличие у Abaqus двух солверов: Abaqus/Standard и Abaqus/Explicit, логика рестарта которых отличается друг от друга.
В статье описаны процедуры запуска FSI расчёта на продолжение в связке Abaqus - FlowVision для протокола взаимодействия Co-Simulation Engine.
Для протокола Direct Coupling процедура аналогична.
Рекомендуется потренироваться на учебном примере "Деформируемый клапан в канале", прежде чем переходить к рестарту реального проекта.
Полезные ссылки:
- Документация FlowVision: Запуск, остановка и продолжение расчета.
- Документация FlowVision: Сохранение проекта.
- SIMULIA Abaqus User Assistance.
Рестарт с использованием Abaqus/Standard
Рассмотрим запуск расчёта на продолжение FlowVision с солвером Abaqus/Standard. Можно выделить следующие этапы:
- Подготовка проектов к расчёту;
- Подготовка проекта Abaqus к запуску на продолжение;
- Синхронизация расчётов – подготовка проекта FlowVision на продолжение;
- Запуск совместного расчёта на продолжение.
Подготовка к расчёту: Abaqus project
При создании проекта Abaqus необходимо учесть возможность рестарта данного проекта. В противном случае, без наличия записей на рестарт, необходимо будет удалять текущий результат и запускать проект с нуля.
Учесть возможность рестарта можно через интерфейс или вручную, изменив input-файл.
Добавление записей о рестарте через интерфейс
Перейдите в модуль Step. На панели меню выберите Output > Restart Requests… Появится окно Edit Restart Request:
Добавление записей о рестарте вручную
Аналогичным образом эту информацию можно добавить в 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 необходимо в ПреПостПроцессоре перейти во вкладку Солвер > Автосохранение данных и в окне свойств включить Историю > Да.
Тип частота записи = Автоматическое значит, что сохранение происходит на каждом шаге расчёта.
Рекомендуется ставить частоту сохранений во 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 файла
Номер шага указан в столбце 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 на новое имя. Удобнее всего это сделать простым поиском и заменой в текстовом редакторе.
В строке CSE Director меняется имя конфигурационного файла.
После выполнения всех модификаций, Abaqus запускается на продолжение, используя параметр oldjob (предрасчёт). В качестве oldjob задается исходный файл, в качестве job задается новый файл.
FlowVision может запускаться как из Терминала FlowVision, так из ПреПостПроцессора, так и с командной строки. При запуске на продолжение необходимо проставить следующие параметры:
В случае запуска через командную строку, необходимо ввести SS_SOLVESTART<7>. Подробнее про горячие команды запуска читайте в документации.
Рестарт с иcпользованием Abaqus/Explicit
Запуск на продолжение FlowVision с солвером Abaqus/Explicit обладает небольшими отличиями от запуска Abaqus/Standard. Аналогичные этапы можно выделить для этого запуска:
- Подготовка проектов к расчёту;
- Подготовка проекта Abaqus к запуску на продолжение;
- Синхронизация расчётов – подготовка проекта FlowVision на продолжение;
- Запуск совместного расчёта на продолжение.
Подготовка к расчёту: Abaqus project
При создании проекта Abaqus необходимо учесть возможность рестарта данного проекта. В противном случае, без наличия записей на рестарт, необходимо будет удалять текущий результат и запускать проект с нуля.
Учесть возможность рестарта можно через интерфейс или вручную, изменив input-файл.
Добавление записей о рестарте через интерфейс
Перейдите в модуль Step. На панели меню выберите Output > Restart Requests… Появится окно Edit Restart Request:
Добавление записей о рестарте вручную
Аналогичным образом эту информацию можно добавить в 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 необходимо в ПреПостПроцессоре перейти во вкладку Солвер > Автосохранение данных и в окне свойств включить Историю > Да.
Тип частота записи: Автоматическое значит сохранение на каждом шаге расчёта.
Рекомендуется ставить частоту сохранений во 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 файла
Номер шага указан в под строкой SOLUTION PROGRESS.
Чтобы узнать номер интервала, с которого необходимо запустить, в *sta файле необходимо найти строку Restart Number.
В случае использования Overlay, сохранение будет перезаписываться и Restart Number будет равен 1.
Если используется параметр interval:
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 на новое имя. Удобнее всего это сделать простым поиском и заменой в текстовом редакторе.
В строке CSE Director меняется имя конфигурационного файла.
После выполнения всех модификаций, Abaqus запускается на продолжение, используя параметр oldjob (предрасчёт). В качестве oldjob задается исходный файл, в качестве job задается новый файл.
FlowVision может запускаться как из Терминала FlowVision, так из ПреПостПроцессора, так и из командной строки. При запуске на продолжение из ППП необходимо использовать следующие параметры:
В случае запуска через командную строку, необходимо ввести SS_SOLVESTART<7>. Подробнее про горячие команды запуска читайте в документации.