Важно не только запустить численный расчёт, но и правильно его остановить. Во FlowVision пользователь может задать критерии останова расчёта по времени или количеству расчётных шагов, а также по уровню невязок исследуемых переменных. Последнее позволяет обеспечить требуемую точность решения - останов расчёта происходит тогда, когда изменение переменной происходит в пределах указанного уровня точности.
В этой статье мы расскажем:
Зачем задавать критерий останова?
Не для кого не секрет, что численный расчёт может длиться очень долго. В рабочем ритме нет возможности контролировать расчёт из ППП (ПреПостПроцессора) даже час: "сошёлся расчёт или нет?", "сколько шагов пов времени посчиталось?". Если вы зададите критерий останова вашего расчёта, ответ будет известен заранее.
Чтобы убедиться, что решение "сошлось" и получить конечное решение
Численное решение не всегда очевидно сходится к постоянному значению. Иногда на пути к сходимости его характер принимает весьма замысловатые формы.
С помощью критерия останова можно поймать момент, когда численное решение больше не изменяется с точностью, заданной в настройках критерия. Это и есть конечное значение параметра.
чтобы сравнивать два параметрических расчёта
Допустим, вы изменили геометрию проекта или решили использовать другую модель турбулентности. Сравнивать эти решения необходимо при одинаковых условиях: в один момент времени или на одинаковом шаге, или при достижении сходимости. С помощью критерия останова прекратить расчёт в опредёлённый момент не составит труда.
чтобы запускать солвер в системе очередей
Расчёты FlowVision можно проводить в автономном режиме с помощью системы очередей. Когда на одном из солверов расчёт прекращается, то на его место загружается новый. Этот процесс происходит без вашего участия. Достаточно лишь задать в проектах критерий останова и запустить систему очередей. Тогда к утру будут почитаны несколько проектов, вместо одного, если бы вы останавливали его вручную.
Критерии останова FlowVision
FlowVision может остановить расчёт при задании критерия останова:
-
по времени
Расчёт останавливется, когда время, указанное в критерии останова, превышает моделируемое физическое время из окна мониторинга. В качестве критерия останова можно задать характерное время протекания моделируемого физического процесса.
Ещё один пример - иследование сходимости решения по сетке. При адаптации размер ячейки уменьшается, что приводит к естественному уменьшению шага по времени. И чтобы задать постоянный промежуток времени расчёта исследуемого параметра используйте критерий останова по времени (а не по шагам!). -
по шагам
Если расчёт считается с постоянным шагом по времени, то удобнее останавливать расчёт по шагам. -
по уровню критерия останова (невязки и пользовательские величины)
Останов расчёта происходит, если заданная пользователем изменяется в пределах указанной точности - уровня критерия останова.
Как это работает?
Расчёт FlowVision прекращается, когда будет выполнено любое из условий останова. Если в проекте задано два критерия останова, то расчёт прекратится тогда, когда выполнится любое из этих двух условий останова расчёта, не дожидаясь выполнения второго.
критерий останова по времени / по шагам
Здесь всё предельно просто. Расчёт прекращается, когда значение текущей итерации или моделируемого времени превышает значения, указанные в окне свойств критерия останова.
Невязки / Пользовательский критерий останова
Сначала определимся, что такое невязки и чем они отличаются от пользовательских критериев останова, а потом перейдём к настройкам в интерфейсе FlowVision.
Определения
Невязки - это расхождение между правой и левой частью алгебраического уравнения программного кода FlowVision на каждой итерации. С помощью критерия останова "невязки" можно выбрать уравнения и контролировать уровень невязок этих уравнений.
Пользовательские критерии останова основываются на определении невязок для пользовательских переменных. Например, аэродинамические расчёты считаются сошедшимися, когда невязка аэродинамических коэффициентов Cx, Cy ниже заданного уровня. Коэффициенты продольной и нормальной силы - это составные величины и они задаются как пользовательские переменные.
Принцип действия
Рассмотрим изменение величины переменной в процессе численного расчёта в зависимости от номера шага.
Условие останова во FlowVision запишем:
Пусть в окне свойств невязки / пользовательского критерия останова задан уровень (ε). Тогда расчёт остановится, когда величина изменения переменной за последние n шагов (задаётся как число шагов в окне свойств Условия останова) по отношению к изменению переменной за период проверки условия становится меньше ε.
используйте осреднение Для увеличения скорости сходимости
Чтобы говорить о сходимости решения к некоторому значению, необходимо понимать, как же это решение получается. Динамика изменения решения отображается на графике в окне мониторинга. В течении одного расчётного шага FlowVision несколько раз решает уравнения физических процессов до тех пор, пока разница между средним значением (за расчётный шаг) и текущим будет в пределах указанной в интерфейсе точности. Это последнее значение и наносится на график в окне мониторинга.
Осреднение
Однако чтобы увеличить скорость сходимости решения к стационарному значению, было придумано использовать осреднённые значения переменной. Значение переменной на каждом шаге дополнительно осредняются в пределах указанного периода осреднения. Для этого применяются формулы:
- осреднение зависимости от номера расчётного шага f(n) за N шагов;
- осреднение зависимости от времени f(t) за период времени T .
Осреднение переменной включается:
1) при задании в окне свойств Условия останова значения общего периода и указании в окне свойств Критерия останова осреднение = по общему периоду.
2) можно задать свой период осреднения для каждого критерия. Для этого в окне свойств Критерия останова задаётся значение для периода.
По умолчанию осреднение не используется, так как значение общего периода = 0.
Осреднённый график не отображается в интерфейсе программы. Но с помощью небольшой хитрости можно вывести осреднённое значение на последней итерации в (*.fvrtbl) файл .
Вывод осреднённых значений критерия останова
шаг 1
Добавьте переменную критерия останова в таблицу внешних параметрова (правый клик мыши на "Переменная") и укажите параметры осреднения.
шаг 2
В окне внешних результатов не забудьте поставить галочку напротив "Сгенерировать таблицу внешних параметров"
шаг 3
В файле (*.fvrtbl) солверной части проекта после останова расчёта можно посмотреть осреднённое значение переменной из критерия на последней итерации.
Основные настройки критерия останова
Чтобы правильно задать невязки и пользовательский критерий останова необходимо задать общие настройки Условия останова:
- Осреднение - опция повышения скорости сходимости решения. При осреднении формируется осреднённый график изменения функции невязок и пользовательских критериев останова. В этом случае проверка условия останова происходит для осреднённой зависимости. Можно задать осреднение или по общему периоду (одинаковому для всех критериев останова), или по периоду для каждого конкретного критерия, или не использовать его вовсе. По умолчанию осреднение переменной не используется.
- Общий период - время / количество расчётных шагов: параметр осреднения, задающийся одинаковым для всех критериев останова.
- Период - время / количество расчётных шагов: параметр осреднения, задающийся индивидуально для каждого критерия останова.
- Число шагов - число расчётных шагов с конца, в течении которых проверяется уровень невязок уравнений или пользовательских переменных. Чем больше число шагов по времени задать, тем точнее будет конечное значение исследуемого параметра. Но в этом случае может существенно увеличиться время расчёта до определения сходимости.
- Начало проверки условия: позволяет задать момент времени или номер шага, с которых будут проверяться условия останова.
Необходимость использования этого параметра обясняется тем, что в начале численного расчёта интересующие величины могут принимать нефизичные значения - и это вполне нормально. Однако можно задать начало проверки условия останова после установления решения, чтобы величины, полученные при первых расчётных шагах, не влияли на конечную точность. - Уровень - заданная пользователем точность расчёта переменной.
Общие настройки Условия останова не влияют на принцип действия критериев останова по времени и шагам.
Рекомендации
- Для получения более плавной последовательности значений переменной вы можете использовать осреднение. В некоторых задачах это поможет сгладить возникающие возмущения и в целом увеличит скорость сходимости решения.
- Используйте начало проверки условия, чтобы отсеять значения величин, полученные в начале численного расчёта. Обычно на первых итерациях (10 или 100 - зависит от вашей задачи) происходят резкие колебания параметра, которые лучше исключить для увеличения точности определения конечного значения.
- Чтобы максимально точно определить момент останова решения, увеличивайте параметр число шагов. Но не стоит забывать, что вместе с точностью увеличивается и расчётное время.
- Для задания критерия останова лучше использовать тип = по времени, а не по шагам, так как в некоторых задачах шаг по времени изменяется в процессе расчёта. Например, при включении адаптаций, когда уменьшается размер ячейки. (Напоминаем, что шаг по времени зависит от размера ячейки и скорости). Поэтому за одинаковое число шагов в проектах с разной сеткой будет пройдено разное моделируемое время.