riemann_solver_compressible_roe Derived Type

type, public, extends(riemann_solver_object) :: riemann_solver_compressible_roe

type~~riemann_solver_compressible_roe~~InheritsGraph type~riemann_solver_compressible_roe riemann_solver_compressible_roe type~riemann_solver_object riemann_solver_object type~riemann_solver_object->type~riemann_solver_compressible_roe
Help


Roe (with the Harten-Hyman entropy fix) Riemann Solver.



Type-Bound Procedures

procedure, public, nopass :: compute_roe_state

Compute intermediate state.

  • private subroutine compute_roe_state(eos_left, state_left, eos_right, state_right, r_d, r_u, r_e, r_a)

    Evaluate the intermediate state from the known states U1,U4 using the Roe linearization.

    Arguments

    Type IntentOptional AttributesName
    class(eos_object), intent(in) :: eos_left

    Equation of state for left state.

    class(conservative_object), intent(in) :: state_left

    Left Riemann state.

    class(eos_object), intent(in) :: eos_right

    Equation of state for right state.

    class(conservative_object), intent(in) :: state_right

    Right Riemann state.

    real(kind=R8P), intent(out) :: r_d

    Roe intermediate state density.

    type(vector), intent(out) :: r_u

    Roe intermediate state velocity vector..

    real(kind=R8P), intent(out) :: r_e

    Roe intermediate state enthalpy.

    real(kind=R8P), intent(out) :: r_a

    Roe intermediate state sound speed.

procedure, public, pass(self) :: initialize

Initialize solver.

  • private subroutine initialize(self, config)

    Initialize solver.

    Arguments

    Type IntentOptional AttributesName
    class(riemann_solver_compressible_roe), intent(inout) :: self

    Solver.

    character(len=*), intent(in), optional :: config

    Configuration for solver algorithm.

procedure, public, pass(self) :: solve

Solve Riemann Problem.

  • private subroutine solve(self, eos_left, state_left, eos_right, state_right, normal, fluxes)

    Solve Riemann Problem.

    Arguments

    Type IntentOptional AttributesName
    class(riemann_solver_compressible_roe), intent(in) :: self

    Solver.

    class(eos_object), intent(in) :: eos_left

    Equation of state for left state.

    class(conservative_object), intent(in) :: state_left

    Left Riemann state.

    class(eos_object), intent(in) :: eos_right

    Equation of state for right state.

    class(conservative_object), intent(in) :: state_right

    Right Riemann state.

    type(vector), intent(in) :: normal

    Normal (versor) of face where fluxes are given.

    class(conservative_object), intent(inout) :: fluxes

    Fluxes of the Riemann Problem solution.

Source Code

type, extends(riemann_solver_object) :: riemann_solver_compressible_roe
   !< Roe (with the Harten-Hyman entropy fix) Riemann Solver.
   !<
   !< @note This is the implemention for [[conservative_compressible]] Riemann states.
   contains
      ! public deferred methods
      procedure, pass(self) :: initialize          !< Initialize solver.
      procedure, pass(self) :: solve               !< Solve Riemann Problem.
      procedure, nopass     :: compute_roe_state   !< Compute intermediate state.
endtype riemann_solver_compressible_roe