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), | private | :: | G(9) | Auxilary values describing the gas (given by the isentropic coefficient). |
|||
real(kind=rk), | private | :: | gam | Isentropic coefficient |
|||
real(kind=rk), | private | :: | tolerance | Abort criterion for the Newton-Raphson scheme. |
|||
integer, | private | :: | nMaxIter | Maximum number of iterations for the Newton-Raphson scheme. |
|||
integer, | private | :: | nIter | Number of actually made Newton-Raphson iterations. |
|||
logical, | private | :: | critical | Flag if this is a critical state combination, that would result in a vacuum. |
|||
real(kind=rk), | private | :: | prim_left(3) | Primitive variables left of discontinuity |
|||
real(kind=rk), | private | :: | prim_right(3) | Primitive variables right of discontinuity |
|||
real(kind=rk), | private | :: | prim_rare2cont(3) | ||||
real(kind=rk), | private | :: | prim_cont2shock(3) | ||||
real(kind=rk), | private | :: | prim_rare(3) | ||||
real(kind=rk), | private | :: | p_mean | ||||
real(kind=rk), | private | :: | u_mean | ||||
real(kind=rk), | private | :: | rare_c | ||||
real(kind=rk), | private | :: | rare_c_fac | ||||
real(kind=rk), | private | :: | cl | Speed of sound left |
|||
real(kind=rk), | private | :: | cr | Speed of sound right |
|||
real(kind=rk), | private | :: | charvel(4) | Characteristic velocities |
|||
integer, | private | :: | 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. If the input results in a critical state, me%critical will be set to true. nIter will contain the actual number of Newton-Raphson iterations, that were performed. |
||
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 |