Equation of state (EOS) of ideal compressible object class.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=R8P), | public | :: | R_ | = | 0._R8P | Fluid constant |
|
| real(kind=R8P), | public | :: | cp_ | = | 0._R8P | Specific heat at constant pressure |
|
| real(kind=R8P), | public | :: | cv_ | = | 0._R8P | Specific heat at constant volume |
|
| real(kind=R8P), | public | :: | delta_ | = | 0._R8P |
|
|
| real(kind=R8P), | public | :: | eta_ | = | 0._R8P |
|
|
| real(kind=R8P), | public | :: | g_ | = | 0._R8P | Specific heats ratio |
|
| real(kind=R8P), | public | :: | gm1_ | = | 0._R8P |
|
|
| real(kind=R8P), | public | :: | gp1_ | = | 0._R8P |
|
Overload eos_compressible name with its constructor.
Return and instance of eos_compressible.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R8P), | intent(in), | optional | :: | cp | Specific heat at constant pressure |
|
| real(kind=R8P), | intent(in), | optional | :: | cv | Specific heat at constant volume |
|
| real(kind=R8P), | intent(in), | optional | :: | gam | Specific heats ratio |
|
| real(kind=R8P), | intent(in), | optional | :: | R | Fluid constant |
Instance of eos_compressible.
Return fluid constant R=cp-cv.
Return fluid constant R=cp-cv.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
Fluid constant value.
Overload =.
Operator =.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(inout) | :: | lhs | Left hand side. |
||
| class(eos_object), | intent(in) | :: | rhs | Right hand side. |
Compute derivate quantities (from cp and cv).
Compute derivate quantities (from cp and cv).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(inout) | :: | self | Equation of state. |
Return specific heat at constant pressure.
Return specific heat at constant pressure.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
cp value.
Return specific heat at constant volume.
Return specific heat at constant volume.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
cv value.
Return (gamma - 1) / 2.
Return (gamma - 1) / 2.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
(gamma - 1) / 2 value.
Return density.
Return density.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
Density value.
Return pretty-printed object description.
Return a pretty-formatted object description.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
||
| character(len=*), | intent(in), | optional | :: | prefix | Prefixing string. |
Description.
Return specific internal energy.
Return specific internal energy.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
Energy value.
Operator =.
Operator =.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(inout) | :: | lhs | Left hand side. |
||
| class(eos_object), | intent(in) | :: | rhs | Right hand side. |
Return 2 * gamma / (gamma - 1).
Return 2 * gamma / (gamma - 1).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
2 * gamma / (gamma - 1) value.
Return specific heats ratio gamma=cp/cv.
Return specific heats ratio gamma=cp/cv.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
Specific heats ratio value.
Return gamma - 1.
Return gamma - 1.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
gamma - 1 value.
Return gamma + 1.
Return gamma + 1.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(eos_compressible), | intent(in) | :: | self | Equation of state. |
gamma + 1 value.
Return pressure.
Return pressure.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
Pressure value.
Return speed of sound.
Return speed of sound.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
Speed of sound value.
Return temperature.
Return temperature.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
Temperature value.
type, extends(eos_object) :: eos_compressible
!< Equation of state (EOS) of ideal compressible object class.
real(R8P) :: cp_=0._R8P !< Specific heat at constant pressure `cp`.
real(R8P) :: cv_=0._R8P !< Specific heat at constant volume `cv`.
real(R8P) :: g_=0._R8P !< Specific heats ratio `gamma = cp / cv`.
real(R8P) :: R_=0._R8P !< Fluid constant `R = cp - cv`.
real(R8P) :: gm1_=0._R8P !< `gamma - 1`.
real(R8P) :: gp1_=0._R8P !< `gamma + 1`.
real(R8P) :: delta_=0._R8P !< `(gamma - 1) / 2`.
real(R8P) :: eta_=0._R8P !< `2 * gamma / (gamma - 1)`.
contains
! public methods
procedure, pass(self) :: compute_derivate !< Compute derivate quantities (from `cp` and `cv`).
! deferred methods
procedure, pass(self) :: cp !< Return specific heat at constant pressure.
procedure, pass(self) :: cv !< Return specific heat at constant volume.
procedure, pass(self) :: delta !< Return `(gamma - 1) / 2`.
procedure, pass(self) :: density !< Return density.
procedure, pass(self) :: description !< Return pretty-printed object description.
procedure, pass(self) :: energy !< Return specific internal energy.
procedure, pass(lhs) :: eos_assign_eos !< Operator `=`.
procedure, pass(self) :: eta !< Return `2 * gamma / (gamma - 1)`.
procedure, pass(self) :: g !< Return specific heats ratio `gamma=cp/cv`.
procedure, pass(self) :: gm1 !< Return `gamma - 1`.
procedure, pass(self) :: gp1 !< Return `gamma + 1`.
procedure, pass(self) :: pressure !< Return pressure.
procedure, pass(self) :: R !< Return fluid constant `R=cp-cv`.
procedure, pass(self) :: speed_of_sound !< Return speed of sound.
procedure, pass(self) :: temperature !< Return temperature.
endtype eos_compressible