riemann_pattern_object Derived Type

type, public, abstract :: riemann_pattern_object

Riemann (states) pattern object class.

This pattern is generated after the breaking of the initial discontinuity of the Riemann Problem.

Inherited By

type~~riemann_pattern_object~~InheritedByGraph type~riemann_pattern_object riemann_pattern_object type~riemann_pattern_compressible_object riemann_pattern_compressible_object type~riemann_pattern_object->type~riemann_pattern_compressible_object type~riemann_pattern_compressible_pvl riemann_pattern_compressible_pvl type~riemann_pattern_compressible_object->type~riemann_pattern_compressible_pvl
Help

Type-Bound Procedures

generic, public :: assignment(=) => rpat_assign_rpat

Overload =.

procedure(compute_fluxes_interface), public, deferred, pass(self) :: compute_fluxes

Compute fluxes at interface.

  • elemental subroutine compute_fluxes_interface(self, normal, fluxes) Prototype

    Compute fluxes at initial discontinuity interface.

    Arguments

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

    Riemann (states) pattern solution.

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

    Normal (versor) of face where fluxes are given.

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

    Fluxes at initial discontinuity interface.

procedure(compute_waves_interface), public, deferred, pass(self) :: compute_waves

Compute waves speed.

  • pure subroutine compute_waves_interface(self) Prototype

    Compute fluxes at initial discontinuity interface.

    Arguments

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

    Riemann (states) pattern solution.

procedure(description_interface), public, deferred, pass(self) :: description

Return pretty-printed object description.

  • pure function description_interface(self, prefix) result(desc) Prototype

    Return a pretty-formatted object description.

    Arguments

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

    Riemann pattern.

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

    Prefixing string.

    Return Value character(len=:), allocatable

    Description.

procedure(initialize_interface), public, deferred, pass(self) :: initialize

Initialize pattern with left/right states.

  • elemental subroutine initialize_interface(self, eos_left, state_left, eos_right, state_right, normal) Prototype

    Initialize pattern with left and right states.

    Arguments

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

    Riemann (states) pattern solution.

    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.

procedure(assignment_interface), public, deferred, pass(lhs) :: rpat_assign_rpat

Operator =.

Source Code

type, abstract :: riemann_pattern_object
   !< Riemann (states) pattern object class.
   !<
   !< This pattern is generated after the breaking of the initial discontinuity of the Riemann Problem.
   contains
      ! deferred methods
      procedure(compute_fluxes_interface), pass(self), deferred :: compute_fluxes   !< Compute fluxes at interface.
      procedure(compute_waves_interface),  pass(self), deferred :: compute_waves    !< Compute waves speed.
      procedure(description_interface),    pass(self), deferred :: description      !< Return pretty-printed object description.
      procedure(initialize_interface),     pass(self), deferred :: initialize       !< Initialize pattern with left/right states.
      procedure(assignment_interface),     pass(lhs),  deferred :: rpat_assign_rpat !< Operator `=`.
      ! operators
      generic :: assignment(=) => rpat_assign_rpat !< Overload `=`.
endtype riemann_pattern_object