Как следует применять граничные условия при использовании метода конечных объемов?

16

Исходя из моего предыдущего вопроса, я пытаюсь применить граничные условия к этой неоднородной сетке конечного объема,

Граница левой стороны включает ячейку-призрак.

Я хотел бы применить граничное условие типа Робина к lhs области ( x=xL) , так что

σL=(dux+au)|x=xL

где - граничное значение; a , d - коэффициенты, определенные на границе, адвекции и диффузии соответственно; u x = uσLa,d - производная отu,вычисленная на границе, аu- переменная, для которой мы решаем.ux=uxuu

Возможные подходы

Я могу думать о двух способах реализации этого граничного условия на вышеупомянутой сетке конечного объема:

  1. Подход клетки-призрака.

    Запишите как конечную разницу, включая ячейку-призрак. σ L = d u 1 - u 0ux

    σL=du1u0h+au(xL)

    A. Затем используйте линейную интерполяцию с точками и x 1, чтобы найти промежуточное значение u ( x L ) .x0x1u(xL)

    Б. В качестве альтернативы найдите путем усреднения по ячейкам, u ( x L ) = 1u(xL)u(xL)=12(u0+u1)

    В любом случае зависимость от клетки-призрака может быть устранена обычным способом (путем подстановки в уравнение конечного объема).

  2. Экстраполяционный подход.

    Установите линейную (или квадратичную) функцию для , используя значения в точках x 1 , x 2 ( x 3 ). Это обеспечит значение в u ( x L )u(x)x1,x2x3u(xL) . Затем можно дифференцировать линейную (или квадратичную) функцию, чтобы найти выражение для значения производной на границе. Этот подход не использует призрачную ячейку.ux(xL)

Вопросов

  • Какой подход из трех (1А, 1В или 2) является «стандартным» или вы бы порекомендовали?
  • Какой подход вносит наименьшую ошибку или является наиболее стабильным?
  • Я думаю, что могу реализовать подход с ячейками-призраками, однако, как можно реализовать подход экстраполяции, у этого подхода есть имя?
  • Есть ли разница в устойчивости между подгонкой линейной функции или квадратным уравнением?

Конкретное уравнение

Я хочу применить эту границу к уравнению адвекции-диффузии (в форме сохранения) с нелинейным исходным членом,

ut=aux+duxx+s(x,u,t)

Дискретизация этого уравнения на приведенной выше сетке с использованием метода даетθ

wjn+1θrawj1n+1θrbwjn+1θrcwj+1n+1=wjn+(1θ)rawj1n+(1θ)rbwjn+(1θ)rcwj+1n+s(xj,tn)

Однако для граничной точки ( ) я предпочитаю использовать полностью неявную схему ( θ = 1 ), чтобы уменьшить сложность,j=1θ=1

w1n+1raw0n+1rbw1n+1rcw2n+1=w1n+s1n

Обратите внимание на призрачную точку , она будет удалена путем применения граничного условия.w0n+1

Коэффициенты имеют определения,

ra=Δthj(ahj2h+dh)

rb=Δthj(a2[hj1hhj+1h+]+d[1h1h+])

rc=Δthj(ahj2h++dh+)

Все переменные определены так, как показано на рисунке выше. Наконец, Δ T , который является временным шагом (hΔt NB это упрощенный случай с постоянными и д коэффициентами, на практике "ad » коэффициенты немного более сложные по этой причине).r

boyfarrell
источник
1
Более поздняя книга LeVeque о методах конечных объемов защищает клетки-призраки из-за их простоты реализации, но я не вспоминаю обсуждение терминов ошибок.
Джефф Оксберри
Можете ли вы записать уравнения, которые вы хотите решить? Путь будет также зависеть от проблемы. Например, вполне возможно, что из-за части «Неймана» граничные условия подобны естественным образом разрешенным в дискретной формулировке.
января
@GeoffOxberry спасибо за предложение. Я счастлив, используя Ghost Cell, я постараюсь реализовать таким образом.
boyfarrell
@ Ян Первоначально я избегал ставить уравнения из-за сложности из-за неравномерной дискретизации сетки, но я только обновил вопрос этими деталями. Это проблема адвекции-диффузии. Я не совсем уверен, что вы подразумеваете под "естественно решенным".
boyfarrell
Как и БК Неймана, естественно разрешаются в схемах FEM, например, для уравнения Пуассона. Для FVM я думаю о: Рассмотрим первую ячейку . Есливас есть значение U х0hdx(au+dux)dx=(au+dux)|x=h1(au+dux)|x=0=suxна границе нет нужды его дискретизировать.
января

Ответы:

9

Это скорее общее замечание о FVM, чем ответ на конкретные вопросы. И сообщение состоит в том, что не должно быть необходимости в такой специальной дискретизации граничных условий.

В отличие от FE- или FD-методов, где отправной точкой является дискретный анзац для решения, подход FVM оставляет решение нетронутым (сначала), но усредняет по сегментации домена. Дискретизация решения вступает в силу только тогда, когда полученная система уравнений баланса превращается в систему алгебраических уравнений путем аппроксимации потоков через границы раздела.

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

Скажем, уравнение выполняется на всей области. Тогда оно выполнено на подобласти [ 0 , h 1 ) , и интегрирование в пространстве дает h 1 0 u

ut=aux+duxx+s(x,u,t)
[0,h1)
0h1utdx=0h1x(au+dux)dx+0h1s(x,u,t)dx=(au+dux)|x=h1(au+dux)|x=0+0h1s(x,u,t)dx,
u

Ciuu(t,x)|Ci=ui(t)u(xi)uiux|hi at the cell boarders via the difference quotient in ui and ui+1. To express u at the cell boarders one can use interpolation (i.e. central differences or upwind schemes).

What to do at the boundary? In the example, it is all about approximating (au+dux)|x=0, no matter what has been done to u so far.

  • Given u|x=0=gD one can introduce a ghost cell and the condition that an interpolant between u0 and u1 is equal to gD at the boarder.

  • Given ux|x=0=gN one can introduce a ghost cell and the condition that an approximation to the derivative between u0 and u1 matches gN at the boarder

  • If the flux itself is prescribed: (au+dux)|x=0=gR, there is no need for a discretization.

However, I am not sure, what to do in the case that there are Robin type bc's that do not match the flux directly. This, will need some regularization because of the discontinuity of the advection and diffusion parameters.


===> Some personal thoughts on FVM <===

  • FVM is not a scaled FDM, as examples of 1D Poisson's equations on a regular grid often suggest
  • There shouldn't be a grid in FVM, there should be cells with interfaces and, if necessary, centers
  • That's why I think that a stencil formulation of the discretization is not suitable
  • Assembling of the equation system should be done according to the discretization approach, i.e. by iterating over the cells rather than defining an equation for every unknown. I mean to think of the i-th row of the coefficient matrix as the part of the problem posed on cell Ωi, rather than of the equation that is associated with ui.
  • This is particularly important for 2D or 3D problems but may also help to have a clear notation in 1D: Make a difference between the volume (in 1D: length) of the cell, here hi, and the distance between the centers, maybe in 1D: di:=di,i+1=|xixi+1|.

Jan
источник
Thanks for your guidance while I was learning about this method. Maybe I can share my thoughts too. I agree it is best to say with the FVM form for as long as possible; particularly for the boundary conditions as you have shown! But I think it is very helpful when implementing to write the equation in matrix form; it is a precise and clear notation. Also, the stability and other numerical properties crucially depend on how the problem is discretised (for FVM this means how the fluxes an the cell faces are approximated). In that respect I prefer a matrix equations, to iteration over cells.
boyfarrell
Maybe my last point was ambiguous. In the end, you will have a coefficient matrix and a variable vector. I will edit my post. I was more about interpreting than actually doing.
Jan
Fantastic, I understand your point. Thanks.
boyfarrell