Wie sollen Randbedingungen bei Verwendung der Finite-Volumen-Methode angewendet werden?

15

Ausgehend von meiner vorherigen Frage versuche ich, Randbedingungen auf dieses ungleichmäßige endliche Volumen-Netz anzuwenden.

Linke Seite Grenze enthalten Geisterzelle.

Ich möchte eine Robin-Typ-Randbedingung auf die lhs der Domäne anwenden ( x=xL) , so dass

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

wobei σL der Grenzwert ist; a,d sind an der Grenze, Advektion bzw. Diffusion definierte Koeffizienten; ux=ux , ist die Ableitung vonudie an der Grenze ausgewertet wird, unduist die Variable, nach der wir lösen.

Mögliche Ansätze

Ich kann mir zwei Möglichkeiten vorstellen, um diese Randbedingung auf dem obigen endlichen Volumen-Mesh zu implementieren:

  1. Ein Geisterzellen-Ansatz.

    Schreiben Sie als endlichen Unterschied einschließlich einer Geisterzelle. σ L = d u 1 - u 0ux

    σL=du1u0h+au(xL)

    A. Verwenden Sie dann die lineare Interpolation mit den Punkten und x 1 , um den Zwischenwert u ( x L ) zu ermitteln .x0x1u(xL)

    B. Alternativ können Sie durch Mitteln über die Zellen ermitteln. U (u(xL)u(xL)=12(u0+u1)

    In beiden Fällen kann die Abhängigkeit von der Geisterzelle auf übliche Weise beseitigt werden (durch Einsetzen in die endliche Volumengleichung).

  2. Ein Extrapolationsansatz.

    Passen Sie eine lineare (oder quadratische) Funktion an an, indem Sie die Werte an den Punkten x 1 , x 2 ( x 3 ) verwenden. Dies liefert den Wert bei u ( x L ) . Die lineare (oder quadratische) Funktion kann dann differenziert werden, um einen Ausdruck für den Wert der Ableitung u x ( x L ) an der Grenze zu finden. Dieser Ansatz verwendet keine Geisterzelle.u(x)x1,x2x3u(xL)ux(xL)

Fragen

  • Welcher Ansatz der drei (1A, 1B oder 2) ist "Standard" oder würden Sie empfehlen?
  • Welcher Ansatz führt den kleinsten Fehler ein oder ist der stabilste?
  • Ich denke, ich kann den Geisterzellenansatz selbst implementieren. Wie kann der Extrapolationsansatz implementiert werden? Hat dieser Ansatz einen Namen?
  • Gibt es einen Stabilitätsunterschied zwischen der Anpassung einer linearen Funktion oder einer quadratischen Gleichung?

Spezifische Gleichung

Ich möchte diese Grenze auf die Advektions-Diffusions-Gleichung (in Erhaltungsform) mit nichtlinearem Quellterm anwenden.

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

Diskretisieren dieser Gleichung auf dem obigen Netz unter Verwendung von θ thgr; -Methode ergibt

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

Für den Grenzpunkt ( ) bevorzuge ich jedoch ein vollständig implizites Schema ( θ = 1)j=1θ=1 ), um die Komplexität zu verringern.

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

Beachten Sie den Geisterpunkt durch Anwenden der Randbedingung entfernt wird.w0n+1

Die Koeffizienten haben die Definitionen,

ra=Δthj(ahj2h+dh)

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

rc=Δthj(ahj2h++dh+)

All die " " -Variablen sind wie im obigen Diagramm definiert. Schließlich Δ t , die der Zeitschritt (istNBDies ist einvereinfachterFall mit konstantem a undhΔta Koeffizienten inPraxis des " rdr “ Koeffizienten aus diesem Grunde etwas komplizierter sind).

Boyfarrell
quelle
1
LeVeques neueres Buch über Methoden mit endlichem Volumen befürwortet Geisterzellen aufgrund ihrer einfachen Implementierung, aber ich erinnere mich nicht an die Diskussion über Fehlerbegriffe.
Geoff Oxberry
Können Sie die zu lösenden Gleichungen aufschreiben? Der Weg wird auch vom Problem abhängen. ZB kann es gut sein, dass aufgrund des Neumann-Teils die Randbedingungen wie in der diskreten Formulierung natürlich aufgelöst sind.
Jan
@GeoffOxberry danke für den Vorschlag. Ich bin glücklich mit Ghost Cell, ich werde versuchen, auf diese Weise umzusetzen.
Boyfarrell
@Jan Ich habe es anfangs vermieden, die Gleichungen wegen der Komplexität aufgrund der ungleichmäßigen Netzdiskretisierung aufzuschreiben, aber ich habe die Frage nur mit diesen Details aktualisiert. Dies ist ein Advektions-Diffusions-Problem. Ich bin mir nicht sicher, was Sie mit "natürlich gelöst" meinen.
Boyfarrell
Wie Neumann werden bc natürlich in FEM-Schemata für z. B. Poissonsche Gleichung aufgelöst. Für FVM denke ich an: Betrachte die erste Zelle . Wenn Sie einen Wert für u x haben0hdx(au+dux)dx=(au+dux)|x=h1(au+dux)|x=0=suxAn der Grenze muss es nicht diskretisiert werden.
Jan

Antworten:

9

Dies ist eher eine allgemeine Bemerkung zu FVM als eine Antwort auf die konkreten Fragen. Und die Botschaft ist, dass eine solche ad-hoc-Diskretisierung der Randbedingungen nicht erforderlich sein sollte.

Anders als bei FE- oder FD-Methoden, bei denen der Ausgangspunkt ein diskreter Ansatz für die Lösung ist, lässt der FVM-Ansatz die Lösung (zunächst) unberührt, mittelt jedoch auf einer Segmentierung der Domäne. Die Diskretisierung der Lösung kommt nur dann zum Tragen, wenn das erhaltene Gleichungssystem in ein algebraisches Gleichungssystem umgewandelt wird, indem die Flüsse über die Grenzflächen angenähert werden.

In diesem Sinne rate ich angesichts der Randbedingungen, möglichst lange an der stetigen Form der Lösung festzuhalten und die diskreten Näherungen erst ganz am Ende einzuführen.

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,
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
quelle
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