Jak stosować warunki brzegowe, stosując metodę o skończonej objętości?

16

Zgodnie z moim poprzednim pytaniem próbuję zastosować warunki brzegowe do tej niejednorodnej siatki o skończonej objętości,

Granica po lewej stronie zawiera komórkę widma.

Chciałbym zastosować warunek brzegowy typu Robin do lhs domeny ( , tak aby:x=xL)

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

gdzie jest wartością graniczną; a , d są współczynnikami zdefiniowanymi odpowiednio na granicy, doradztwie i dyfuzji; u x = uσLa,d , jest pochodnąuocenianą na granicy, aujest zmienną, dla której rozwiązujemy.ux=uxuu

Możliwe podejścia

Mogę wymyślić dwa sposoby wdrożenia tego warunku brzegowego na powyższej siatce o skończonej objętości:

  1. Podejście do komórki duchów.

    Napisz jako skończonej różnicy w tym komórki duchów. σ L = d u 1 - u 0ux

    σL=du1u0h+au(xL)

    A. Następnie użyj interpolacji liniowej z punktami i x 1, aby znaleźć wartość pośrednią, u ( x L ) .x0x1u(xL)

    B. Alternatywnie znajdź uśredniając komórki, u ( x L ) = 1u(xL)u(xL)=12(u0+u1)

    W obu przypadkach zależność od komórki-widma można wyeliminować w zwykły sposób (przez podstawienie do równania skończonej objętości).

  2. Podejście ekstrapolacyjne.

    Dopasuj funkcję liniową (lub kwadratową) do , używając wartości w punktach x 1 , x 2 ( x 3 ). Zapewni to wartość u ( x L ) . Funkcję liniową (lub kwadratową) można następnie różnicować, aby znaleźć wyrażenie na wartości pochodnej, u x ( x L ) , na granicy. To podejście nie korzysta z komórki-widma.u(x)x1,x2x3u(xL)ux(xL)

pytania

  • Które podejście z tych trzech (1A, 1B lub 2) jest „standardowe” lub poleciłbyś?
  • Które podejście wprowadza najmniejszy błąd lub jest najbardziej stabilne?
  • Wydaje mi się, że mogę samodzielnie wdrożyć podejście do komórki-widma, jednak w jaki sposób można zastosować podejście do ekstrapolacji, czy to podejście ma nazwę?
  • Czy jest jakaś różnica stabilności między dopasowaniem funkcji liniowej lub równaniem kwadratowym?

Równanie specyficzne

Chciałbym zastosować tę granicę do równania rada-dyfuzja (w formie konserwatorskiej) z nieliniowym terminem źródłowym,

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

Discretising tego równania na wyżej siatki pomocą -method daje,θ

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

Jednak dla punktu granicznego ( ) wolę zastosować w pełni niejawny schemat ( θ = 1 ), aby zmniejszyć złożoność,j=1θ=1

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

Zwróć uwagę na punkt-widmo , zostanie on usunięty poprzez zastosowanie warunku brzegowego.w0n+1

Współczynniki mają definicje,

ra=Δthj(ahj2h+dh)

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

rc=Δthj(ahj2h++dh+)

hΔtadr

boyfarrell
źródło
1
LeVeque's more recent book on finite volume methods advocates ghost cells, due to their simplicity of implementation, but I don't recall the discussion of error terms.
Geoff Oxberry
Can you put down the equations you want to solve? The way to go will also depend on the problem. E.g., it may well be that because of the 'Neumann' part, the boundary conditions are like naturally resolved in the discrete formulation.
Jan
@GeoffOxberry thanks for the suggestion. I am happy using ghost cell, I will try and implement in that way.
boyfarrell
@Jan I initially avoided putting the equations down because of the complexity due to the non-uniform mesh discretisation, but I just updated the question with these details. This is an advection-diffusion problem. I'm not too sure what you mean by "naturally resolved".
boyfarrell
Like Neumann bc's are naturally resolved in FEM schemes for, e.g.,Poisson's eqn. For FVM I think of: Consider the first cell 0hdx(au+dux)dx=(au+dux)|x=h1(au+dux)|x=0=s . If you have a value for ux on the boundary, there is no need to discretize it.
Jan

Odpowiedzi:

9

This is rather a general remark on FVM than an answer to the concrete questions. And the message is that there shouldn't be the need for such an adhoc discretization of the boundary conditions.

Unlike in FE- or FD-methods, where the starting point is a discrete ansatz for the solution, the FVM approach leaves the solution untouched (at first) but averages on a segmentation of the domain. The discretization of the solution comes into play only when the obtained system of balance equations is turned into an algebraic equation system by approximating the fluxes across the interfaces.

In this sense, in view of the boundary conditions, I advise to stick to the continuous form of the solution as long as possible and to introduce the discrete approximations only at the very end.

Say, the equation

ut=aux+duxx+s(x,u,t)
holds on the entire domain. Then it holds on the subdomain [0,h1), and an integration in space gives
0h1utdx=0h1x(au+dux)dx+0h1s(x,u,t)dx=(au+dux)|x=h1(au+dux)|x=0+0h1s(x,u,t)dx,
which is the contribution of the first cell to the equation system. Note that, apart from taking only averages, there has been no discretization of u.

But now, to turn this into an algebraic equation, one typically assumes that on cell Ci the function u is constant in space, i.e. u(t,x)|Ci=ui(t). Thus, having associated u(xi)ui, one can express ux|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
źródło
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