non_dimensional_numbers_object Derived Type

type, public :: non_dimensional_numbers_object

type~~non_dimensional_numbers_object~~InheritsGraph type~non_dimensional_numbers_object non_dimensional_numbers_object type~error_object error_object type~error_object->type~non_dimensional_numbers_object error
Help


Non dimensional numbers object class.

Inherited By

type~~non_dimensional_numbers_object~~InheritedByGraph type~non_dimensional_numbers_object non_dimensional_numbers_object type~simulation_object simulation_object type~non_dimensional_numbers_object->type~simulation_object adimensionals
Help

Components

TypeVisibility AttributesNameInitial
real(kind=R8P), public :: Dt0 =1._R8P

\(Dt_0=\frac{L_0}{v_0}\) Reference time interval.

real(kind=R8P), public :: E0 =1._R8P

\(E_0=v_0^2\) Reference specific energy.

real(kind=R8P), public :: Fr =1._R8P

\(\rm{Fr}=\sqrt{\frac{v_0^2}{f_0 L_0}}\) Froude number.

real(kind=R8P), public :: Fr2_inv =1._R8P

\(\frac{1}{\rm{Fr}^2}\) Inverse of square of Froude number (coefficient of volume forces).

real(kind=R8P), public :: L0 =1._R8P

Reference length.

real(kind=R8P), public :: Ma =1._R8P

\(\rm{We}=\sqrt{\frac{v_0}{a_0}}\) Mach number.

real(kind=R8P), public :: Pr =1._R8P

\(\rm{Pr}=\frac{\mu_0 c_p}{k_0}\) Prandtl number.

real(kind=R8P), public :: PrRe_inv =1._R8P

\(\frac{1}{\rm{Pr Re}}\) Inverse of Prandtl and Reynolds numbers (coef. of condution terms).

real(kind=R8P), public :: Re =1._R8P

\(\rm{Re}=\frac{\rho_0 v_0 L_0}{\mu_0}\) Reynolds number.

real(kind=R8P), public :: Re_inv =1._R8P

\(\frac{1}{\rm{Re}}\) Inverse of Reynolds number (coefficient of viscous terms).

real(kind=R8P), public :: T0 =1._R8P

\(T_0=\frac{v_0^2}{c_0}\) Reference temperature.

real(kind=R8P), public :: We =1._R8P

\(\rm{We}=\sqrt{\frac{\rho_0 v_0^2 L_0}{\sigma_0}}\) Weber number.

real(kind=R8P), public :: a0 =1._R8P

\(a_0=v_0\) Reference speed of sound.

real(kind=R8P), public :: c0 =1._R8P

Reference specific heats (\f$cp_0 = cv_0 = R_0 = c_0\f$).

type(error_object), public :: error

Errors handler.

real(kind=R8P), public :: f0 =1._R8P

\(f_0= \frac{v_0^2}{L_0 \rm{Fr}^2}\) Reference specific force.

real(kind=R8P), public :: k0 =1._R8P

\(k_0= \frac{\mu_0 c_0}{\rm{Pr}}\) Reference thermal conductivity coefficient.

real(kind=R8P), public :: mu0 =1._R8P

\(\mu_0= \frac{\rho_0 v_0 L_0}{\rm{Re}}\) Reference dynamic viscosity.

real(kind=R8P), public :: p0 =1._R8P

\(p_0=\rho_0 v_0^2\) Reference pressure.

real(kind=R8P), public :: q0 =1._R8P

\(q_0=\frac{v_0^3}{L_0}\) Reference specific heat.

real(kind=R8P), public :: r0 =1._R8P

Reference density.

real(kind=R8P), public :: v0 =1._R8P

Reference velocity.


Type-Bound Procedures

procedure, public, pass(lhs) :: adim_assign_adim

Operator =.

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

Overload =.

procedure, public, pass(self) :: compute_reference_values

Compute derived reference values.

procedure, public, pass(self) :: description

Return a pretty-formatted description of the numbers.

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

    Return a pretty-formatted description of the numbers.

    Arguments

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

    Non dimensional numbers.

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

    Prefixing string.

    Return Value character(len=:), allocatable

    Description.

procedure, public, pass(self) :: destroy

Destroy numbers value.

  • private elemental subroutine destroy(self)

    Destroy numbers value.

    Arguments

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

    Non dimensional numbers.

procedure, public, pass(self) :: initialize

Initialize numbers value.

  • private elemental subroutine initialize(self)

    Initialize numbers value.

    Arguments

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

    Non dimensional numbers.

procedure, public, pass(self) :: load_from_file

Load from file.

  • private subroutine load_from_file(self, fini, go_on_fail)

    Load from file.

    Arguments

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

    Non dimensional numbers.

    type(file_ini), intent(in) :: fini

    Simulation parameters ini file handler.

    logical, intent(in), optional :: go_on_fail

    Go on if load fails.

procedure, public, pass(self) :: save_into_file

Save into file.

  • private subroutine save_into_file(self, fini)

    Save into file.

    Arguments

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

    Simulation parameters.

    type(file_ini), intent(inout) :: fini

    Simulation parameters ini file handler.

Source Code

type :: non_dimensional_numbers_object
   !< Non dimensional numbers object class.
   type(error_object) :: error !< Errors handler.
   ! non dimensional numbers imposed
   real(R8P) :: Re=1._R8P !< \(\rm{Re}=\frac{\rho_0 v_0 L_0}{\mu_0}\) Reynolds number.
   real(R8P) :: Fr=1._R8P !< \(\rm{Fr}=\sqrt{\frac{v_0^2}{f_0 L_0}}\) Froude number.
   real(R8P) :: We=1._R8P !< \(\rm{We}=\sqrt{\frac{\rho_0 v_0^2 L_0}{\sigma_0}}\) Weber number.
   real(R8P) :: Ma=1._R8P !< \(\rm{We}=\sqrt{\frac{v_0}{a_0}}\) Mach number.
   real(R8P) :: Pr=1._R8P !< \(\rm{Pr}=\frac{\mu_0 c_p}{k_0}\) Prandtl number.
   ! reference values imposed
   real(R8P) :: L0=1._R8P !< Reference length.
   real(R8P) :: r0=1._R8P !< Reference density.
   real(R8P) :: v0=1._R8P !< Reference velocity.
   real(R8P) :: c0=1._R8P !< Reference specific heats (\f$cp_0 = cv_0 = R_0 = c_0\f$).
   ! derived reference values
   real(R8P) :: mu0=1._R8P !< \(\mu_0= \frac{\rho_0 v_0 L_0}{\rm{Re}}\) Reference dynamic viscosity.
   real(R8P) :: f0 =1._R8P !< \(f_0= \frac{v_0^2}{L_0 \rm{Fr}^2}\) Reference specific force.
   real(R8P) :: k0 =1._R8P !< \(k_0= \frac{\mu_0 c_0}{\rm{Pr}}\) Reference thermal conductivity coefficient.
   real(R8P) :: Dt0=1._R8P !< \(Dt_0=\frac{L_0}{v_0}\) Reference time interval.
   real(R8P) :: p0 =1._R8P !< \(p_0=\rho_0 v_0^2\) Reference pressure.
   real(R8P) :: a0 =1._R8P !< \(a_0=v_0\) Reference speed of sound.
   real(R8P) :: T0 =1._R8P !< \(T_0=\frac{v_0^2}{c_0}\) Reference temperature.
   real(R8P) :: E0 =1._R8P !< \(E_0=v_0^2\) Reference specific energy.
   real(R8P) :: q0 =1._R8P !< \(q_0=\frac{v_0^3}{L_0}\) Reference specific heat.
   ! equations coefficients
   real(R8P) :: Re_inv=1._R8P   !< \(\frac{1}{\rm{Re}}\) Inverse of Reynolds number (coefficient of viscous terms).
   real(R8P) :: Fr2_inv=1._R8P  !< \(\frac{1}{\rm{Fr}^2}\) Inverse of square of Froude number (coefficient of volume forces).
   real(R8P) :: PrRe_inv=1._R8P !< \(\frac{1}{\rm{Pr Re}}\) Inverse of Prandtl and Reynolds numbers (coef. of condution terms).
   contains
      ! public methods
      procedure, pass(self) :: compute_reference_values !< Compute derived reference values.
      procedure, pass(self) :: description              !< Return a pretty-formatted description of the numbers.
      procedure, pass(self) :: destroy                  !< Destroy numbers value.
      procedure, pass(self) :: initialize               !< Initialize numbers value.
      procedure, pass(self) :: load_from_file           !< Load from file.
      procedure, pass(self) :: save_into_file           !< Save into file.
      ! operators
      generic :: assignment(=) => adim_assign_adim !< Overload `=`.
      ! private methods
      procedure, pass(lhs) :: adim_assign_adim !< Operator `=`.
endtype non_dimensional_numbers_object