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... | |
Class to contain various variables for SPE solution.
SPE::SPE::SPE | ( | ) |
constructor with no arguments (set default values for everything)
SPE::SPE::~SPE | ( | ) |
destructor
PetscInt SPE::SPE::destroy | ( | ) |
free memory
void SPE::SPE::init | ( | ) |
initialize matrices and vectors
void SPE::SPE::print | ( | ) |
print all members of the class
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 |
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 |
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 |
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 |
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