Module to compute the exact solution for the Riemann Problem for the Euler equations.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private, | parameter | :: | density | = | 1 | |
integer, | private, | parameter | :: | velocity | = | 2 | |
integer, | private, | parameter | :: | pressure | = | 3 | |
integer, | private, | parameter | :: | rarefication | = | 1 | |
integer, | private, | parameter | :: | rare2cont | = | 2 | |
integer, | private, | parameter | :: | cont2shock | = | 3 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | public | :: | G(9) |
Auxilary values describing the gas (given by the isentropic coefficient). |
|||
real(kind=rk), | public | :: | gam |
Isentropic coefficient |
|||
real(kind=rk), | public | :: | tolerance |
Abort criterion for the Newton-Raphson scheme. |
|||
integer, | public | :: | nMaxIter |
Maximum number of iterations for the Newton-Raphson scheme. |
|||
integer, | public | :: | nIter |
Number of actually made Newton-Raphson iterations. |
|||
logical, | public | :: | critical |
Flag if this is a critical state combination, that would result in a vacuum. |
|||
real(kind=rk), | public | :: | prim_left(3) |
Primitive variables left of discontinuity |
|||
real(kind=rk), | public | :: | prim_right(3) |
Primitive variables right of discontinuity |
|||
real(kind=rk), | public | :: | prim_rare2cont(3) | ||||
real(kind=rk), | public | :: | prim_cont2shock(3) | ||||
real(kind=rk), | public | :: | prim_rare(3) | ||||
real(kind=rk), | public | :: | p_mean | ||||
real(kind=rk), | public | :: | u_mean | ||||
real(kind=rk), | public | :: | rare_c | ||||
real(kind=rk), | public | :: | rare_c_fac | ||||
real(kind=rk), | public | :: | cl |
Speed of sound left |
|||
real(kind=rk), | public | :: | cr |
Speed of sound right |
|||
real(kind=rk), | public | :: | charvel(4) |
Characteristic velocities |
|||
integer, | public | :: | charfield(3) |
Kind of state between the characteristic velocities. |
Compute the exact solution of the Riemann problem for the Euler equation.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_ere_solState1D_type), | intent(out) | :: | me |
Description of the Riemann solution. |
||
real(kind=rk), | intent(in) | :: | prim_left(3) |
Primitive variables left of discontinuity |
||
real(kind=rk), | intent(in) | :: | prim_right(3) |
Primitive variables right of discontinuity |
||
real(kind=rk), | intent(in) | :: | gam |
Isentropic expansion coefficient of the gas |
||
real(kind=rk), | intent(in), | optional | :: | tolerance |
Tolerated variation in the Newton-Raphson iterations, default: 8 epsilon |
|
integer, | intent(in), | optional | :: | nMaxIter |
Maximal number of iterations to do, default: 100000 |
Set the general constants for the exact riemann solver.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_ere_solState1D_type), | intent(out) | :: | me |
Description of the Riemann solution to set the constants in |
||
real(kind=rk), | intent(in) | :: | gam |
Isentropic expansion coefficient of the gas |
||
real(kind=rk), | intent(in), | optional | :: | tolerance |
Tolerated variation in the Newton-Raphson iterations, default: 8 epsilon |
|
integer, | intent(in), | optional | :: | nMaxIter |
Maximal number of iterations to do, default: 100000 |
Evaluate the state on the edge using the exact riemann solver
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_ere_solState1D_type), | intent(in) | :: | me |
Description of the general constants for the Riemann solver. |
||
real(kind=rk), | intent(in) | :: | rho_left | |||
real(kind=rk), | intent(in) | :: | vn_left | |||
real(kind=rk), | intent(in) | :: | v1_left | |||
real(kind=rk), | intent(in) | :: | v2_left | |||
real(kind=rk), | intent(in) | :: | p_left | |||
real(kind=rk), | intent(in) | :: | rho_right | |||
real(kind=rk), | intent(in) | :: | vn_right | |||
real(kind=rk), | intent(in) | :: | v1_right | |||
real(kind=rk), | intent(in) | :: | v2_right | |||
real(kind=rk), | intent(in) | :: | p_right | |||
real(kind=rk), | intent(out) | :: | rho | |||
real(kind=rk), | intent(out) | :: | vn | |||
real(kind=rk), | intent(out) | :: | v1 | |||
real(kind=rk), | intent(out) | :: | v2 | |||
real(kind=rk), | intent(out) | :: | p |
Evaluate the solution to the 1D Riemann problem for a given sample point s.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_ere_solState1D_type), | intent(in) | :: | me |
Description of the solution. |
||
real(kind=rk), | intent(in) | :: | s |
Velocity along which to find the state. |
||
real(kind=rk), | intent(out) | :: | rho |
Density at s. |
||
real(kind=rk), | intent(out) | :: | v |
Velocity at s. |
||
real(kind=rk), | intent(out) | :: | p |
Pressure at s. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_ere_solState1D_type), | intent(in) | :: | me | |||
integer, | intent(in), | optional | :: | outunit |
Initial setup for the iterative computation of the solution to the Riemann problem.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(out) | :: | p | |||
real(kind=rk), | intent(in) | :: | rhol | |||
real(kind=rk), | intent(in) | :: | rhor | |||
real(kind=rk), | intent(in) | :: | ul | |||
real(kind=rk), | intent(in) | :: | ur | |||
real(kind=rk), | intent(in) | :: | pl | |||
real(kind=rk), | intent(in) | :: | pr | |||
real(kind=rk), | intent(in) | :: | al | |||
real(kind=rk), | intent(in) | :: | ar | |||
type(atl_ere_solState1D_type), | intent(in) | :: | me |
Compute one-sided iteration
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(out) | :: | f | |||
real(kind=rk), | intent(out) | :: | fd | |||
real(kind=rk), | intent(in) | :: | p | |||
real(kind=rk), | intent(in) | :: | rhok | |||
real(kind=rk), | intent(in) | :: | pk | |||
real(kind=rk), | intent(in) | :: | ck | |||
type(atl_ere_solState1D_type), | intent(in) | :: | me |