foreseer_conservative_compressible Module

module~~foreseer_conservative_compressible~~UsesGraph module~foreseer_conservative_compressible foreseer_conservative_compressible module~foreseer_conservative_object foreseer_conservative_object module~foreseer_conservative_object->module~foreseer_conservative_compressible vecfor vecfor vecfor->module~foreseer_conservative_compressible vecfor->module~foreseer_conservative_object penf penf penf->module~foreseer_conservative_compressible penf->module~foreseer_conservative_object module~foreseer_eos_object foreseer_eos_object penf->module~foreseer_eos_object iso_fortran_env iso_fortran_env iso_fortran_env->module~foreseer_conservative_compressible module~foreseer_eos_object->module~foreseer_conservative_compressible module~foreseer_eos_object->module~foreseer_conservative_object
Help

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

Used By

module~~foreseer_conservative_compressible~~UsedByGraph module~foreseer_conservative_compressible foreseer_conservative_compressible module~foreseer_riemann_solver_compressible_exact foreseer_riemann_solver_compressible_exact module~foreseer_conservative_compressible->module~foreseer_riemann_solver_compressible_exact module~foreseer_riemann_solver_compressible_llf foreseer_riemann_solver_compressible_llf module~foreseer_conservative_compressible->module~foreseer_riemann_solver_compressible_llf module~foreseer_riemann_solver_compressible_pvl foreseer_riemann_solver_compressible_pvl module~foreseer_conservative_compressible->module~foreseer_riemann_solver_compressible_pvl module~foreseer foreseer module~foreseer_conservative_compressible->module~foreseer module~foreseer_riemann_pattern_compressible_object foreseer_riemann_pattern_compressible_object module~foreseer_conservative_compressible->module~foreseer_riemann_pattern_compressible_object module~foreseer_compressible_transformations foreseer_compressible_transformations module~foreseer_conservative_compressible->module~foreseer_compressible_transformations module~foreseer_riemann_solver_compressible_roe foreseer_riemann_solver_compressible_roe module~foreseer_conservative_compressible->module~foreseer_riemann_solver_compressible_roe module~foreseer_riemann_solver_compressible_hllc foreseer_riemann_solver_compressible_hllc module~foreseer_conservative_compressible->module~foreseer_riemann_solver_compressible_hllc module~foreseer_riemann_solver_compressible_exact->module~foreseer module~foreseer_riemann_solver_compressible_llf->module~foreseer module~foreseer_riemann_solver_compressible_pvl->module~foreseer 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_riemann_pattern_compressible_object->module~foreseer module~foreseer_riemann_pattern_compressible_pvl foreseer_riemann_pattern_compressible_pvl module~foreseer_riemann_pattern_compressible_object->module~foreseer_riemann_pattern_compressible_pvl module~foreseer_compressible_transformations->module~foreseer module~foreseer_riemann_solver_compressible_roe->module~foreseer module~foreseer_riemann_solver_compressible_hllc->module~foreseer module~foreseer_euler_1d->program~foreseer_test_shock_tube module~foreseer_riemann_pattern_compressible_pvl->module~foreseer_riemann_solver_compressible_exact module~foreseer_riemann_pattern_compressible_pvl->module~foreseer_riemann_solver_compressible_llf module~foreseer_riemann_pattern_compressible_pvl->module~foreseer_riemann_solver_compressible_pvl module~foreseer_riemann_pattern_compressible_pvl->module~foreseer module~foreseer_riemann_pattern_compressible_pvl->module~foreseer_riemann_solver_compressible_roe module~foreseer_riemann_pattern_compressible_pvl->module~foreseer_riemann_solver_compressible_hllc
Help


Interfaces

public interface conservative_compressible

Overload conservative_compressible name with its constructor.

  • private elemental function conservative_compressible_instance(density, momentum, energy) result(instance)

    Return and instance of conservative_compressible.

    Arguments

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

    Density, rho.

    type(vector), intent(in), optional :: momentum

    Momentum, rho * v, rho being the density and v the velocity vector.

    real(kind=R8P), intent(in), optional :: energy

    Energy, rho * E, rho being the density and E the specific energy.

    Return Value type(conservative_compressible)

    Instance of conservative_compressible.


Derived Types

Convervative compressible object class.

Components

TypeVisibility AttributesNameInitial
real(kind=R8P), public :: density =0._R8P

Density, rho.

real(kind=R8P), public :: energy =0._R8P

Energy, rho * E, rho being the density and E the specific energy.

type(vector), public :: momentum

Momentum, rho * v, rho being the density and v the velocity vector.

Constructor

Overload conservative_compressible name with its constructor.

private elemental function conservative_compressible_instance(density, momentum, energy)

Return and instance of conservative_compressible.

Type-Bound Procedures

procedure, public, pass(lhs) :: add

Operator +.

procedure, public, pass(self) :: array

Return serialized array of conservative.

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

Overload =.

procedure, public, pass(self) :: compute_fluxes

Compute conservative fluxes.

procedure, public, pass(self) :: compute_fluxes_from_primitive

Compute conservative fluxes from primitives at interface.

procedure, public, pass(lhs) :: cons_assign_cons

Operator =.

procedure, public, pass(lhs) :: cons_divide_real

Operator cons / real.

procedure, public, pass(lhs) :: cons_multiply_cons

Operator *.

procedure, public, pass(lhs) :: cons_multiply_real

Operator cons * real.

procedure, public, pass(self) :: description

Return pretty-printed object description.

procedure, public, pass(self) :: destroy

Destroy conservative.

procedure, public, pass(self) :: initialize

Initialize conservative.

procedure, public, pass(self) :: negative

Unary operator - cons.

generic, public :: operator(*) => cons_multiply_cons, cons_multiply_real, real_multiply_cons

Overload *.

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

Overload +.

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

Overload -.

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

Overload /.

procedure, public, pass(self) :: positive

Unary operator + cons.

procedure, public, pass(self) :: pressure

Return pressure value.

procedure, public, pass(rhs) :: real_multiply_cons

Operator real * cons.

procedure, public, pass(lhs) :: sub

Operator -.

procedure, public, pass(self) :: velocity

Return velocity vector.


Functions

private function add(lhs, rhs) result(operator_result)

Operator +.

Arguments

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

Left hand side.

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

Right hand side.

Return Value class(conservative_object), allocatable

Operator result.

private pure function array(self) result(array_)

Return serialized array of conservative.

Arguments

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

Conservative.

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

Serialized array of conservative.

private function cons_divide_real(lhs, rhs) result(operator_result)

Operator cons / real.

Arguments

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

Left hand side.

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

Right hand side.

Return Value class(conservative_object), allocatable

Operator result.

private function cons_multiply_cons(lhs, rhs) result(operator_result)

Operator *.

Arguments

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

Left hand side.

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

Right hand side.

Return Value class(conservative_object), allocatable

Operator result.

private function cons_multiply_real(lhs, rhs) result(operator_result)

Operator cons * real.

Arguments

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

Left hand side.

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

Right hand side.

Return Value class(conservative_object), allocatable

Operator result.

private elemental function conservative_compressible_instance(density, momentum, energy) result(instance)

Return and instance of conservative_compressible.

Arguments

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

Density, rho.

type(vector), intent(in), optional :: momentum

Momentum, rho * v, rho being the density and v the velocity vector.

real(kind=R8P), intent(in), optional :: energy

Energy, rho * E, rho being the density and E the specific energy.

Return Value type(conservative_compressible)

Instance of conservative_compressible.

public function conservative_compressible_pointer(to, error_message) result(pointer_)

Return conservative_compressible pointer associated to conservative_object or its extensions until conservative_compressible included.

Arguments

Type IntentOptional AttributesName
class(conservative_object), intent(in), target:: to

Target of associate.

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

Auxiliary error message.

Return Value class(conservative_compressible), pointer

Associated pointer.

private pure function description(self, prefix) result(desc)

Return a pretty-formatted object description.

Arguments

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

Conservative.

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

Prefixing string.

Return Value character(len=:), allocatable

Description.

private function negative(self) result(operator_result)

Unary operator - cons.

Arguments

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

Conservative.

Return Value class(conservative_object), allocatable

Operator result.

private function positive(self) result(operator_result)

Unary operator + cons.

Arguments

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

Conservative.

Return Value class(conservative_object), allocatable

Operator result.

private elemental function pressure(self, eos) result(pressure_)

Return pressure value.

Arguments

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

Conservative.

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

Equation of state.

Return Value real(kind=R8P)

Pressure value.

private function real_multiply_cons(lhs, rhs) result(operator_result)

Operator real * cons.

Arguments

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

Left hand side.

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

Right hand side.

Return Value class(conservative_object), allocatable

Operator result.

private function sub(lhs, rhs) result(operator_result)

Operator +.

Arguments

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

Left hand side.

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

Right hand side.

Return Value class(conservative_object), allocatable

Operator result.

private elemental function velocity(self) result(velocity_)

Return velocity vector.

Arguments

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

Conservative.

Return Value type(vector)

Velocity vector.


Subroutines

private subroutine compute_fluxes(self, eos, normal, fluxes)

Compute conservative fluxes.

Arguments

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

Conservative.

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

Equation of state.

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

Normal (versor) of face where fluxes are given.

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

Conservative fluxes.

private elemental subroutine compute_fluxes_from_primitive(self, eos, p, r, u, normal)

Compute conservative fluxes from primitives at interface.

Arguments

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

Conservative.

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

Equation of state.

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

Pressure at interface.

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

Density at interface.

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

Velocity (normal component) at interface.

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

Normal (versor) of face where fluxes are given.

private pure subroutine cons_assign_cons(lhs, rhs)

Operator =.

Arguments

Type IntentOptional AttributesName
class(conservative_compressible), intent(inout) :: lhs

Left hand side.

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

Right hand side.

private elemental subroutine destroy(self)

Destroy conservative.

Arguments

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

Conservative.

private subroutine initialize(self, initial_state)

Initialize conservative.

Arguments

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

Conservative.

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

Initial state.