Public Member Functions | Data Fields
SPE::SPE Class Reference

Class to contain various variables for SPE solution. More...

#include <class.hpp>

Public Member Functions

 SPE ()
 constructor with no arguments (set default values for everything) More...
 
void init ()
 initialize matrices and vectors More...
 
void print ()
 print all members of the class More...
 
 ~SPE ()
 destructor More...
 
PetscInt destroy ()
 free memory More...
 

Data Fields

Mat Dy
 derivative in y direction More...
 
Mat DyP
 derivative in y direction (for staggered grid, take P location and output derivatives at velocity location) More...
 
Mat Dy_dim
 derivative in y direction acting on q of size dim More...
 
Mat Dyy
 second derivative in y direction More...
 
Mat Dyy_dim
 second derivative in y direction acting on q of size dim More...
 
Mat DyyP
 second derivative in y direction (for staggered grid, take P location and output derivatives at velocity location) More...
 
Mat Dz
 derivative in z direction More...
 
Mat Dz_dim
 derivative in z direction acting on q of size dim More...
 
Mat Dzz
 second derivative in z direction More...
 
Mat Dzz_dim
 secondderivative in z direction acting on q of size dim More...
 
Mat Dt
 first derivative in t direction More...
 
Mat Dt_dim
 first derivative in t direction acting on q More...
 
Mat D
 coefficient matrix in front of dq/dx term More...
 
Mat Dp1
 coefficient matrix in front of dq/dx term, with next step values More...
 
Mat U
 base flow \(U\) velocity More...
 
Mat U_dim
 base flow \(U\) velocity of size dim More...
 
Mat U_i
 base flow of previous marching step More...
 
Mat Ux
 base flow \(\frac{\partial U}{\partial x}\) More...
 
Mat Ux_dim
 base flow \(\frac{\partial U}{\partial x}\) of size dim More...
 
Mat Uy
 base flow \(\frac{\partial U}{\partial y}\) More...
 
Mat Uy_dim
 base flow \(\frac{\partial U}{\partial y}\) of size dim More...
 
Mat V
 base flow \(V\) velocity More...
 
Mat V_dim
 base flow \(V\) velocity of size dim More...
 
Mat V_i
 base flow of previous marching step More...
 
Mat Vx
 base flow \(\frac{\partial V}{\partial x}\) More...
 
Mat Vx_dim
 base flow \(\frac{\partial V}{\partial x}\) of size dim More...
 
Mat Vy
 base flow \(\frac{\partial V}{\partial y}\) More...
 
Mat Vy_dim
 base flow \(\frac{\partial V}{\partial y}\) of size dim More...
 
Mat VDy
 matmatmult of \(V \mathcal{D}_y\) More...
 
Mat VDy_dim
 matmatmult of \(V \mathcal{D}_y\) of size dim More...
 
Mat UDy
 matmatmult of \(U \mathcal{D}_y\) More...
 
Mat UDy_dim
 matmatmult of \(U \mathcal{D}_y\) of size dim More...
 
Mat P
 base flow pressure term More...
 
Mat P_i
 base flow pressure term More...
 
Mat A
 Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms) More...
 
Mat A_OSS
 Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms) for OSS solver. More...
 
Mat Ap1
 Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms) evaluated at next step values. More...
 
Mat Asolve
 Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms) when solving Ax=b. More...
 
Mat B
 Matrix to Solve SPE equation in linear system (all dqdx terms) More...
 
Mat B_OSS
 Matrix to Solve SPE equation in linear system (all dqdx terms) for OSS solver. More...
 
Mat Bsolve
 Matrix to Solve SPE equation in linear system (all dqdx terms) when solving A qp1=Bq. More...
 
Mat tempMatny
 Temporary Matrix to help solve map of derivatives. More...
 
Mat P_SPE_from_OSS
 permutation matrix to premultiply to q from the OSS solver, to get the u,v,w,P primitive variables only (instead of the (u, alpha*v, v, alpha*w, w, P) q vector from the OSS solver). More...
 
Mat P_SPE_from_4nynz
 permutation matrix to premultiply to q (of size 4 ny nz) from the OSS solver, to get the u,v,w,P primitive variables for the defined nt grid, of size dim by 4nynz More...
 
Mat P_nynznt_to_dim_vel_only
 permutation matrix to premultiply to nonlinear pointwise terms of size ny by nz from the SPE solver, to get the q velocity componenets. (for example, if we have a vector of size ny by nz, this will create the q shape (4 ny nz) where the vector values are repeated three times where the velocity componenets are. This is useful for the nonlinear terms) More...
 
Mat P_u_from_q
 permutation matrix to premultiply to q from the SPE solver, to get the u primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver). More...
 
Mat P_U_from_Q
 permutation matrix to premultiply to Q from the base flow solver, to get the U primitive variables base flow velocity only (instead of the (U, V, P) Q vector from the base flow solver). More...
 
Mat P_v_from_q
 permutation matrix to premultiply to q from the SPE solver, to get the v primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver). More...
 
Mat P_V_from_Q
 permutation matrix to premultiply to Q from the base flow solver, to get the V primitive variables base flow velocity only (instead of the (U, V, P) Q vector from the base flow solver). More...
 
Mat P_P_from_Q
 permutation matrix to premultiply to Q from the base flow solver, to get the P primitive variables base flow velocity only (instead of the (U, V, P) Q vector from the base flow solver). More...
 
Mat P_del_freestream_cont_base_flow
 permutation matrix to premultiply to A from the base flow solver to remove freestream continuity equation (to obtain 3ny-1 equations for the 3ny-1 unknowns) (this is of size 3ny-1 by 3ny) More...
 
Mat P_w_from_q
 permutation matrix to premultiply to q from the SPE solver, to get the w primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver). More...
 
Mat P_p_from_q
 permutation matrix to premultiply to q from the SPE solver, to get the p primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver). More...
 
Mat P_avg_z_dim
 matrix to average in z-direction a vector of size dim More...
 
Mat P_avg_z_base
 matrix to average in z-direction a vector of size dim and output for base flow [U,V,P] More...
 
Mat af_dim
 \( a_f=u i \alpha e^{i \int \alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only More...
 
Mat bf_dim
 \( a_f=v e^{i \int alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only More...
 
Mat df_dim
 \( d_f=u e^{i \int alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only More...
 
Mat ef_dim
 \( e_f=w e^{i \int alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only More...
 
Mat bfDy_dim
 diagonal matrix of size dim containing bf*Dy More...
 
Mat efDz_dim
 diagonal matrix of size dim containing ef*Dz More...
 
Mat IP
 identity matrix, useful in setting up A,B (of size ny by ny-1 for pressure terms) More...
 
Mat I_4nznt
 Identity matrix, useful for setting up baseflow from ny to size dim using kron. More...
 
Mat I_dim
 Identity matrix of size dim. More...
 
Mat MatTrapzy
 trapezoidal operator for the integral in the y direction \((\mathrm{Trapzy})f(y,z,t) = \int f(y,z,t) dy\) More...
 
Mat MatTrapzz
 trapezoidal operator for the integral in the z direction \((\mathrm{Trapzz})f(z,t) = \int f(z,t) dz\) More...
 
Mat MatTrapzt
 trapezoidal operator for the integral in the t direction \((\mathrm{Trapzt})f(t) = \int f(t) dt\) More...
 
Mat MatTrapz
 trapezoidal operator for the integral in all directions \((\mathrm{Trapz})f(var,y,z,t) = \int f(var,y,z,t) d\Omega\) More...
 
Mat I
 identity matrix, useful in setting up A,B More...
 
Mat_4terms P_u_dim
 4 permutation matrices to premultiply to dim matrix to extract only the u equation rows More...
 
Mat_4terms P_v_dim
 permutation matrix to premultiply to dim matrix to extract only the v equation rows More...
 
Mat_4terms P_w_dim
 permutation matrix to premultiply to dim matrix to extract only the w equation rows More...
 
Mat_4terms P_cont_dim
 permutation matrix to premultiply to dim matrix to extract only the continuity equation rows More...
 
Vec b
 RHS vector for Ax=b SPE step. More...
 
Vec yVec
 y values in Petsc parallel vector More...
 
Vec yPVec
 yP values in Petsc parallel vector (pressure locations of size ny-1) More...
 
Vec zVec
 z values in Petsc parallel vector More...
 
Vec tVec
 z values in Petsc parallel vector More...
 
Vec Trapzy
 trapezoidal operator for the integral in the y direction \((\mathrm{Trapzy})f(y,z) = \int f(y,z) dy\) More...
 
Vec Trapzz
 trapezoidal operator for the integral in the z direction \((\mathrm{Trapzz})f(y,z) = \int f(y,z) dz\) More...
 
Vec Q_i
 state vector of base flow at previous marching step location [U,V,P] More...
 
Vec * Q_istep
 array of size baseflow_steps+1 to give the baseflow state at each sub baseflow step (only used if using steps>1) More...
 
Vec Q
 state vector of base flow at the current marching step location [U,V,P] (guess for nonlinear iteration) More...
 
Vec q
 \( q_i \) More...
 
Vec q_x
 \( \frac{\partial q_{i+1}}{\partial x} \) computed from backward difference More...
 
Vec q_z
 \( \frac{\partial q_{i+1}}{\partial z} \) More...
 
Vec q_af
 nonlinear af of size 4*ny*nz More...
 
Vec q_ybf
 nonlinear bf of size 4*ny*nz More...
 
Vec q_xdf
 nonlinear df of size 4*ny*nz More...
 
Vec q_zef
 nonlinear ef of size 4*ny*nz More...
 
Vec Fn
 nonlinear forcing terms (going to be averaged) More...
 
Vec F_bar
 nonlinear forcing terms (averaged) More...
 
Vec F_bar_base
 nonlinear forcing terms (averaged) More...
 
Vec F_bar_base_i
 nonlinear forcing terms (averaged) from the previous global step More...
 
Vec F_bar_base_interp
 nonlinear forcing terms (averaged) for the current boundary layer sub step (interpolated from F_bar_base and F_bar_base_i) More...
 
Vec qp1
 \( q_{i+1} \) More...
 
Vec qp1_oldNonLinear
 \( q_{i+1} \) from previous nonlinear iteration More...
 
Vec qp1_OSS
 \( q_{i+1} \) for OSS solver (larger vector) More...
 
Vec u
 \( u \) for nonlinear solver (size ny*nz*nt) More...
 
Vec v
 \( v \) for nonlinear solver (size ny*nz*nt) More...
 
Vec w
 \( w \) for nonlinear solver (size ny*nz*nt) More...
 
Vec uhatconj
 \( conj(\hat{u}) \) for nonlinear solver (size ny*nz*nt) More...
 
Vec vhatconj
 \( conj(\hat{v}) \) for nonlinear solver (size ny*nz*nt) More...
 
Vec whatconj
 \( conj(\hat{w}) \) for nonlinear solver (size ny*nz*nt) More...
 
Vec af
 \( a_f=u i \alpha e^{i \int alpha dx} \) nonlinear term More...
 
Vec bf
 \( a_f=v e^{i \int alpha dx} \) nonlinear term More...
 
Vec df
 \( d_f=u e^{i \int alpha dx} \) nonlinear term More...
 
Vec ef
 \( e_f=w e^{i \int alpha dx} \) nonlinear term More...
 
Vec tempVecnynz
 temporary vector of size ny*nz More...
 
Vec onesVecny
 Vector of ones. More...
 
Vec tempVecq
 temporary vector of size qp1 (4*ny*nz) More...
 
Vec tempVecny
 temporary vector More...
 
PetscReal initial_amplitude
 initial TS amplitude (of normalized eigenvector if using normalizing) (default 0.0025) More...
 
PetscReal nonlinear_tol
 nonlinear tolerance (exit nonlinear iterations once nonlinear error is below this tolerance) (default 1E-9) More...
 
PetscReal base_flow_tol
 nonlinear tolerance for base flow iterations (exit nonlinear iterations once nonlinear error is below this tolerance) (default 1E-12) More...
 
PetscReal nonlinear_error
 nonlinear error value \( |q^{N} - q^{N-1}| \) More...
 
PetscScalar Re
 Reynolds number (default 2000) More...
 
PetscScalar Re0
 Reynolds number at original x0 location (start of SPE) (default 2000) More...
 
PetscScalar U_inf
 U_infinity freestream velocity (defaults set to 1) More...
 
PetscScalar V_inf
 V_infinity freestream velocity (defaults set to 1) More...
 
PetscScalar P_inf
 P_infinity freestream pressure (defaults set to 1) More...
 
PetscScalar rho
 density of fluid (default 100) More...
 
PetscScalar Ialpha
 \( \int_{x_i}^{x_{i+1}} \alpha(x) dx \) spatial eigenvalue ( \(x\)-direction) (this is integrated using trapezoidal rule in update_Nonlinear More...
 
PetscScalar Ialpha_old
 \( \int_{x_{i-1}}^{x_{i}} \alpha(x) dx \) spatial eigenvalue ( \(x\)-direction) (this is integrated using trapezoidal rule in update_Nonlinear More...
 
PetscScalar alpha
 \( \alpha \) spatial eigenvalue ( \(x\)-direction) More...
 
PetscScalar alpha_old
 \( \alpha \) spatial eigenvalue ( \(x\)-direction) of previous step More...
 
PetscScalar delta_alpha
 \( \Delta \alpha \) spatial eigenvalue change in during update_Closure steps ( \(x\)-direction) More...
 
PetscScalar closure_value
 value of closure \( \int_\Omega q_x q^H d\Omega \) More...
 
PetscScalar target_alpha
 target \( \alpha \) spatial eigenvalue ( \(x\)-direction) that we want to converge to (1.72 times by literature values) More...
 
PetscScalar sum_divergence
 base flow divergence calculation from blausius profile (for checking purposes More...
 
PetscScalar m
 \(m\) (default 1) More...
 
PetscScalar omega
 \( \omega \) temporal eigenvalue (default 0.3) More...
 
PetscScalar beta
 \( \beta \) spanwise eigenvalue if using 2D (default 0.) More...
 
PetscScalar T
 \(T\) period of time dimension, corresponds to \(T = \frac{2 \pi}{\omega}\). More...
 
PetscScalar F
 \(F\) frequency related to \(omega\) More...
 
PetscScalar F_initial
 \(F\) frequency related to \(omega\) for the initial LST solution into SPE (used for eigenmode jump validation case) More...
 
PetscScalar hx
 distance to march in \(x\)-direction (default 2.5) More...
 
PetscScalar deltay
 stretching ratio in the y-direction (default 0.) More...
 
PetscScalar nu
 viscous \(\nu\) term in the equation (Blasius BL) More...
 
PetscScalar x
 \(x\)-location More...
 
PetscScalar num_boundary_layers_high
 number of boundary layers (approx) high to create the grid by default (default 6) More...
 
PetscScalar closure_tol
 closure tolerance (exit closure iterations once closure is below this tolerance) (default 1E-12) More...
 
PetscScalar Deltay
 \(\Delta y\) height of the domain (default 2.) More...
 
PetscScalar Deltat
 \(\Delta t\) width of the domain (default 1.) More...
 
PetscScalar Deltaz
 \(\Delta z\) width of the domain (default 1.) More...
 
PetscScalar * y
 y vector (each processor has whole vector) More...
 
PetscScalar * yP
 yP vector (each processor has whole vector) (pressure locations of size ny-1) More...
 
PetscScalar * xi
 xi uniform vector [0,1] (each processor has whole vector) More...
 
PetscScalar * z
 z vector (each processor has whole vector) More...
 
PetscScalar * t
 t vector (each processor has whole vector) More...
 
PetscScalar * ones
 vector of ny length of ones, used to initialize one petsc Vec More...
 
PetscScalar * eta
 Blasius Boundary Layer similarity variable \(\eta\) (size ny) More...
 
PetscScalar * deta
 Blasius Boundary Layer similarity variable steps \(d\eta\) (size ny-1) More...
 
PetscInt ny
 number of grid points in the y-direction (default 101) More...
 
PetscInt nz
 number of grid points in the z-direction (default 6) More...
 
PetscInt nt
 number of grid points in the t-direction (default 1, steady state) More...
 
PetscInt dim
 dimension of large matrices \( ny*nz \) in SPE solver More...
 
PetscInt dimOSS
 dimension of large matrices \( ny*nz \) in Orr-Sommerfeld solver More...
 
PetscInt dim_nynznt
 dimension of small vectors \( ny*nz \) in SPE solver (only one primitive variable u, for all locations ny,nz More...
 
PetscInt order
 order of accuracy (default 4) More...
 
PetscInt xsteps
 number of steps to take (default 15) More...
 
PetscInt type_marching
 type of marching [1=Implicit Euler (default), 2=Crank-Nicolson] More...
 
PetscInt closure_iter
 current closure iteration number (changed in update_Closure.cpp) More...
 
PetscInt nonlinear_iter
 current nonlinear iteration number (changed in update_Nonlinear.cpp) More...
 
PetscInt baseflow_steps
 total number of baseflow steps will be taken between each SPE step More...
 
PetscInt OSS_nev
 number of eigenvalues to solve near the target_alpha for the Ax_kBx OSS solver More...
 
PetscInt istep
 Global marching step for SPE. More...
 
PetscInt multiply_nypts_for_bblf
 blasius boundary layer flow multiply ny by this number to integrate a uniform grid even further (default 100) More...
 
PetscInt type_base_flow
 1=Poisuille channel flow, 2=Blasius Flat-Plate More...
 
PetscBool reduce_wall_order =PETSC_TRUE
 do we want to reduce the order of the derivative at the wall? (only in y-direction because z is periodic) More...
 
PetscBool flag_read_q_filename =PETSC_FALSE
 flag to state if reading file in from python scripts More...
 
PetscBool flag_read_matlab_filename =PETSC_FALSE
 flag to state if reading file in from matlab scripts More...
 
PetscBool flag_set_D =PETSC_FALSE
 flag to set derivative operators More...
 
PetscBool flag_uniform =PETSC_TRUE
 uniform mesh? More...
 
PetscBool flag_OSS_gov_Schmid =PETSC_FALSE
 Use Schmid Orr-Sommerfield governing equations and inflated matrix as found in equation 7.110 of his textbook (default false) More...
 
PetscBool flag_update_alpha =PETSC_TRUE
 update alpha in matrices every \(x\)-step (default true) More...
 
PetscBool flag_noalpha =PETSC_FALSE
 if not using alpha in the governing SPE equations More...
 
PetscBool flag_one_grid_pt_less_z =PETSC_TRUE
 one grid point less in the z-direction (from the stated Deltaz) (Default true) More...
 
PetscBool flag_normalize =PETSC_TRUE
 normalize by maximum fluctuating quantitiy (during initial scaling) (default true) More...
 
PetscBool flag_set_I =PETSC_FALSE
 flag to set identity matrix More...
 
PetscBool flag_base_flow =PETSC_FALSE
 flag to set base flow U, Uy, etc. More...
 
PetscBool flag_blasius_first_step =PETSC_FALSE
 flag to indicate if the first step isconsidered from the blasius solution More...
 
PetscBool flag_init =PETSC_FALSE
 flag to initialize all matrices and vectors on MPI More...
 
PetscBool flag_debug_output =PETSC_FALSE
 flag to output debug type files More...
 
PetscBool flag_trapzy =PETSC_FALSE
 flag if set trapezoidal rule operator for y direction integral More...
 
PetscBool flag_trapzz =PETSC_FALSE
 flag if set trapezoidal rule operator for z direction integral More...
 
PetscBool flag_MatTrapz =PETSC_FALSE
 flag if set trapezoidal rule operators for y,z,t directions More...
 
PetscBool flag_marching =PETSC_TRUE
 flag if we are marching the SPE (updates \(x\)) (default true) More...
 
PetscBool flag_p_term =PETSC_FALSE
 flag to neglect pressure term (to allow for smaller \(x\) step size) (default false) More...
 
PetscBool flag_LST_marching =PETSC_FALSE
 flag to calculate the local stability theory at each \(x\) location (default false) More...
 
PetscBool flag_F_initial =PETSC_FALSE
 flag indicating if an initial F is used instead of the given F (default false) More...
 
PetscBool flag_Created_grid =PETSC_FALSE
 internal flag used for indicating if a grid was generated for LST the first time it ran More...
 
PetscBool flag_parallel_blasius =PETSC_FALSE
 flag to indicte if wanting parallel blasius base flow (default false) More...
 
PetscBool flag_parallel_baseflow =PETSC_FALSE
 flag to indicte if wanting parallel baseflow (default false) More...
 
PetscBool flag_explicit_x =PETSC_FALSE
 set \(x\) to be at a certain location (used for OSS_blasius validation study for alternate LST at downstream locations) (default false) More...
 
PetscBool flag_nonlinear =PETSC_FALSE
 flag to set if wanting to add nonlinear terms (default false) More...
 
PetscBool flag_staggered_base_flow =PETSC_FALSE
 flag to set if wanting to solve semi-staggered base flow (pressure is size ny-1 located between velocity points) (default false) More...
 
PetscBool flag_2D =PETSC_FALSE
 flag indicating if 2D \(\beta=0\) calculation (default false) More...
 
PetscBool flag_all_real =PETSC_FALSE
 flag to state if everything should be all real valued or not More...
 
PetscBool flag_LST =PETSC_FALSE
 flag to consider only the local stability theory (neglect non-parallel flow terms in the governing equation) (default false) More...
 
PetscErrorCode ierr
 flag to catch error from Petsc functions More...
 
std::string read_q_filename
 base filename if reading output from the OSS python scripts More...
 
std::string read_matlab_filename
 base filename if reading output from the matlab scripts More...
 
std::string output_folder
 output folder to More...
 

Detailed Description

Class to contain various variables for SPE solution.

Constructor & Destructor Documentation

SPE::SPE::SPE ( )

constructor with no arguments (set default values for everything)

SPE::SPE::~SPE ( )

destructor

Member Function Documentation

PetscInt SPE::SPE::destroy ( )

free memory

void SPE::SPE::init ( )

initialize matrices and vectors

void SPE::SPE::print ( )

print all members of the class

Field Documentation

Mat SPE::SPE::A

Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms)

Mat SPE::SPE::A_OSS

Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms) for OSS solver.

Vec SPE::SPE::af

\( a_f=u i \alpha e^{i \int alpha dx} \) nonlinear term

Mat SPE::SPE::af_dim

\( a_f=u i \alpha e^{i \int \alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only

PetscScalar SPE::SPE::alpha

\( \alpha \) spatial eigenvalue ( \(x\)-direction)

PetscScalar SPE::SPE::alpha_old

\( \alpha \) spatial eigenvalue ( \(x\)-direction) of previous step

Mat SPE::SPE::Ap1

Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms) evaluated at next step values.

Mat SPE::SPE::Asolve

Matrix to Solve SPE equation in linear system (all q,dqdy,dqdz terms) when solving Ax=b.

Mat SPE::SPE::B

Matrix to Solve SPE equation in linear system (all dqdx terms)

Vec SPE::SPE::b

RHS vector for Ax=b SPE step.

Mat SPE::SPE::B_OSS

Matrix to Solve SPE equation in linear system (all dqdx terms) for OSS solver.

PetscReal SPE::SPE::base_flow_tol

nonlinear tolerance for base flow iterations (exit nonlinear iterations once nonlinear error is below this tolerance) (default 1E-12)

PetscInt SPE::SPE::baseflow_steps

total number of baseflow steps will be taken between each SPE step

PetscScalar SPE::SPE::beta

\( \beta \) spanwise eigenvalue if using 2D (default 0.)

Vec SPE::SPE::bf

\( a_f=v e^{i \int alpha dx} \) nonlinear term

Mat SPE::SPE::bf_dim

\( a_f=v e^{i \int alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only

Mat SPE::SPE::bfDy_dim

diagonal matrix of size dim containing bf*Dy

Mat SPE::SPE::Bsolve

Matrix to Solve SPE equation in linear system (all dqdx terms) when solving A qp1=Bq.

PetscInt SPE::SPE::closure_iter

current closure iteration number (changed in update_Closure.cpp)

PetscScalar SPE::SPE::closure_tol

closure tolerance (exit closure iterations once closure is below this tolerance) (default 1E-12)

PetscScalar SPE::SPE::closure_value

value of closure \( \int_\Omega q_x q^H d\Omega \)

Mat SPE::SPE::D

coefficient matrix in front of dq/dx term

PetscScalar SPE::SPE::delta_alpha

\( \Delta \alpha \) spatial eigenvalue change in during update_Closure steps ( \(x\)-direction)

PetscScalar SPE::SPE::Deltat

\(\Delta t\) width of the domain (default 1.)

PetscScalar SPE::SPE::deltay

stretching ratio in the y-direction (default 0.)

PetscScalar SPE::SPE::Deltay

\(\Delta y\) height of the domain (default 2.)

PetscScalar SPE::SPE::Deltaz

\(\Delta z\) width of the domain (default 1.)

PetscScalar * SPE::SPE::deta

Blasius Boundary Layer similarity variable steps \(d\eta\) (size ny-1)

Vec SPE::SPE::df

\( d_f=u e^{i \int alpha dx} \) nonlinear term

Mat SPE::SPE::df_dim

\( d_f=u e^{i \int alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only

PetscInt SPE::SPE::dim

dimension of large matrices \( ny*nz \) in SPE solver

PetscInt SPE::SPE::dim_nynznt

dimension of small vectors \( ny*nz \) in SPE solver (only one primitive variable u, for all locations ny,nz

PetscInt SPE::SPE::dimOSS

dimension of large matrices \( ny*nz \) in Orr-Sommerfeld solver

Mat SPE::SPE::Dp1

coefficient matrix in front of dq/dx term, with next step values

Mat SPE::SPE::Dt

first derivative in t direction

Mat SPE::SPE::Dt_dim

first derivative in t direction acting on q

Mat SPE::SPE::Dy

derivative in y direction

Mat SPE::SPE::Dy_dim

derivative in y direction acting on q of size dim

Mat SPE::SPE::DyP

derivative in y direction (for staggered grid, take P location and output derivatives at velocity location)

Mat SPE::SPE::Dyy

second derivative in y direction

Mat SPE::SPE::Dyy_dim

second derivative in y direction acting on q of size dim

Mat SPE::SPE::DyyP

second derivative in y direction (for staggered grid, take P location and output derivatives at velocity location)

Mat SPE::SPE::Dz

derivative in z direction

Mat SPE::SPE::Dz_dim

derivative in z direction acting on q of size dim

Mat SPE::SPE::Dzz

second derivative in z direction

Mat SPE::SPE::Dzz_dim

secondderivative in z direction acting on q of size dim

Vec SPE::SPE::ef

\( e_f=w e^{i \int alpha dx} \) nonlinear term

Mat SPE::SPE::ef_dim

\( e_f=w e^{i \int alpha dx} \) nonlinear terms along diagonal of matrix for nonlinear operations (broadcasted using P_nynznt_to_dim_vel_only

Mat SPE::SPE::efDz_dim

diagonal matrix of size dim containing ef*Dz

PetscScalar * SPE::SPE::eta

Blasius Boundary Layer similarity variable \(\eta\) (size ny)

PetscScalar SPE::SPE::F

\(F\) frequency related to \(omega\)

Vec SPE::SPE::F_bar

nonlinear forcing terms (averaged)

Vec SPE::SPE::F_bar_base

nonlinear forcing terms (averaged)

Vec SPE::SPE::F_bar_base_i

nonlinear forcing terms (averaged) from the previous global step

Vec SPE::SPE::F_bar_base_interp

nonlinear forcing terms (averaged) for the current boundary layer sub step (interpolated from F_bar_base and F_bar_base_i)

PetscScalar SPE::SPE::F_initial

\(F\) frequency related to \(omega\) for the initial LST solution into SPE (used for eigenmode jump validation case)

PetscBool SPE::SPE::flag_2D =PETSC_FALSE

flag indicating if 2D \(\beta=0\) calculation (default false)

PetscBool SPE::SPE::flag_all_real =PETSC_FALSE

flag to state if everything should be all real valued or not

PetscBool SPE::SPE::flag_base_flow =PETSC_FALSE

flag to set base flow U, Uy, etc.

PetscBool SPE::SPE::flag_blasius_first_step =PETSC_FALSE

flag to indicate if the first step isconsidered from the blasius solution

PetscBool SPE::SPE::flag_Created_grid =PETSC_FALSE

internal flag used for indicating if a grid was generated for LST the first time it ran

PetscBool SPE::SPE::flag_debug_output =PETSC_FALSE

flag to output debug type files

PetscBool SPE::SPE::flag_explicit_x =PETSC_FALSE

set \(x\) to be at a certain location (used for OSS_blasius validation study for alternate LST at downstream locations) (default false)

PetscBool SPE::SPE::flag_F_initial =PETSC_FALSE

flag indicating if an initial F is used instead of the given F (default false)

PetscBool SPE::SPE::flag_init =PETSC_FALSE

flag to initialize all matrices and vectors on MPI

PetscBool SPE::SPE::flag_LST =PETSC_FALSE

flag to consider only the local stability theory (neglect non-parallel flow terms in the governing equation) (default false)

PetscBool SPE::SPE::flag_LST_marching =PETSC_FALSE

flag to calculate the local stability theory at each \(x\) location (default false)

PetscBool SPE::SPE::flag_marching =PETSC_TRUE

flag if we are marching the SPE (updates \(x\)) (default true)

PetscBool SPE::SPE::flag_MatTrapz =PETSC_FALSE

flag if set trapezoidal rule operators for y,z,t directions

PetscBool SPE::SPE::flag_noalpha =PETSC_FALSE

if not using alpha in the governing SPE equations

PetscBool SPE::SPE::flag_nonlinear =PETSC_FALSE

flag to set if wanting to add nonlinear terms (default false)

PetscBool SPE::SPE::flag_normalize =PETSC_TRUE

normalize by maximum fluctuating quantitiy (during initial scaling) (default true)

PetscBool SPE::SPE::flag_one_grid_pt_less_z =PETSC_TRUE

one grid point less in the z-direction (from the stated Deltaz) (Default true)

PetscBool SPE::SPE::flag_OSS_gov_Schmid =PETSC_FALSE

Use Schmid Orr-Sommerfield governing equations and inflated matrix as found in equation 7.110 of his textbook (default false)

PetscBool SPE::SPE::flag_p_term =PETSC_FALSE

flag to neglect pressure term (to allow for smaller \(x\) step size) (default false)

PetscBool SPE::SPE::flag_parallel_baseflow =PETSC_FALSE

flag to indicte if wanting parallel baseflow (default false)

PetscBool SPE::SPE::flag_parallel_blasius =PETSC_FALSE

flag to indicte if wanting parallel blasius base flow (default false)

PetscBool SPE::SPE::flag_read_matlab_filename =PETSC_FALSE

flag to state if reading file in from matlab scripts

PetscBool SPE::SPE::flag_read_q_filename =PETSC_FALSE

flag to state if reading file in from python scripts

PetscBool SPE::SPE::flag_set_D =PETSC_FALSE

flag to set derivative operators

PetscBool SPE::SPE::flag_set_I =PETSC_FALSE

flag to set identity matrix

PetscBool SPE::SPE::flag_staggered_base_flow =PETSC_FALSE

flag to set if wanting to solve semi-staggered base flow (pressure is size ny-1 located between velocity points) (default false)

PetscBool SPE::SPE::flag_trapzy =PETSC_FALSE

flag if set trapezoidal rule operator for y direction integral

PetscBool SPE::SPE::flag_trapzz =PETSC_FALSE

flag if set trapezoidal rule operator for z direction integral

PetscBool SPE::SPE::flag_uniform =PETSC_TRUE

uniform mesh?

PetscBool SPE::SPE::flag_update_alpha =PETSC_TRUE

update alpha in matrices every \(x\)-step (default true)

Vec SPE::SPE::Fn

nonlinear forcing terms (going to be averaged)

PetscScalar SPE::SPE::hx

distance to march in \(x\)-direction (default 2.5)

Mat SPE::SPE::I

identity matrix, useful in setting up A,B

Mat SPE::SPE::I_4nznt

Identity matrix, useful for setting up baseflow from ny to size dim using kron.

Mat SPE::SPE::I_dim

Identity matrix of size dim.

PetscScalar SPE::SPE::Ialpha

\( \int_{x_i}^{x_{i+1}} \alpha(x) dx \) spatial eigenvalue ( \(x\)-direction) (this is integrated using trapezoidal rule in update_Nonlinear

PetscScalar SPE::SPE::Ialpha_old

\( \int_{x_{i-1}}^{x_{i}} \alpha(x) dx \) spatial eigenvalue ( \(x\)-direction) (this is integrated using trapezoidal rule in update_Nonlinear

PetscErrorCode SPE::SPE::ierr

flag to catch error from Petsc functions

PetscReal SPE::SPE::initial_amplitude

initial TS amplitude (of normalized eigenvector if using normalizing) (default 0.0025)

Mat SPE::SPE::IP

identity matrix, useful in setting up A,B (of size ny by ny-1 for pressure terms)

PetscInt SPE::SPE::istep

Global marching step for SPE.

PetscScalar SPE::SPE::m

\(m\) (default 1)

Mat SPE::SPE::MatTrapz

trapezoidal operator for the integral in all directions \((\mathrm{Trapz})f(var,y,z,t) = \int f(var,y,z,t) d\Omega\)

Mat SPE::SPE::MatTrapzt

trapezoidal operator for the integral in the t direction \((\mathrm{Trapzt})f(t) = \int f(t) dt\)

Mat SPE::SPE::MatTrapzy

trapezoidal operator for the integral in the y direction \((\mathrm{Trapzy})f(y,z,t) = \int f(y,z,t) dy\)

Mat SPE::SPE::MatTrapzz

trapezoidal operator for the integral in the z direction \((\mathrm{Trapzz})f(z,t) = \int f(z,t) dz\)

PetscInt SPE::SPE::multiply_nypts_for_bblf

blasius boundary layer flow multiply ny by this number to integrate a uniform grid even further (default 100)

PetscReal SPE::SPE::nonlinear_error

nonlinear error value \( |q^{N} - q^{N-1}| \)

PetscInt SPE::SPE::nonlinear_iter

current nonlinear iteration number (changed in update_Nonlinear.cpp)

PetscReal SPE::SPE::nonlinear_tol

nonlinear tolerance (exit nonlinear iterations once nonlinear error is below this tolerance) (default 1E-9)

PetscInt SPE::SPE::nt

number of grid points in the t-direction (default 1, steady state)

PetscScalar SPE::SPE::nu

viscous \(\nu\) term in the equation (Blasius BL)

PetscScalar SPE::SPE::num_boundary_layers_high

number of boundary layers (approx) high to create the grid by default (default 6)

PetscInt SPE::SPE::ny

number of grid points in the y-direction (default 101)

PetscInt SPE::SPE::nz

number of grid points in the z-direction (default 6)

PetscScalar SPE::SPE::omega

\( \omega \) temporal eigenvalue (default 0.3)

PetscScalar * SPE::SPE::ones

vector of ny length of ones, used to initialize one petsc Vec

Vec SPE::SPE::onesVecny

Vector of ones.

PetscInt SPE::SPE::order

order of accuracy (default 4)

PetscInt SPE::SPE::OSS_nev

number of eigenvalues to solve near the target_alpha for the Ax_kBx OSS solver

std::string SPE::SPE::output_folder

output folder to

Mat SPE::SPE::P

base flow pressure term

Mat SPE::SPE::P_avg_z_base

matrix to average in z-direction a vector of size dim and output for base flow [U,V,P]

Mat SPE::SPE::P_avg_z_dim

matrix to average in z-direction a vector of size dim

Mat_4terms SPE::SPE::P_cont_dim

permutation matrix to premultiply to dim matrix to extract only the continuity equation rows

Mat SPE::SPE::P_del_freestream_cont_base_flow

permutation matrix to premultiply to A from the base flow solver to remove freestream continuity equation (to obtain 3ny-1 equations for the 3ny-1 unknowns) (this is of size 3ny-1 by 3ny)

Mat SPE::SPE::P_i

base flow pressure term

PetscScalar SPE::SPE::P_inf

P_infinity freestream pressure (defaults set to 1)

Mat SPE::SPE::P_nynznt_to_dim_vel_only

permutation matrix to premultiply to nonlinear pointwise terms of size ny by nz from the SPE solver, to get the q velocity componenets. (for example, if we have a vector of size ny by nz, this will create the q shape (4 ny nz) where the vector values are repeated three times where the velocity componenets are. This is useful for the nonlinear terms)

Mat SPE::SPE::P_P_from_Q

permutation matrix to premultiply to Q from the base flow solver, to get the P primitive variables base flow velocity only (instead of the (U, V, P) Q vector from the base flow solver).

Mat SPE::SPE::P_p_from_q

permutation matrix to premultiply to q from the SPE solver, to get the p primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver).

Mat SPE::SPE::P_SPE_from_4nynz

permutation matrix to premultiply to q (of size 4 ny nz) from the OSS solver, to get the u,v,w,P primitive variables for the defined nt grid, of size dim by 4nynz

Mat SPE::SPE::P_SPE_from_OSS

permutation matrix to premultiply to q from the OSS solver, to get the u,v,w,P primitive variables only (instead of the (u, alpha*v, v, alpha*w, w, P) q vector from the OSS solver).

Mat_4terms SPE::SPE::P_u_dim

4 permutation matrices to premultiply to dim matrix to extract only the u equation rows

Mat SPE::SPE::P_u_from_q

permutation matrix to premultiply to q from the SPE solver, to get the u primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver).

Mat SPE::SPE::P_U_from_Q

permutation matrix to premultiply to Q from the base flow solver, to get the U primitive variables base flow velocity only (instead of the (U, V, P) Q vector from the base flow solver).

Mat_4terms SPE::SPE::P_v_dim

permutation matrix to premultiply to dim matrix to extract only the v equation rows

Mat SPE::SPE::P_v_from_q

permutation matrix to premultiply to q from the SPE solver, to get the v primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver).

Mat SPE::SPE::P_V_from_Q

permutation matrix to premultiply to Q from the base flow solver, to get the V primitive variables base flow velocity only (instead of the (U, V, P) Q vector from the base flow solver).

Mat_4terms SPE::SPE::P_w_dim

permutation matrix to premultiply to dim matrix to extract only the w equation rows

Mat SPE::SPE::P_w_from_q

permutation matrix to premultiply to q from the SPE solver, to get the w primitive variables only (instead of the (u, v, w, P) q vector from the SPE solver).

Vec SPE::SPE::Q

state vector of base flow at the current marching step location [U,V,P] (guess for nonlinear iteration)

Vec SPE::SPE::q

\( q_i \)

Vec SPE::SPE::q_af

nonlinear af of size 4*ny*nz

Vec SPE::SPE::Q_i

state vector of base flow at previous marching step location [U,V,P]

Vec * SPE::SPE::Q_istep

array of size baseflow_steps+1 to give the baseflow state at each sub baseflow step (only used if using steps>1)

Vec SPE::SPE::q_x

\( \frac{\partial q_{i+1}}{\partial x} \) computed from backward difference

Vec SPE::SPE::q_xdf

nonlinear df of size 4*ny*nz

Vec SPE::SPE::q_ybf

nonlinear bf of size 4*ny*nz

Vec SPE::SPE::q_z

\( \frac{\partial q_{i+1}}{\partial z} \)

Vec SPE::SPE::q_zef

nonlinear ef of size 4*ny*nz

Vec SPE::SPE::qp1

\( q_{i+1} \)

Vec SPE::SPE::qp1_oldNonLinear

\( q_{i+1} \) from previous nonlinear iteration

Vec SPE::SPE::qp1_OSS

\( q_{i+1} \) for OSS solver (larger vector)

PetscScalar SPE::SPE::Re

Reynolds number (default 2000)

PetscScalar SPE::SPE::Re0

Reynolds number at original x0 location (start of SPE) (default 2000)

std::string SPE::SPE::read_matlab_filename

base filename if reading output from the matlab scripts

std::string SPE::SPE::read_q_filename

base filename if reading output from the OSS python scripts

PetscBool SPE::SPE::reduce_wall_order =PETSC_TRUE

do we want to reduce the order of the derivative at the wall? (only in y-direction because z is periodic)

PetscScalar SPE::SPE::rho

density of fluid (default 100)

PetscScalar SPE::SPE::sum_divergence

base flow divergence calculation from blausius profile (for checking purposes

PetscScalar SPE::SPE::T

\(T\) period of time dimension, corresponds to \(T = \frac{2 \pi}{\omega}\).

PetscScalar * SPE::SPE::t

t vector (each processor has whole vector)

PetscScalar SPE::SPE::target_alpha

target \( \alpha \) spatial eigenvalue ( \(x\)-direction) that we want to converge to (1.72 times by literature values)

Mat SPE::SPE::tempMatny

Temporary Matrix to help solve map of derivatives.

Vec SPE::SPE::tempVecny

temporary vector

Vec SPE::SPE::tempVecnynz

temporary vector of size ny*nz

Vec SPE::SPE::tempVecq

temporary vector of size qp1 (4*ny*nz)

Vec SPE::SPE::Trapzy

trapezoidal operator for the integral in the y direction \((\mathrm{Trapzy})f(y,z) = \int f(y,z) dy\)

Vec SPE::SPE::Trapzz

trapezoidal operator for the integral in the z direction \((\mathrm{Trapzz})f(y,z) = \int f(y,z) dz\)

Vec SPE::SPE::tVec

z values in Petsc parallel vector

PetscInt SPE::SPE::type_base_flow

1=Poisuille channel flow, 2=Blasius Flat-Plate

PetscInt SPE::SPE::type_marching

type of marching [1=Implicit Euler (default), 2=Crank-Nicolson]

Mat SPE::SPE::U

base flow \(U\) velocity

Vec SPE::SPE::u

\( u \) for nonlinear solver (size ny*nz*nt)

Mat SPE::SPE::U_dim

base flow \(U\) velocity of size dim

Mat SPE::SPE::U_i

base flow of previous marching step

PetscScalar SPE::SPE::U_inf

U_infinity freestream velocity (defaults set to 1)

Mat SPE::SPE::UDy

matmatmult of \(U \mathcal{D}_y\)

Mat SPE::SPE::UDy_dim

matmatmult of \(U \mathcal{D}_y\) of size dim

Vec SPE::SPE::uhatconj

\( conj(\hat{u}) \) for nonlinear solver (size ny*nz*nt)

Mat SPE::SPE::Ux

base flow \(\frac{\partial U}{\partial x}\)

Mat SPE::SPE::Ux_dim

base flow \(\frac{\partial U}{\partial x}\) of size dim

Mat SPE::SPE::Uy

base flow \(\frac{\partial U}{\partial y}\)

Mat SPE::SPE::Uy_dim

base flow \(\frac{\partial U}{\partial y}\) of size dim

Mat SPE::SPE::V

base flow \(V\) velocity

Vec SPE::SPE::v

\( v \) for nonlinear solver (size ny*nz*nt)

Mat SPE::SPE::V_dim

base flow \(V\) velocity of size dim

Mat SPE::SPE::V_i

base flow of previous marching step

PetscScalar SPE::SPE::V_inf

V_infinity freestream velocity (defaults set to 1)

Mat SPE::SPE::VDy

matmatmult of \(V \mathcal{D}_y\)

Mat SPE::SPE::VDy_dim

matmatmult of \(V \mathcal{D}_y\) of size dim

Vec SPE::SPE::vhatconj

\( conj(\hat{v}) \) for nonlinear solver (size ny*nz*nt)

Mat SPE::SPE::Vx

base flow \(\frac{\partial V}{\partial x}\)

Mat SPE::SPE::Vx_dim

base flow \(\frac{\partial V}{\partial x}\) of size dim

Mat SPE::SPE::Vy

base flow \(\frac{\partial V}{\partial y}\)

Mat SPE::SPE::Vy_dim

base flow \(\frac{\partial V}{\partial y}\) of size dim

Vec SPE::SPE::w

\( w \) for nonlinear solver (size ny*nz*nt)

Vec SPE::SPE::whatconj

\( conj(\hat{w}) \) for nonlinear solver (size ny*nz*nt)

PetscScalar SPE::SPE::x

\(x\)-location

PetscScalar * SPE::SPE::xi

xi uniform vector [0,1] (each processor has whole vector)

PetscInt SPE::SPE::xsteps

number of steps to take (default 15)

PetscScalar* SPE::SPE::y

y vector (each processor has whole vector)

PetscScalar * SPE::SPE::yP

yP vector (each processor has whole vector) (pressure locations of size ny-1)

Vec SPE::SPE::yPVec

yP values in Petsc parallel vector (pressure locations of size ny-1)

Vec SPE::SPE::yVec

y values in Petsc parallel vector

PetscScalar * SPE::SPE::z

z vector (each processor has whole vector)

Vec SPE::SPE::zVec

z values in Petsc parallel vector


The documentation for this class was generated from the following files: