MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_derived_variables Module Reference

Computes derived flow quantities (sound speed, vorticity, Schlieren, etc.) from conservative and primitive variables. More...

Functions/Subroutines

impure subroutine, public s_initialize_derived_variables_module
 Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the module.
subroutine, public s_derive_specific_heat_ratio (q_sf)
 Derive the specific heat ratio from the specific heat ratio function gamma_sf. The latter is stored in the derived flow quantity storage variable, q_sf.
subroutine, public s_derive_liquid_stiffness (q_sf)
 Compute the liquid stiffness from the specific heat ratio function gamma_sf and the liquid stiffness function pi_inf_sf, respectively. These are used to calculate the values of the liquid stiffness, which are stored in the derived flow quantity storage variable, q_sf.
subroutine, public s_derive_sound_speed (q_prim_vf, q_sf)
 Compute the speed of sound from the primitive variables, density, specific heat ratio function, and liquid stiffness function. It then computes from those variables the values of the speed of sound, which are stored in the derived flow quantity storage variable, q_sf.
subroutine, public s_derive_flux_limiter (i, q_prim_vf, q_sf)
 Derive the flux limiter at cell boundary i+1/2. This is an approximation because the velocity used to determine the upwind direction is the velocity at the cell center i instead of the contact velocity at the cell boundary from the Riemann solver.
subroutine s_solve_linear_system (a, b, sol, ndim)
 Solve Ax=b via Gaussian elimination with partial pivoting.
subroutine, public s_derive_vorticity_component (i, q_prim_vf, q_sf)
 Compute the specified component of the vorticity from the primitive variables. From those inputs, it proceeds to calculate values of the desired vorticity component, which are subsequently stored in derived flow quantity storage variable, q_sf.
subroutine, public s_derive_qm (q_prim_vf, q_sf)
 Compute the Q_M criterion from the primitive variables. The Q_M function, which are subsequently stored in the derived flow quantity storage variable, q_sf.
impure subroutine, public s_derive_liutex (q_prim_vf, liutex_mag, liutex_axis)
 Compute the Liutex vector and its magnitude based on Xu et al. (2019).
impure subroutine, public s_derive_numerical_schlieren_function (q_cons_vf, q_sf)
 Compute the values of the numerical Schlieren function, which are subsequently stored in the derived flow quantity storage variable, q_sf.
impure subroutine, public s_finalize_derived_variables_module
 Deallocation procedures for the module.

Variables

real(wp), dimension(:,:,:), allocatable gm_rho_sf
 Density gradient magnitude for numerical Schlieren.
integer, private flg
 Dimensionality flag: 1 = 3D dataset, 0 = otherwise.
Finite-difference (fd) coefficients in x-, y- and z-coordinate directions. Note that because sufficient boundary

information is available for all the active coordinate directions, the centered family of the finite-difference schemes is used.

real(wp), dimension(:,:), allocatable, public fd_coeff_x
real(wp), dimension(:,:), allocatable, public fd_coeff_y
real(wp), dimension(:,:), allocatable, public fd_coeff_z

Detailed Description

Computes derived flow quantities (sound speed, vorticity, Schlieren, etc.) from conservative and primitive variables.

Function/Subroutine Documentation

◆ s_derive_flux_limiter()

subroutine, public m_derived_variables::s_derive_flux_limiter ( integer, intent(in) i,
type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(inout) q_sf )

Derive the flux limiter at cell boundary i+1/2. This is an approximation because the velocity used to determine the upwind direction is the velocity at the cell center i instead of the contact velocity at the cell boundary from the Riemann solver.

Definition at line 142 of file m_derived_variables.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_derive_liquid_stiffness()

subroutine, public m_derived_variables::s_derive_liquid_stiffness ( real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(inout) q_sf)

Compute the liquid stiffness from the specific heat ratio function gamma_sf and the liquid stiffness function pi_inf_sf, respectively. These are used to calculate the values of the liquid stiffness, which are stored in the derived flow quantity storage variable, q_sf.

Definition at line 87 of file m_derived_variables.fpp.f90.

Here is the caller graph for this function:

◆ s_derive_liutex()

impure subroutine, public m_derived_variables::s_derive_liutex ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(out) liutex_mag,
real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end,nm), intent(out) liutex_axis )

Compute the Liutex vector and its magnitude based on Xu et al. (2019).

Parameters
[out]liutex_magLiutex magnitude
[out]liutex_axisLiutex rigid rotation axis

Definition at line 372 of file m_derived_variables.fpp.f90.

Here is the caller graph for this function:

◆ s_derive_numerical_schlieren_function()

impure subroutine, public m_derived_variables::s_derive_numerical_schlieren_function ( type(scalar_field), dimension(sys_size), intent(in) q_cons_vf,
real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(inout) q_sf )

Compute the values of the numerical Schlieren function, which are subsequently stored in the derived flow quantity storage variable, q_sf.

Definition at line 477 of file m_derived_variables.fpp.f90.

Here is the caller graph for this function:

◆ s_derive_qm()

subroutine, public m_derived_variables::s_derive_qm ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(inout) q_sf )

Compute the Q_M criterion from the primitive variables. The Q_M function, which are subsequently stored in the derived flow quantity storage variable, q_sf.

Definition at line 314 of file m_derived_variables.fpp.f90.

Here is the caller graph for this function:

◆ s_derive_sound_speed()

subroutine, public m_derived_variables::s_derive_sound_speed ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(inout) q_sf )

Compute the speed of sound from the primitive variables, density, specific heat ratio function, and liquid stiffness function. It then computes from those variables the values of the speed of sound, which are stored in the derived flow quantity storage variable, q_sf.

Definition at line 106 of file m_derived_variables.fpp.f90.

◆ s_derive_specific_heat_ratio()

subroutine, public m_derived_variables::s_derive_specific_heat_ratio ( real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(inout) q_sf)

Derive the specific heat ratio from the specific heat ratio function gamma_sf. The latter is stored in the derived flow quantity storage variable, q_sf.

Definition at line 68 of file m_derived_variables.fpp.f90.

Here is the caller graph for this function:

◆ s_derive_vorticity_component()

subroutine, public m_derived_variables::s_derive_vorticity_component ( integer, intent(in) i,
type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
real(wp), dimension(-offset_x%beg:m + offset_x%end,-offset_y%beg:n + offset_y%end,-offset_z%beg:p + offset_z%end), intent(inout) q_sf )

Compute the specified component of the vorticity from the primitive variables. From those inputs, it proceeds to calculate values of the desired vorticity component, which are subsequently stored in derived flow quantity storage variable, q_sf.

Definition at line 249 of file m_derived_variables.fpp.f90.

Here is the caller graph for this function:

◆ s_finalize_derived_variables_module()

impure subroutine, public m_derived_variables::s_finalize_derived_variables_module

Deallocation procedures for the module.

Definition at line 559 of file m_derived_variables.fpp.f90.

◆ s_initialize_derived_variables_module()

impure subroutine, public m_derived_variables::s_initialize_derived_variables_module

Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the module.

Definition at line 37 of file m_derived_variables.fpp.f90.

Here is the caller graph for this function:

◆ s_solve_linear_system()

subroutine m_derived_variables::s_solve_linear_system ( real(wp), dimension(ndim, ndim), intent(inout) a,
real(wp), dimension(ndim), intent(inout) b,
real(wp), dimension(ndim), intent(out) sol,
integer, intent(in) ndim )

Solve Ax=b via Gaussian elimination with partial pivoting.

Definition at line 212 of file m_derived_variables.fpp.f90.

Variable Documentation

◆ fd_coeff_x

real(wp), dimension(:,:), allocatable, public m_derived_variables::fd_coeff_x

Definition at line 27 of file m_derived_variables.fpp.f90.

◆ fd_coeff_y

real(wp), dimension(:,:), allocatable, public m_derived_variables::fd_coeff_y

Definition at line 28 of file m_derived_variables.fpp.f90.

◆ fd_coeff_z

real(wp), dimension(:,:), allocatable, public m_derived_variables::fd_coeff_z

Definition at line 29 of file m_derived_variables.fpp.f90.

◆ flg

integer, private m_derived_variables::flg
private

Dimensionality flag: 1 = 3D dataset, 0 = otherwise.

Definition at line 32 of file m_derived_variables.fpp.f90.

◆ gm_rho_sf

real(wp), dimension(:,:,:), allocatable m_derived_variables::gm_rho_sf

Density gradient magnitude for numerical Schlieren.

Definition at line 22 of file m_derived_variables.fpp.f90.