Искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики

Angela Straccia 29/03/2016
Share this on Facebook Share this on Twitter Share this on Google+ Share this on LinkedIn

Приходилось ли Вам моделировать турбулентные течения при решении задач вычислительной гидродинамики? Тогда вы наверняка знаете, что выполнение расчета иногда занимает довольно много времени по причине сложностей, возникающих при поиске численного решения. Эти сложности обусловлены нелинейностью уравнений, описывающих турбулентные потоки. Сократить время расчета можно, если сначала решить задачу с искусственно завышенным значением коэффициента вязкости жидкости, а затем использовать полученное решение в качестве начального приближения для задачи с более низким значением вязкости. Мы покажем вам, как реализовать указанный подход в среде COMSOL Multiphysics.

Почему искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики?

Прежде чем приступать к моделированию течения жидкости, нужно рассчитать число Рейнольдса, характеризующее это течение. Число Рейнольдса по определению равно:

Re = \frac{\rho U d}{\mu}

Здесь \rho — плотность движущейся среды, а \mu — динамический коэффициент вязкости, U — характерная скорость, d — характерный линейный размер системы.

Число Рейнольдса характеризует отношение сил инерции и вязкости, действующих в потоке. Зная число Рейнольдса, можно определить, какой режим течения — ламинарный или турбулентный — мы должны моделировать в COMSOL Multiphysics. Например, в микроканале, где характерная скорость и линейный размер относительно невелики, значение число Рейнольдса мало, а значит режим течения ламинарный. Обратный пример — движение автомобиля с высокой скоростью. В этом случае течение характеризуется высоким значением числа Рейнольдса, следовательно, режим течения турбулентный. В одной из предыдущих статей блога мы более подробно рассказывали об определении режима течения.

Найти численное решение задачи о турбулентном течении, как правило, сложнее, чем в случае ламинарного потока. Чтобы понять, почему, давайте обратимся к уравнениям, описывающим поле течения. В COMSOL Multiphysics турбулентные течения описываются осрдненными по Рейнольдсу уравнениями Навье-Стокса (RANS). В уравнения RANS вводится новая переменная, получившая название турбулентной вязкости, которая характеризует степень турбулентности потока. Турбулентная вязкость рассчитывается с использованием дополнительных уравнений, вид которых определяется используемой моделью турбулентности.

Например, для расчета турбулентной вязкости в k-epsilon модели турбулентности используются величины кинетической энергии турбулентности (k) и турбулентной диссипации (epsilon). Уравнения модели турбулентности по форме похожи на уравнения Навье-Стокса и тоже содержат линейные и нелинейные члены. Нелинейность уравнений турбулентности объясняет, почему при высоких числах Рейнольдса гораздо сложнее добиться сходимости задачи. Узнать, как выбрать модель турбулентности, вы можете из этой статьи в блоге.

Таким образом, для моделирования течений при больших числах Рейнольдса мы должны использовать модели турбулентности, и уравнения, которые решает COMSOL Multiphysics в этом случае, становятся сильно нелинейными. Использование хороших начальных приближений может улучшить сходимость нелинейных задач, как описано здесь. Степень нелинейности уравнений определяется вязкостью жидкости. Если сначала задать в параметрах модели высокое значения коэффициента вязкости, то тогда мы сможем решить слабо нелинейную задачу, которая лучше сходится. Затем мы сможем использовать полученное решение в качестве хорошего начального приближения для жидкости с более низкой вязкостью. Таким образом, мы повысим сходимость той задачи, которую хотим решить. Этот подход называется методом завышения вязкости.

В рамках этого подхода задача решается последовательно, при этом сначала вязкость жидкости искусственно завышается, а затем постепенно снижается, пока не достигнет заданного значения. Решение задачи, полученное при завышенной вязкости, используется в качестве начального приближения для следующего шага с меньшей вязкостью. Сначала мы решаем задачу с более высокой вязкостью, снижая таким образом числом Рейнольдса. То есть мы начинаем с решения слабо нелинейной задачи, которая лучше сходится. Уменьшая вязкость (и тем самым увеличивая число Рейнольдса) до заданного значения, мы переходим от слабо нелинейной задачи к сильно нелинейной, и в конце этой процедуры мы получаем решение исходной задачи. Давайте теперь посмотрим, как этот подход можно реализовать в COMSOL Multiphysics.

Реализация метода искусственного завышения вязкости в COMSOL Multiphysics

Давайте предположим, что вы уже построили CFD-модель в COMSOL Multiphysics и теперь хотите улучшить ее сходимость. Метод завышения вязкости состоит из трех этапов.

  • Задание повышающего параметра
  • Умножение коэффициента вязкости на повышающий параметр
  • Настройка параметрического исследования

Сначала нужно задать новый параметр, на который мы будем умножать коэффициент вязкости. Значение, которое мы установили для "visc_ramp" в узле Parameters не важно, так как позже мы зададим его через настройку параметрического исследования (auxiliary sweep).

Defining parameters Искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики
Задаем параметр.

Затем перейдем к узлу Materials и умножим коэффициент вязкости на параметр "visc_ramp". Например, если "visc_ramp" имеет значение 100, расчет будет выполнен для жидкости, имеющей в 100 раз более высокий коэффициент вязкости, чем задано по условию задачи. В конечном итоге, когда значение «visc_ramp» достигнет 1, коэффициент вязкости жидкости вернется к своему фактическому значению.

Multiplying viscosity  Искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики
Умножаем коэффициент вязкости на параметр "visc_ramp".

В настройках стационарного решателя мы задаем значения варьируемого параметра "visc_ramp", равные 1000, 100, 10 и 1. После запуска параметрического исследования сначала будет рассчитано решение для первого значения параметра "visc_ramp" (1000), которое затем автоматически будет использовано в качестве начального приближения для поиска решения при следующем значении параметра "visc_ramp" (100). Параметрическое исследование завершится, когда параметр «visc_ramp» станет равен 1, то есть когда будет найдено решение для фактической вязкости жидкости.

Stationary study step Искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики
Настройка стационарного решателя.

В процессе выполнения расчета на вкладке Progress отображается текущее значение параметра "visc_ramp". В итоге сходимость достигнута, и мы можем посмотреть результаты.

Progress tab Искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики
Вкладка Progress со значением параметра "visc_ramp", равным 100.

Описанная процедура искусственного завышения вязкости проиллюстрирована ниже. На рисунке показаны линии тока и поле скорости турбулентного потока за обратным уступом, рассчитанные с помощью модели из Галереи приложений.

Velocity plot of turbulent backstep results Искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики
Линии тока и поле скорости при турбулентном течении в канале с обратным уступом для трех разных коэффициентов вязкости.

Выбор параметра при настройке параметрического исследования

Чаще всего в качестве начального значения повышающего параметра для достижения сходимости достаточно задать 100 или 10. Однако в тех случаях, когда добиться сходимости труднее, рекомендуется использовать более высокое начальное значение повышающего параметра, а затем снижать его значение на порядок (например, 1000, 100, 10, 1).

В данном случае мы начали расчет поля течения для очень вязкой жидкости (1000), определили промежуточные значения "visc_ramp" (100 и 10), чтобы добиться сходимости при фактическом значении коэффициента вязкости жидкости ("visc_ramp" = 1). Если не удается найти решение при следующем более низком значении вязкости, то автоматически будет сделана попытка получить решение при значении, лежащем между последним сошедшимся и следующим заданным пользователем значениями параметра. Этот метод известен как бектрекинг.

Чтобы продемонстрировать работу бектрекинга, давайте запустим параметрическое исследование, выбрав в качестве значений "visc_ramp" 1000 и 1. После того, как решение для повышающего параметра, равного 1000, найдено, программа попытается решить задачу при фактическом значении вязкости. Если решателю не удается получить сходящееся решение, тогда расчет повторяется для промежуточного значения параметра (в данном случае, 501). Когда решение для параметра, равного 501, получено, программа снова попытается решить задачу при фактическом значении вязкости (параметр завышения вязкости равен 1), и, на этот раз расчет завершится успешно!

Progress tab for solution Искусственное завышение вязкости улучшает сходимость задач вычислительной гидродинамики
Вкладка Progress со значением параметра "visc_ramp", равным 501.

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

Иногда, несмотря на использование метода бектрекинга, решение перестает сходится при значении параметра больше 1. Как правило, это означает, что для расчета поля течения используется слишком грубая сетка. В этом случае начать надо с построения более плотной сетки. Кроме того, стоит помнить о необходимости исследования задачи на чувствительность к параметрам сетки. Такой анализ является неотъемлемой частью верификации полученных результатов.

Эффективность методов завышения вязкости и постепенного повышения нелинейности

Мы показали, как использовать искусственное завышение вязкости в COMSOL Multiphysics для улучшения сходимости задач вычислительной гидродинамики. Для этого мы настроили параметрическое исследование, начав решение с задачи со слабой нелинейностью, а затем постепенно повышали степень нелинейности до тех пор, пока не получили решение исходной задачи. Метод искусственного завышения вязкости довольно полезен при решении задач вычислительной гидродинамики, характеризующихся высокими значениями числа Рейнольдса, другими словами, при моделировании турбулентных течений.

Описанный способ снижения нелинейности может применяться в самых разных задачах. Например, вместо завышения вязкости мы можем постепенно увеличивать силу тяжести в задачах свободной конвекции или индекс текучести "n" при моделировании течения неньютоновских жидкостей. Описанная методика также может быть использована при решении самого широкого класса нелинейных мультифизических задач, о чем мы рассказываем в этой публикации.

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

Хотите узнать больше об этих методах и их использовании при решении ваших собственных задач в COMSOL Multiphysics? Пожалуйста, свяжитесь с нами.


Loading Comments...

Categories


Tags