foreseer_eos_compressible Module

module~~foreseer_eos_compressible~~UsesGraph module~foreseer_eos_compressible foreseer_eos_compressible module~foreseer_eos_object foreseer_eos_object module~foreseer_eos_object->module~foreseer_eos_compressible iso_fortran_env iso_fortran_env iso_fortran_env->module~foreseer_eos_compressible penf penf penf->module~foreseer_eos_compressible penf->module~foreseer_eos_object
Help

Define the equation of state (EOS) of ideal compressible fluid for FORESEER library.

Used By

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


Interfaces

public interface eos_compressible

Overload eos_compressible name with its constructor.

  • private elemental function eos_compressible_instance(cp, cv, gam, R) result(instance)

    Return and instance of eos_compressible.

    Arguments

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

    Specific heat at constant pressure cp value.

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

    Specific heat at constant volume cv value.

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

    Specific heats ratio gamma=cp/cv value.

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

    Fluid constant R=cp-cv value.

    Return Value type(eos_compressible)

    Instance of eos_compressible.


Derived Types

type, public, extends(eos_object) :: eos_compressible

Equation of state (EOS) of ideal compressible object class.

Components

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

Fluid constant R = cp - cv.

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

Specific heat at constant pressure cp.

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

Specific heat at constant volume cv.

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

(gamma - 1) / 2.

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

2 * gamma / (gamma - 1).

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

Specific heats ratio gamma = cp / cv.

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

gamma - 1.

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

gamma + 1.

Constructor

Overload eos_compressible name with its constructor.

private elemental function eos_compressible_instance(cp, cv, gam, R)

Return and instance of eos_compressible.

Type-Bound Procedures

procedure, public, pass(self) :: R

Return fluid constant R=cp-cv.

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

Overload =.

procedure, public, pass(self) :: compute_derivate

Compute derivate quantities (from cp and cv).

procedure, public, pass(self) :: cp

Return specific heat at constant pressure.

procedure, public, pass(self) :: cv

Return specific heat at constant volume.

procedure, public, pass(self) :: delta

Return (gamma - 1) / 2.

procedure, public, pass(self) :: density

Return density.

procedure, public, pass(self) :: description

Return pretty-printed object description.

procedure, public, pass(self) :: energy

Return specific internal energy.

procedure, public, pass(lhs) :: eos_assign_eos

Operator =.

procedure, public, pass(self) :: eta

Return 2 * gamma / (gamma - 1).

procedure, public, pass(self) :: g

Return specific heats ratio gamma=cp/cv.

procedure, public, pass(self) :: gm1

Return gamma - 1.

procedure, public, pass(self) :: gp1

Return gamma + 1.

procedure, public, pass(self) :: pressure

Return pressure.

procedure, public, pass(self) :: speed_of_sound

Return speed of sound.

procedure, public, pass(self) :: temperature

Return temperature.


Functions

private elemental function R(self) result(R_)

Return fluid constant R=cp-cv.

Arguments

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

Equation of state.

Return Value real(kind=R8P)

Fluid constant value.

private elemental function cp(self) result(cp_)

Return specific heat at constant pressure.

Arguments

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

Equation of state.

Return Value real(kind=R8P)

cp value.

private elemental function cv(self) result(cv_)

Return specific heat at constant volume.

Arguments

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

Equation of state.

Return Value real(kind=R8P)

cv value.

private elemental function delta(self) result(delta_)

Return (gamma - 1) / 2.

Arguments

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

Equation of state.

Return Value real(kind=R8P)

(gamma - 1) / 2 value.

private elemental function density(self, energy, pressure, speed_of_sound, temperature) result(density_)

Return density.

Arguments

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

Equation of state.

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

Specific internal energy value.

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

Pressure value.

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

Speed of sound value.

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

Temperature value.

Return Value real(kind=R8P)

Density value.

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

Return a pretty-formatted object description.

Arguments

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

Equation of state.

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

Prefixing string.

Return Value character(len=:), allocatable

Description.

private elemental function energy(self, density, pressure, temperature) result(energy_)

Return specific internal energy.

Arguments

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

Equation of state.

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

Density value.

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

Pressure value.

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

Temperature value.

Return Value real(kind=R8P)

Energy value.

private elemental function eos_compressible_instance(cp, cv, gam, R) result(instance)

Return and instance of eos_compressible.

Arguments

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

Specific heat at constant pressure cp value.

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

Specific heat at constant volume cv value.

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

Specific heats ratio gamma=cp/cv value.

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

Fluid constant R=cp-cv value.

Return Value type(eos_compressible)

Instance of eos_compressible.

public function eos_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(eos_object), intent(in), target:: to

Target of associate.

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

Auxiliary error message.

Return Value class(eos_compressible), pointer

Associated pointer.

private elemental function eta(self) result(eta_)

Return 2 * gamma / (gamma - 1).

Arguments

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

Equation of state.

Return Value real(kind=R8P)

2 * gamma / (gamma - 1) value.

private elemental function g(self) result(g_)

Return specific heats ratio gamma=cp/cv.

Arguments

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

Equation of state.

Return Value real(kind=R8P)

Specific heats ratio value.

private elemental function gm1(self) result(gm1_)

Return gamma - 1.

Arguments

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

Equation of state.

Return Value real(kind=R8P)

gamma - 1 value.

private elemental function gp1(self) result(gp1_)

Return gamma + 1.

Arguments

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

Equation of state.

Return Value real(kind=R8P)

gamma + 1 value.

private elemental function pressure(self, density, energy, temperature) result(pressure_)

Return pressure.

Arguments

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

Equation of state.

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

Density value.

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

Specific internal energy value.

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

Temperature value.

Return Value real(kind=R8P)

Pressure value.

private elemental function speed_of_sound(self, density, pressure) result(speed_of_sound_)

Return speed of sound.

Arguments

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

Equation of state.

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

Density value.

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

Pressure value.

Return Value real(kind=R8P)

Speed of sound value.

private elemental function temperature(self, density, energy, pressure) result(temperature_)

Return temperature.

Arguments

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

Equation of state.

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

Density value.

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

Specific internal energy value.

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

Pressure value.

Return Value real(kind=R8P)

Temperature value.


Subroutines

private elemental subroutine compute_derivate(self)

Compute derivate quantities (from cp and cv).

Arguments

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

Equation of state.

private pure subroutine eos_assign_eos(lhs, rhs)

Operator =.

Arguments

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

Left hand side.

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

Right hand side.