Riemann-Problem

Aus testwiki
Zur Navigation springen Zur Suche springen

Als Riemann-Problem (nach Bernhard Riemann (1826–1866)) wird in der Analysis ein spezielles Anfangswertproblem bezeichnet, bei dem die Anfangsdaten als konstant definiert werden, bis auf einen Punkt, in dem sie unstetig sind.

Riemann-Probleme sind hilfreich für das Verständnis hyperbolischer partieller Differentialgleichungen, da in ihnen alle Phänomene wie Schocks, Verdichtungsstöße oder Verdünnungswellen auftauchen. Es sind auch für komplizierte nichtlineare Gleichungen wie die Euler-Gleichungen der Strömungsmechanik exakte Lösungen konstruierbar, was nicht für beliebige Anfangsdaten möglich ist.

In der numerischen Mathematik tauchen Riemann-Probleme in natürlicher Weise in Finite-Volumen-Verfahren zur Lösung von Erhaltungsgleichungen auf. Dort werden die Riemann-Probleme approximativ mittels sogenannter Riemann-Löser angegangen.

Erhaltungsgleichung

Als wichtige hyperbolische partielle Differentialgleichung kann man Erhaltungsgleichungen des folgenden Typs betrachten:

tU+xF(U)=0U(x,0)=U0(x)

Dabei gilt U:×+n und F:nn.

Beim Riemann-Problem gilt für den Anfangswert:

U0(x)={UL,x<0UR,x>0

für UL,URn.

Linearer Fluss

Für den linearen Fluss

F(U)=AU,An×n

lässt sich die analytische Lösung berechnen. Für ein hyperbolisches Problem ist die Matrix A stets diagonalisierbar:

TAT1=Λ=diag(λ1,,λn)

mit einer Basistransformationsmatrix Tn×n.

Mit der Transformation W:=T1U kann man die PDGL entkoppeln:

{tU+AxU=0U(x,0)=U0(x){tW+ΛxW=0W(x,0)=W0(x):=T1U0(x)

Entkopplung bedeutet in diesem Fall, dass in der i-ten Zeile der PDGL nur noch Ableitungen von Wi vorkommen.

Jede einzelne Gleichung entspricht einer linearen, skalaren Transportgleichung und somit ist die Lösung einfach zu bestimmen:

Wi(x,t)=(W0)i(xλit).

Rücktransformation ergibt nun die gesuchte Lösung:

U(x,t)=TW(x,t).

Man kann die Lösung auch anders erhalten, indem man den Sprung der Anfangswerte in der neuen Basis darstellt:

URUL=j=1nαjtjmit αj,

wobei die tjn die Eigenvektoren von A sind (also: T=(t1,,tn)). Nun ist die Lösung so gegeben:

U(x,t)=UL+λj<xtαjtj=URλj>xtαjtj

Literatur

  • Eleuterio F. Toro: Riemann Solvers and Numerical Methods for Fluid Dynamics, Springer Verlag, Berlin 1999, ISBN 3-540-65966-8.
  • Randall J. LeVeque: Finite-Volume Methods for Hyperbolic Problems, Cambridge University Press, Cambridge 2004, ISBN 0-521-81087-6.