riemann_solver_compressible_exact Derived Type

type, public, extends(riemann_solver_object) :: riemann_solver_compressible_exact

type~~riemann_solver_compressible_exact~~InheritsGraph type~riemann_solver_compressible_exact riemann_solver_compressible_exact type~riemann_solver_object riemann_solver_object type~riemann_solver_object->type~riemann_solver_compressible_exact
Help


Exact (Newton-iterative) Riemann Solver.



Components

TypeVisibility AttributesNameInitial
real(kind=R8P), public :: tolerance =1.e-10_R8P

Tolerance on Newton convergence.


Type-Bound Procedures

procedure, public, pass(self) :: initialize

Initialize solver.

  • private subroutine initialize(self, config)

    Initialize solver.

    Arguments

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

    Solver.

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

    Configuration for solver algorithm.

procedure, public, pass(self) :: solve

Solve Riemann Problem.

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

    Solve Riemann Problem.

    Arguments

    Type IntentOptional AttributesName
    class(riemann_solver_compressible_exact), 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_exact
   !< Exact (Newton-iterative) Riemann Solver.
   !<
   !< @note This is the implemention for [[conservative_compressible]] Riemann states.
   real(R8P) :: tolerance=1.e-10_R8P !< Tolerance on Newton convergence.
   contains
      ! public deferred methods
      procedure, pass(self) :: initialize !< Initialize solver.
      procedure, pass(self) :: solve      !< Solve Riemann Problem.
endtype riemann_solver_compressible_exact