atl_exact_riemann_euler_module Module

Module to compute the exact solution for the Riemann Problem for the Euler equations.


Uses

  • module~~atl_exact_riemann_euler_module~~UsesGraph module~atl_exact_riemann_euler_module atl_exact_riemann_euler_module module~env_module env_module module~atl_exact_riemann_euler_module->module~env_module

Used by

  • module~~atl_exact_riemann_euler_module~~UsedByGraph module~atl_exact_riemann_euler_module atl_exact_riemann_euler_module module~atl_godunovflux_module atl_GodunovFlux_module module~atl_godunovflux_module->module~atl_exact_riemann_euler_module module~atl_eqn_euler_hlp_module atl_eqn_euler_hlp_module module~atl_eqn_euler_hlp_module->module~atl_godunovflux_module module~atl_initialize_module atl_initialize_module module~atl_initialize_module->module~atl_godunovflux_module module~atl_equation_init_module atl_equation_init_module module~atl_initialize_module->module~atl_equation_init_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_initialize_module proc~implicit_update implicit_update proc~implicit_update->module~atl_eqn_euler_hlp_module module~atl_eqn_nvrstk_hlp_module atl_eqn_nvrstk_hlp_module module~atl_eqn_nvrstk_hlp_module->module~atl_eqn_euler_hlp_module module~atl_equation_init_module->module~atl_eqn_euler_hlp_module module~atl_equation_init_module->module~atl_eqn_nvrstk_hlp_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_initialize_module program~atl_harvesting->module~atl_program_module program~ateles ateles program~ateles->module~atl_program_module

Contents


Variables

TypeVisibilityAttributesNameInitial
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

Derived Types

type, public :: atl_ere_solState1D_type

Components

TypeVisibilityAttributesNameInitial
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

Read more…
real(kind=rk), private :: prim_right(3)

Primitive variables right of discontinuity

Read more…
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

Read more…
integer, private :: charfield(3)

Kind of state between the characteristic velocities.

Read more…

Subroutines

public subroutine atl_ere_init(me, prim_left, prim_right, gam, tolerance, nMaxIter)

Compute the exact solution of the Riemann problem for the Euler equation.

Read more…

Arguments

TypeIntentOptionalAttributesName
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

  • 1: density
  • 2: velocity
  • 3: pressure
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

public subroutine atl_ere_init_consts(me, gam, tolerance, nMaxIter)

Set the general constants for the exact riemann solver.

Arguments

TypeIntentOptionalAttributesName
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

public elemental subroutine atl_ere_eval_onEdge(me, rho_left, vn_left, v1_left, v2_left, p_left, rho_right, vn_right, v1_right, v2_right, p_right, rho, vn, v1, v2, p)

Evaluate the state on the edge using the exact riemann solver

Read more…

Arguments

TypeIntentOptionalAttributesName
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

public elemental subroutine atl_ere_sample(me, s, rho, v, p)

Evaluate the solution to the 1D Riemann problem for a given sample point s.

Read more…

Arguments

TypeIntentOptionalAttributesName
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.

public subroutine atl_ere_dump_solState(me, outunit)

Arguments

TypeIntentOptionalAttributesName
type(atl_ere_solState1D_type), intent(in) :: me
integer, intent(in), optional :: outunit

private elemental subroutine nr_start(p, rhol, rhor, ul, ur, pl, pr, al, ar, me)

Initial setup for the iterative computation of the solution to the Riemann problem.

Arguments

TypeIntentOptionalAttributesName
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

private elemental subroutine nr_1side(f, fd, p, rhok, pk, ck, me)

Compute one-sided iteration

Arguments

TypeIntentOptionalAttributesName
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