Loading [MathJax]/jax/input/TeX/config.js
MFC: Pre-Process
High-fidelity multiphase flow simulation
All Classes Namespaces Files Functions Variables Pages
m_perturbation Module Reference

This module contains subroutines that compute perturbations to the initial mean flow fields. More...

Functions/Subroutines

subroutine s_initialize_perturbation_module ()
 
subroutine s_perturb_sphere (q_prim_vf)
 
subroutine s_perturb_surrounding_flow (q_prim_vf)
 
subroutine s_superposition_instability_wave (q_prim_vf)
 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_compute_equilibrium_state (fp, fr0, fr)
 This subroutine computes equilibrium bubble radius of the perturbed pressure field.
 
subroutine s_instability_wave (alpha, beta, 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_solve_linear_system (alpha, beta, u_mean, rho_mean, p_mean, d, gam, pi_inf, mach, wave, shift)
 This subroutine solves linear system from linear stability analysis and generate instability waves for the given set of spatial wave numbers and phase shift.
 
subroutine s_instability_nonreflecting_subsonic_buffer_bc (ar, ai, hr, hi, rho_mean, mach)
 This subroutine applies non-reflecting subsonic buffer boundary condition to the linear system of equations (i.e. matrix A).
 
subroutine s_generate_wave (wr, wi, zr, zi, rho_mean, mach, 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_elliptic_smoothing (q_prim_vf)
 
subroutine s_finalize_perturbation_module ()
 

Variables

integer mixlayer_nvar
 
integer, dimension(:), allocatable mixlayer_var
 
integer nbp
 
integer mixlayer_bc_fd
 
integer n_bc_skip
 
real(wp), dimension(:, :, :, :), allocatable q_prim_temp
 
real(wpbcxb
 
real(wpbcxe
 
real(wpbcyb
 
real(wpbcye
 
real(wpbczb
 
real(wpbcze
 

Detailed Description

This module contains subroutines that compute perturbations to the initial mean flow fields.

Function/Subroutine Documentation

◆ s_compute_equilibrium_state()

subroutine m_perturbation::s_compute_equilibrium_state ( real(wp), intent(in) fp,
real(wp), intent(in) fr0,
real(wp), intent(inout) fr )

This subroutine computes equilibrium bubble radius of the perturbed pressure field.

Here is the caller graph for this function:

◆ s_elliptic_smoothing()

subroutine m_perturbation::s_elliptic_smoothing ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_finalize_perturbation_module()

subroutine m_perturbation::s_finalize_perturbation_module

◆ s_generate_wave()

subroutine m_perturbation::s_generate_wave ( real(wp), dimension(0:mixlayer_nvar*n - n_bc_skip - 1), intent(in) wr,
real(wp), dimension(0:mixlayer_nvar*n - n_bc_skip - 1), intent(in) wi,
real(wp), dimension(0:mixlayer_nvar*n - n_bc_skip - 1, 0:mixlayer_nvar*n - n_bc_skip - 1), intent(in) zr,
real(wp), dimension(0:mixlayer_nvar*n - n_bc_skip - 1, 0:mixlayer_nvar*n - n_bc_skip - 1), intent(in) zi,
real(wp), intent(in) rho_mean,
real(wp), intent(in) mach,
real(wp), intent(in) alpha,
real(wp), intent(in) beta,
real(wp), dimension(mixlayer_nvar, 0:m, 0:n, 0:p), intent(inout) wave,
real(wp), intent(in) shift )

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

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

◆ s_initialize_perturbation_module()

subroutine m_perturbation::s_initialize_perturbation_module

◆ s_instability_nonreflecting_subsonic_buffer_bc()

subroutine m_perturbation::s_instability_nonreflecting_subsonic_buffer_bc ( real(wp), dimension(0:mixlayer_nvar*nbp - 1, 0:mixlayer_nvar*nbp - 1), intent(inout) ar,
real(wp), dimension(0:mixlayer_nvar*nbp - 1, 0:mixlayer_nvar*nbp - 1), intent(inout) ai,
real(wp), dimension(0:mixlayer_nvar*n - n_bc_skip - 1, 0:mixlayer_nvar*n - n_bc_skip - 1), intent(out) hr,
real(wp), dimension(0:mixlayer_nvar*n - n_bc_skip - 1, 0:mixlayer_nvar*n - n_bc_skip - 1), intent(out) hi,
real(wp), intent(in) rho_mean,
real(wp), intent(in) mach )

This subroutine applies non-reflecting subsonic buffer boundary condition to the linear system of equations (i.e. matrix A).

Parameters
[in,out]aimatrices for eigenvalue problem
[out]himatrices for eigenvalue problem
[in]rho_meanmean density profiles
Here is the caller graph for this function:

◆ s_instability_wave()

subroutine m_perturbation::s_instability_wave ( real(wp), intent(in) alpha,
real(wp), intent(in) beta,
real(wp), dimension(mixlayer_nvar, 0:m, 0:n, 0:p), intent(inout) wave,
real(wp), intent(in) 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
[in,out]waveinstability wave
[in]shiftphase shift
Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_perturb_sphere()

subroutine m_perturbation::s_perturb_sphere ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf)
Here is the caller graph for this function:

◆ s_perturb_surrounding_flow()

subroutine m_perturbation::s_perturb_surrounding_flow ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf)
Here is the caller graph for this function:

◆ s_solve_linear_system()

subroutine m_perturbation::s_solve_linear_system ( real(wp), intent(in) alpha,
real(wp), intent(in) beta,
real(wp), dimension(0:nbp - 1), intent(in) u_mean,
real(wp), intent(in) rho_mean,
real(wp), intent(in) p_mean,
real(wp), dimension(0:nbp - 1, 0:nbp - 1), intent(in) d,
real(wp), intent(in) gam,
real(wp), intent(in) pi_inf,
real(wp), intent(in) mach,
real(wp), dimension(mixlayer_nvar, 0:m, 0:n, 0:p), intent(inout) wave,
real(wp), intent(in) shift )

This subroutine solves linear system from linear stability analysis and generate instability waves for the given set of spatial wave numbers and phase shift.

Parameters
[in]betaspatial wavenumbers
[in]u_meanmean velocity profiles
[in]p_meanmean density and pressure
[in]ddifferential operator in y dir
Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_superposition_instability_wave()

subroutine m_perturbation::s_superposition_instability_wave ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf)

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

◆ bcxb

real(wp) m_perturbation::bcxb

◆ bcxe

real(wp) m_perturbation::bcxe

◆ bcyb

real(wp) m_perturbation::bcyb

◆ bcye

real(wp) m_perturbation::bcye

◆ bczb

real(wp) m_perturbation::bczb

◆ bcze

real(wp) m_perturbation::bcze

◆ mixlayer_bc_fd

integer m_perturbation::mixlayer_bc_fd

◆ mixlayer_nvar

integer m_perturbation::mixlayer_nvar

◆ mixlayer_var

integer, dimension(:), allocatable m_perturbation::mixlayer_var

◆ n_bc_skip

integer m_perturbation::n_bc_skip

◆ nbp

integer m_perturbation::nbp

◆ q_prim_temp

real(wp), dimension(:, :, :, :), allocatable m_perturbation::q_prim_temp