Problema di Riemann

Un'immagine del matematico Bernhard Riemann, dal quale il problema di Riemann prende il nome

Un problema di Riemann, così chiamato dal nome del matematico e fisico tedesco Bernhard Riemann, è un problema ai valori iniziali che consiste in una legge di conservazione e da una condizione iniziale composta da due stati costanti separati da una singola discontinuità.[1] Il problema di Riemann è particolarmente utile alla comprensione e risoluzione di sistemi iperbolici come le equazioni di Eulero, poiché alcune proprietà come le onde di shock e di rarefazione, analizzabili nel contesto di un problema di Riemann, compaiono naturalmente nella loro soluzione sotto forma di caratteristiche.

In analisi numerica, i problemi di Riemann figurano all'interno dei metodi numerici dei volumi finiti: per questo sono ampiamente usati in gasdinamica e fluidodinamica computazionale, nell'ambito delle quali i problemi di Riemann vengono risolti per mezzo di appositi solutori.

Il problema di Riemann in gasdinamica

Struttura del problema di Riemann

Come esempio si investigano le proprietà del problema di Riemann monodimensionale applicato alla gasdinamica.[2] Esso è costituito dalle leggi linearizzate della dinamica dei gas (in cui ρ ( x , t ) {\displaystyle \rho \left(x,t\right)} e u ( x , t ) {\displaystyle u\left(x,t\right)} sono rispettivamente la densità e la velocità delle particelle del gas, ρ 0 {\displaystyle \rho _{0}} è un valore di densità di riferimento e si assume a 0 {\displaystyle a\geq 0} senza perdita di generalità):

ρ t + ρ 0 u x = 0 u t + a 2 ρ 0 ρ x = 0 {\displaystyle {\begin{aligned}{\frac {\partial \rho }{\partial t}}+\rho _{0}{\frac {\partial u}{\partial x}}&=0\\[8pt]{\frac {\partial u}{\partial t}}+{\frac {a^{2}}{\rho _{0}}}{\frac {\partial \rho }{\partial x}}&=0\end{aligned}}}

corredate dalla seguente condizione iniziale:

[ ρ u ] = [ ρ L u L ] = U L  per  x 0 e [ ρ u ] = [ ρ R u R ] = U R  per  x > 0 . {\displaystyle {\begin{bmatrix}\rho \\u\end{bmatrix}}={\begin{bmatrix}\rho _{L}\\u_{L}\end{bmatrix}}=U_{L}{\text{ per }}x\leq 0\qquad {\text{e}}\qquad {\begin{bmatrix}\rho \\u\end{bmatrix}}={\begin{bmatrix}\rho _{R}\\u_{R}\end{bmatrix}}=U_{R}{\text{ per }}x>0{\text{.}}}

Il punto x = 0 {\displaystyle x=0} separa i due differenti stati iniziali, definiti sinistro e destro rispettivamente. Il sistema di equazioni differenziali può essere riscritto in forma conservativa:

U t + A U x = 0 {\displaystyle U_{t}+A\cdot U_{x}=0} :

dove

U = [ ρ u ] , A = [ 0 ρ 0 a 2 ρ 0 0 ] {\displaystyle U={\begin{bmatrix}\rho \\u\end{bmatrix}},\quad A={\begin{bmatrix}0&\rho _{0}\\{\frac {a^{2}}{\rho _{0}}}&0\end{bmatrix}}}

e il pedice indica la derivazione parziale rispetto a x {\displaystyle x} o t {\displaystyle t} .

Gli autovalori della matrice A {\displaystyle A} , λ 1 = a {\displaystyle \lambda _{1}=-a} e λ 2 = a {\displaystyle \lambda _{2}=a} , rappresentano le velocità di propagazione delle onde all'interno del mezzo. La struttura del problema di Riemann in esame consiste quindi in due impulsi che si propagano a partire dall'origine del sistema di riferimento ( x = 0 {\displaystyle x=0} ), il primo con velocità pari a a {\displaystyle -a} , il secondo con velocità pari ad a {\displaystyle a} . Nel piano cartesiano x t {\displaystyle x-t} queste onde seguono le cosiddette curve caratteristiche del sistema, che in questo caso sono due rette di pendenza pari a a 1 {\displaystyle -a^{-1}} e a 1 {\displaystyle a^{-1}} : t = x / a {\displaystyle t=-x/a} e t = x / a {\displaystyle t=x/a} . A sinistra della caratteristica t = x / a {\displaystyle t=-x/a} si conserva lo stato iniziale sinistro U L {\displaystyle U_{L}} ; a destra della caratteristica t = x / a {\displaystyle t=x/a} si mantiene lo stato iniziale destro U R {\displaystyle U_{R}} . Nel dominio compreso tra le due caratteristiche si genera uno stato costante incognito U {\displaystyle U_{\star }} .
Gli autovettori corrispondenti a λ 1 {\displaystyle \lambda _{1}} e λ 2 {\displaystyle \lambda _{2}} sono

e ( 1 ) = [ ρ 0 a ] , e ( 2 ) = [ ρ 0 a ] , {\displaystyle \mathbf {e} ^{(1)}={\begin{bmatrix}\rho _{0}\\-a\end{bmatrix}},\quad \mathbf {e} ^{(2)}={\begin{bmatrix}\rho _{0}\\a\end{bmatrix}},}

e rispetto a questi possono essere decomposti gli stati iniziali: per qualche valore di α 1 {\displaystyle \alpha _{1}} , α 2 {\displaystyle \alpha _{2}} , β 1 {\displaystyle \beta _{1}} , β 2 {\displaystyle \beta _{2}} si può quindi scrivere

U L = [ ρ L u L ] = α 1 e ( 1 ) + α 2 e ( 2 )  e  U R = [ ρ R u R ] = β 1 e ( 1 ) + β 2 e ( 2 ) . {\displaystyle U_{L}={\begin{bmatrix}\rho _{L}\\u_{L}\end{bmatrix}}=\alpha _{1}\mathbf {e} ^{(1)}+\alpha _{2}\mathbf {e} ^{(2)}\qquad {\text{ e }}\qquad U_{R}={\begin{bmatrix}\rho _{R}\\u_{R}\end{bmatrix}}=\beta _{1}\mathbf {e} ^{(1)}+\beta _{2}\mathbf {e} ^{(2)}.}

Risolvendo queste due equazioni si ottengono i valori delle quantità α 1 {\displaystyle \alpha _{1}} , α 2 {\displaystyle \alpha _{2}} , β 1 {\displaystyle \beta _{1}} , β 2 {\displaystyle \beta _{2}} :

α 1 = a ρ L ρ 0 u L 2 a ρ 0 , α 2 = a ρ L + ρ 0 u L 2 a ρ 0 , β 1 = a ρ R ρ 0 u R 2 a ρ 0 , β 2 = a ρ R + ρ 0 u R 2 a ρ 0 . {\displaystyle \alpha _{1}={\frac {a\rho _{L}-\rho _{0}u_{L}}{2a\rho _{0}}},\quad \alpha _{2}={\frac {a\rho _{L}+\rho _{0}u_{L}}{2a\rho _{0}}},\quad \beta _{1}={\frac {a\rho _{R}-\rho _{0}u_{R}}{2a\rho _{0}}},\quad \beta _{2}={\frac {a\rho _{R}+\rho _{0}u_{R}}{2a\rho _{0}}}.}

Lo stato incognito U {\displaystyle U_{\star }} si ottiene infine in funzione degli stati iniziali:

U = [ ρ u ] = β 1 e ( 1 ) + α 2 e ( 2 ) = β 1 [ ρ 0 a ] + α 2 [ ρ 0 a ] = [ 1 2 ( ρ L + ρ R ) 1 2 ( u R + u L ) ρ 0 a 1 2 ( u L + u R ) 1 2 ( ρ R + ρ L ) a ρ 0 ] {\displaystyle U_{\star }={\begin{bmatrix}\rho _{\star }\\u_{\star }\end{bmatrix}}=\beta _{1}\mathbf {e} ^{(1)}+\alpha _{2}\mathbf {e} ^{(2)}=\beta _{1}{\begin{bmatrix}\rho _{0}\\-a\end{bmatrix}}+\alpha _{2}{\begin{bmatrix}\rho _{0}\\a\end{bmatrix}}={\begin{bmatrix}{\frac {1}{2}}(\rho _{L}+\rho _{R})-{\frac {1}{2}}(u_{R}+u_{L}){\frac {\rho _{0}}{a}}\\{\frac {1}{2}}(u_{L}+u_{R})-{\frac {1}{2}}(\rho _{R}+\rho _{L}){\frac {a}{\rho _{0}}}\end{bmatrix}}}

e la soluzione completa (costante a tratti) del problema di Riemann nel dominio t > 0 {\displaystyle t>0} è:

U ( x , t ) = [ ρ ( x , t ) u ( x , t ) ] = { U L , 0 < t x / a U , 0 | x | / a < t U R , 0 < t x / a . {\displaystyle U(x,t)={\begin{bmatrix}\rho (x,t)\\u(x,t)\end{bmatrix}}={\begin{cases}U_{L},&0<t\leq -x/a\\U_{\star },&0\leq |x|/a<t\\U_{R},&0<t\leq x/a\end{cases}}.}

Note

  1. ^ (EN) Eleuterio F. Toro, The Riemann Problem, in Riemann Solvers and Numerical Methods for Fluid Dynamics, 3ª ed., Berlino, Springer, 2009, pp. 49-50, ISBN 978-3-540-25202-3.
  2. ^ (EN) Eleuterio F. Toro, The Riemann Problem for Linearised Gas Dynamics, in Riemann Solvers and Numerical Methods for Fluid Dynamics, 3ª ed., Berlino, Springer, 2009, pp. 58-59, ISBN 978-3-540-25202-3.

Bibliografia

  • (EN) Eleuterio F. Toro, Riemann Solvers and Numerical Methods for Fluid Dynamics, 3ª ed., Berlino, Springer, 2009, ISBN 978-3-540-25202-3.
  • (EN) Randall J. LeVeque, Finite Volume Methods for Hyperbolic Problems, Cambridge, Cambridge University Press, 2002, ISBN 978-0-521-00924-9.

Voci correlate

  • Analisi numerica
  • Fluidodinamica
  • Fluidodinamica computazionale
  • Gasdinamica
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica