MFC: Pre-Process
High-fidelity multiphase flow simulation
Loading...
Searching...
No Matches
m_initial_condition Module Reference

This module provides a platform that is analogous to constructive solid geometry techniques and in this way allows for the creation of a wide variety of initial conditions. Several 1D, 2D and 3D fundamental geometries are included that may further be combined into more complex shapes. This is achieved by carefully setting up the order in which the patches are laid out in the domain and specifying the priority that each patch has over the preceding ones. The resulting shapes may be identified both by the values of their primitive variables and the associated patch identities. Note that the user may choose to read in and modify a preexisting initial condition. The module m_start_up.f90 is responsible for reading in the relevant data files. More...

Functions/Subroutines

subroutine s_initialize_initial_condition_module ()
 Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the module.
 
subroutine s_perturb_sphere ()
 
subroutine s_perturb_surrounding_flow ()
 
subroutine s_superposition_instability_wave ()
 This subroutine computes velocity perturbations for a temporal mixing layer with hypertangent mean streamwise velocity profile obtained from linear stability analysis. For a 2D case, instability waves with spatial wavenumbers, (4,0), (2,0), and (1,0) are superposed. For a 3D waves, (4,4), (4,-4), (2,2), (2,-2), (1,1), (1,-1) areadded on top of 2D waves.
 
subroutine s_instability_wave (alpha, beta, tr, ti, wave, shift)
 This subroutine computes instability waves for a given set of spatial wavenumbers (alpha, beta) in x and z directions. The eigenvalue problem is derived from the linearized Euler equations with parallel mean flow assumption (See Sandham 1989 PhD thesis for details).
 
subroutine s_generate_wave (nl, wr, wi, zr, zi, alpha, beta, wave, shift)
 This subroutine generates an instability wave using the most unstable eigenvalue and corresponding eigenvector among the given set of eigenvalues and eigenvectors.
 
subroutine s_finalize_initial_condition_module ()
 Deallocation procedures for the module.
 
subroutine s_generate_initial_condition ()
 This subroutine peruses the patches and depending on the type of geometry associated with a particular patch, it calls the related subroutine to setup the said geometry on the grid using the primitive variables included with the patch parameters. The subroutine is complete once the primitive variables are converted to conservative ones.
 

Variables

type(scalar_field), dimension(:), allocatable q_prim_vf
 primitive variables
 
type(scalar_field), dimension(:), allocatable q_cons_vf
 conservative variables
 
integer, dimension(:, :, :), allocatable patch_id_fp
 Bookkepping variable used to track the patch identities (id) associated with each of the cells in the computational domain. Note that only one patch identity may be associated with any one cell.
 
type(integer_fieldib_markers
 Bookkepping variable used to track whether a given cell is within an immersed boundary. The default is 0, otherwise the value is assigned to the patch ID of the immersed boundary.
 

Detailed Description

This module provides a platform that is analogous to constructive solid geometry techniques and in this way allows for the creation of a wide variety of initial conditions. Several 1D, 2D and 3D fundamental geometries are included that may further be combined into more complex shapes. This is achieved by carefully setting up the order in which the patches are laid out in the domain and specifying the priority that each patch has over the preceding ones. The resulting shapes may be identified both by the values of their primitive variables and the associated patch identities. Note that the user may choose to read in and modify a preexisting initial condition. The module m_start_up.f90 is responsible for reading in the relevant data files.

Function/Subroutine Documentation

◆ s_finalize_initial_condition_module()

subroutine m_initial_condition::s_finalize_initial_condition_module

Deallocation procedures for the module.

◆ s_generate_initial_condition()

subroutine m_initial_condition::s_generate_initial_condition

This subroutine peruses the patches and depending on the type of geometry associated with a particular patch, it calls the related subroutine to setup the said geometry on the grid using the primitive variables included with the patch parameters. The subroutine is complete once the primitive variables are converted to conservative ones.

ICPP Patches

IB Patches

ICPP Patches

IB Patches

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

◆ s_generate_wave()

subroutine m_initial_condition::s_generate_wave ( integer nl,
real(kind(0d0)), dimension(0:nl - 1) wr,
real(kind(0d0)), dimension(0:nl - 1) wi,
real(kind(0d0)), dimension(0:nl - 1, 0:nl - 1) zr,
real(kind(0d0)), dimension(0:nl - 1, 0:nl - 1) zi,
real(kind(0d0)) alpha,
real(kind(0d0)) beta,
real(kind(0d0)), dimension(5, 0:m, 0:n, 0:p) wave,
real(kind(0d0)) shift )

This subroutine generates an instability wave using the most unstable eigenvalue and corresponding eigenvector among the given set of eigenvalues and eigenvectors.

Parameters
wieigenvalues
zieigenvectors
Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_initialize_initial_condition_module()

subroutine m_initial_condition::s_initialize_initial_condition_module

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

Here is the caller graph for this function:

◆ s_instability_wave()

subroutine m_initial_condition::s_instability_wave ( real(kind(0d0)), intent(in) alpha,
real(kind(0d0)), intent(in) beta,
real(kind(0d0)) tr,
real(kind(0d0)) ti,
real(kind(0d0)), dimension(5, 0:m, 0:n, 0:p) wave,
real(kind(0d0)) shift )

This subroutine computes instability waves for a given set of spatial wavenumbers (alpha, beta) in x and z directions. The eigenvalue problem is derived from the linearized Euler equations with parallel mean flow assumption (See Sandham 1989 PhD thesis for details).

Parameters
[in]betaspatial wavenumbers
timost unstable eigenvalue
waveinstability wave
shiftphase shift
Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_perturb_sphere()

subroutine m_initial_condition::s_perturb_sphere
Here is the caller graph for this function:

◆ s_perturb_surrounding_flow()

subroutine m_initial_condition::s_perturb_surrounding_flow
Here is the caller graph for this function:

◆ s_superposition_instability_wave()

subroutine m_initial_condition::s_superposition_instability_wave

This subroutine computes velocity perturbations for a temporal mixing layer with hypertangent mean streamwise velocity profile obtained from linear stability analysis. For a 2D case, instability waves with spatial wavenumbers, (4,0), (2,0), and (1,0) are superposed. For a 3D waves, (4,4), (4,-4), (2,2), (2,-2), (1,1), (1,-1) areadded on top of 2D waves.

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

Variable Documentation

◆ ib_markers

type(integer_field) m_initial_condition::ib_markers

Bookkepping variable used to track whether a given cell is within an immersed boundary. The default is 0, otherwise the value is assigned to the patch ID of the immersed boundary.

◆ patch_id_fp

integer, dimension(:, :, :), allocatable m_initial_condition::patch_id_fp

Bookkepping variable used to track the patch identities (id) associated with each of the cells in the computational domain. Note that only one patch identity may be associated with any one cell.

◆ q_cons_vf

type(scalar_field), dimension(:), allocatable m_initial_condition::q_cons_vf

conservative variables

◆ q_prim_vf

type(scalar_field), dimension(:), allocatable m_initial_condition::q_prim_vf

primitive variables