Каковы возможные методы решения сжимаемых уравнений Эйлера

13

Я хотел бы написать свой собственный решатель для сжимаемых уравнений Эйлера, и что наиболее важно, я хочу, чтобы он работал надежно во всех ситуациях. Я хотел бы, чтобы это было на основе FE (DG в порядке). Каковы возможные методы?

Мне известно о выполнении DG 0-го порядка (конечные объемы), и это должно работать очень надежно. Я реализовал базовый решатель FVM, и он отлично работает, но сходимость довольно медленная. Тем не менее, это определенно один вариант.

Я реализовал решатель FE (работает для любой сетки и любого полиномиального порядка на любом элементе) для линеаризованных уравнений Эйлера, но я получаю паразитные колебания (и в конечном итоге он вылетает, поэтому я не могу его использовать, поэтому решаю свою проблему) и Я прочитал в литературе, что нужно стабилизировать это. Если я осуществлю некоторую стабилизацию, будет ли это работать надежно для всех задач (= граничные условия и геометрии)? Какой будет скорость сходимости?

Кроме этого, есть ли какая-нибудь другая надежная методология для уравнений Эйлера (т.е. DG более высокого порядка с некоторой стабилизацией)?

Я знаю, что многие люди пробовали много разных вещей в своих исследовательских кодах, но мне интересен надежный метод, который работает для всех геометрий и граничных условий (редактировать: в 2D и 3D).

Ондржей Чертик
источник

Ответы:

11

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

  • ограничители наклона (или потока ) , которые обеспечивают способ точного вычисления производных вблизи разрывов без введения паразитных колебаний; и
  • Приближенные решатели Римана , которые локально (на каждом ребре / грани сетки) решают начальную задачу с кусочно-постоянными начальными данными и одним разрывом.

Существуют дискретизации конечных разностей (FD), конечных объемов (FV) и конечных элементов (FE), которые включают в себя ограничители и решатели Римана, и все они могут быть сделаны с высокой точностью, по крайней мере, вдали от ударов. Поэтому не имеет смысла категорически утверждать, что методы FE сходятся быстрее, чем методы FV - они будут сопоставимы, если использовать дискретизацию в сопоставимом порядке.

Среди методов FE наиболее подходящими здесь являются разрывные методы Галеркина , поскольку решение на самом деле будет разрывным. Если вы хотите реализовать свой собственный, я предлагаю вам прочитать этот обзорный документ и получить копию текста Hesthaven & Warburton, чтобы понять основы. Тогда есть много работ на DG для сжимаемого потока .

Если вы хотите использовать чужой код, и, поскольку я знаю, что вы используете Python, вы можете взглянуть на хедж-код Андреаса Клёкнера , который имеет интерфейс Python и может работать на графических процессорах. Возможно, есть и другие хорошие коды DG и много хороших кодов FV (например, Clawpack , который также имеет интерфейс Python ).

Есть также более новые методы высокого порядка, такие как спектральная разница. В отношении недавней перспективы см. Cheng & Shu 2009, Схемы высокого порядка для CFD: A Review или Ekaterinaris 2005, Методы высокой точности и низкой численной диффузии для аэродинамики .

Дэвид Кетчесон
источник
Спасибо Дэвиду, особенно за все ссылки на документы. FV - просто нулевой порядок, не так ли? Или FV высшего порядка как-то отличается от DG того же порядка? Я хочу реализовать что-то сам, чтобы полностью понять, что происходит. Код хеджирования выглядит круто.
Ондржей Чертик
1
FE и FV часто эквивалентны для схем первого порядка. Схемы более высокого порядка обычно различны, и ни одна из них не является подмножеством другой.
Дэвид Кетчон
1
Вы можете объединиться в некоторой степени с «реконструкцией DG». FV обычно использует кусочно-постоянные тестовые функции и восстанавливает, используя соседей, чтобы поднять порядок. DG обычно использует подходящее тестовое пространство (Galerkin) и повышает внутренний порядок. Обратите внимание, что DG по-прежнему нужны ограничители для сильных ударов, и тогда это уже не метод Галеркина. Реконструкция DG позволяет вам сделать и то, и другое: поднять внутренний порядок и реконструировать, используя соседей, поэтому обычные FV и DG являются ограничивающими случаями.
Джед Браун
Если я моделирую физическую систему, которая, по моему мнению, по эмпирическим причинам не отображает ударные волны, то какой метод хорош?
Sigfpe
@sigfpe было бы лучше, если бы вы опубликовали новый вопрос с более подробной информацией.
Дэвид Кетчес