foreseer_primitive_object Module

module~~foreseer_primitive_object~~UsesGraph module~foreseer_primitive_object foreseer_primitive_object module~foreseer_eos_object foreseer_eos_object module~foreseer_eos_object->module~foreseer_primitive_object vecfor vecfor vecfor->module~foreseer_primitive_object penf penf penf->module~foreseer_primitive_object penf->module~foreseer_eos_object
Help

Define the abstract primitive state of a Riemann Problem for FORESEER library.

Used By

module~~foreseer_primitive_object~~UsedByGraph module~foreseer_primitive_object foreseer_primitive_object module~foreseer foreseer module~foreseer_primitive_object->module~foreseer module~foreseer_primitive_compressible foreseer_primitive_compressible module~foreseer_primitive_object->module~foreseer_primitive_compressible program~foreseer_test_riemann_solver_compressible_pvl foreseer_test_riemann_solver_compressible_pvl module~foreseer->program~foreseer_test_riemann_solver_compressible_pvl module~foreseer_euler_1d foreseer_euler_1d module~foreseer->module~foreseer_euler_1d program~foreseer_test_conservative_compressible foreseer_test_conservative_compressible module~foreseer->program~foreseer_test_conservative_compressible program~foreseer_test_riemann_solver_compressible_hllc~2 foreseer_test_riemann_solver_compressible_hllc module~foreseer->program~foreseer_test_riemann_solver_compressible_hllc~2 program~foreseer_test_eos_compressible foreseer_test_eos_compressible module~foreseer->program~foreseer_test_eos_compressible program~foreseer_test_shock_tube foreseer_test_shock_tube module~foreseer->program~foreseer_test_shock_tube program~foreseer_test_riemann_solver_compressible_llf foreseer_test_riemann_solver_compressible_llf module~foreseer->program~foreseer_test_riemann_solver_compressible_llf program~foreseer_test_compressible_transformations foreseer_test_compressible_transformations module~foreseer->program~foreseer_test_compressible_transformations program~foreseer_test_riemann_solver_compressible_hllc foreseer_test_riemann_solver_compressible_hllc module~foreseer->program~foreseer_test_riemann_solver_compressible_hllc program~foreseer_test_primitive_compressible foreseer_test_primitive_compressible module~foreseer->program~foreseer_test_primitive_compressible program~foreseer_test_riemann_solver_compressible_roe foreseer_test_riemann_solver_compressible_roe module~foreseer->program~foreseer_test_riemann_solver_compressible_roe module~foreseer_primitive_compressible->module~foreseer module~foreseer_compressible_transformations foreseer_compressible_transformations module~foreseer_primitive_compressible->module~foreseer_compressible_transformations module~foreseer_euler_1d->program~foreseer_test_shock_tube module~foreseer_compressible_transformations->module~foreseer
Help


Abstract Interfaces

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private pure function array_interface(self) result(array_)

    Return serialized array of primitive.

    Arguments

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

    Primitive.

    Return Value real(kind=R8P), allocatable, (:)

    Serialized array of primitive.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

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

    Return a pretty-formatted object description.

    Arguments

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

    Primitive.

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

    Prefixing string.

    Return Value character(len=:), allocatable

    Description.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private elemental subroutine destroy_interface(self)

    Destroy primitive.

    Arguments

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

    Primitive.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private elemental function energy_interface(self, eos) result(energy_)

    Return energy value.

    Arguments

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

    Primitive.

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

    Equation of state.

    Return Value real(kind=R8P)

    Energy value.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private subroutine initialize_interface(self, initial_state)

    Initialize primitive.

    Arguments

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

    Primitive.

    class(primitive_object), intent(in), optional :: initial_state

    Initial state.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private elemental function momentum_interface(self) result(momentum_)

    Return momentum vector.

    Arguments

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

    Primitive.

    Return Value type(vector)

    Momentum vector.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private function prim_operator_real(lhs, rhs) result(operator_result)

    Operator prim.op.real.

    Arguments

    Type IntentOptional AttributesName
    class(primitive_object), intent(in) :: lhs

    Left hand side.

    real(kind=R8P), intent(in) :: rhs

    Right hand side.

    Return Value class(primitive_object), allocatable

    Operator result.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private function real_operator_prim(lhs, rhs) result(operator_result)

    Operator real * prim.

    Arguments

    Type IntentOptional AttributesName
    real(kind=R8P), intent(in) :: lhs

    Left hand side.

    class(primitive_object), intent(in) :: rhs

    Right hand side.

    Return Value class(primitive_object), allocatable

    Operator result.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private function symmetric_operator(lhs, rhs) result(operator_result)

    Symmetric operator prim.op.prim.

    Arguments

    Type IntentOptional AttributesName
    class(primitive_object), intent(in) :: lhs

    Left hand side.

    class(primitive_object), intent(in) :: rhs

    Right hand side.

    Return Value class(primitive_object), allocatable

    Operator result.

abstract interface

Abstract interfaces of deferred methods of primitive_object.

  • private function unary_operator(self) result(operator_result)

    Unary operator .op.prim.

    Arguments

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

    Primitive.

    Return Value class(primitive_object), allocatable

    Operator result.


Derived Types

type, public, abstract :: primitive_object

Convervative object class.

Type-Bound Procedures

procedure(symmetric_operator), public, pass(lhs) :: add

Operator +.

procedure(array_interface), public, pass(self) :: array

Return serialized array of primitive.

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

Overload =.

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

Return pretty-printed object description.

procedure(destroy_interface), public, pass(self) :: destroy

Destroy primitive.

procedure(energy_interface), public, pass(self) :: energy

Return energy value.

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

Initialize primitive.

procedure(momentum_interface), public, pass(self) :: momentum

Return momentum vector.

procedure(unary_operator), public, pass(self) :: negative

Unary operator - prim.

generic, public :: operator(*) => prim_multiply_prim, prim_multiply_real, real_multiply_prim

Overload *.

generic, public :: operator(+) => add, positive

Overload +.

generic, public :: operator(-) => sub, negative

Overload -.

generic, public :: operator(/) => prim_divide_real

Overload /.

procedure(unary_operator), public, pass(self) :: positive

Unary operator + prim.

procedure(assignment_interface), public, pass(lhs) :: prim_assign_prim

Operator =.

procedure(prim_operator_real), public, pass(lhs) :: prim_divide_real

Operator prim / real.

procedure(symmetric_operator), public, pass(lhs) :: prim_multiply_prim

Operator *.

procedure(prim_operator_real), public, pass(lhs) :: prim_multiply_real

Operator prim * real.

procedure(real_operator_prim), public, pass(rhs) :: real_multiply_prim

Operator real * prim.

procedure(symmetric_operator), public, pass(lhs) :: sub

Operator -.