Convervative compressible object class.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=R8P), | public | :: | density | = | 0._R8P | Density, |
|
| real(kind=R8P), | public | :: | pressure | = | 0._R8P | Pressure, |
|
| type(vector), | public | :: | velocity | Velocity, |
Overload primitive_compressible name with its constructor.
Return and instance of primitive_compressible.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R8P), | intent(in), | optional | :: | density | Density, |
|
| type(vector), | intent(in), | optional | :: | velocity | Velocity, |
|
| real(kind=R8P), | intent(in), | optional | :: | pressure | Pressure, |
Instance of primitive_compressible.
Operator +.
Operator +.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Return serialized array of primitive.
Return serialized array of primitive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Serialized array of primitive.
Overload =.
Operator =.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(inout) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Return pretty-printed object description.
Return a pretty-formatted object description.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
||
| character(len=*), | intent(in), | optional | :: | prefix | Prefixing string. |
Description.
Destroy primitive.
Destroy primitive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(inout) | :: | self | Primitive. |
Return energy value.
Return energy value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
||
| class(eos_object), | intent(in) | :: | eos | Equation of state. |
Energy value.
Initialize primitive.
Initialize primitive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(inout) | :: | self | Primitive. |
||
| class(primitive_object), | intent(in), | optional | :: | initial_state | Initial state. |
Return the left eigenvectors matrix L as dF/dP = A = R ^ L.
Return the left eigenvectors matrix L as dF/dP = A = R ^ L.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
||
| class(eos_object), | intent(in) | :: | eos | Equation of state. |
Eigenvectors.
Return momentum vector.
Return momentum vector.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Momentum vector.
Unary operator - prim.
Unary operator - prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Operator result.
Overload *.
Operator *.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator prim * real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator real * prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R8P), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_compressible), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Overload +.
Operator +.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Unary operator + prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Operator result.
Overload -.
Operator +.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Unary operator - prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Operator result.
Overload /.
Operator prim / real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Unary operator + prim.
Unary operator + prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Operator result.
Operator =.
Operator =.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(inout) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator prim / real.
Operator prim / real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator *.
Operator *.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator prim * real.
Operator prim * real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator real * prim.
Operator real * prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R8P), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_compressible), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Return the right eigenvectors matrix R as dF/dP = A = R ^ L.
Return the right eigenvectors matrix R as dF/dP = A = R ^ L.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
||
| class(eos_object), | intent(in) | :: | eos | Equation of state. |
Eigenvectors.
Operator -.
Operator +.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
type, extends(primitive_object) :: primitive_compressible
!< Convervative compressible object class.
real(R8P) :: density=0._R8P !< Density, `rho`.
type(vector) :: velocity !< Velocity, `v`.
real(R8P) :: pressure=0._R8P !< Pressure, `p`.
contains
! public methods
procedure, pass(self) :: left_eigenvectors !< Return the left eigenvectors matrix `L` as `dF/dP = A = R ^ L`.
procedure, pass(self) :: right_eigenvectors !< Return the right eigenvectors matrix `R` as `dF/dP = A = R ^ L`.
! deferred methods
procedure, pass(self) :: array !< Return serialized array of primitive.
procedure, pass(self) :: description !< Return pretty-printed object description.
procedure, pass(self) :: destroy !< Destroy primitive.
procedure, pass(self) :: energy !< Return energy value.
procedure, pass(self) :: initialize !< Initialize primitive.
procedure, pass(self) :: momentum !< Return momentum vector.
procedure, pass(lhs) :: prim_assign_prim !< Operator `=`.
procedure, pass(lhs) :: prim_divide_real !< Operator `prim / real`.
procedure, pass(lhs) :: prim_multiply_real !< Operator `prim * real`.
procedure, pass(lhs) :: prim_multiply_prim !< Operator `*`.
procedure, pass(rhs) :: real_multiply_prim !< Operator `real * prim`.
procedure, pass(lhs) :: add !< Operator `+`.
procedure, pass(self) :: positive !< Unary operator `+ prim`.
procedure, pass(lhs) :: sub !< Operator `-`.
procedure, pass(self) :: negative !< Unary operator `- prim`.
endtype primitive_compressible