Implementation of a parametrized full order steady NS problem and preparation of the the reduced matrices for the online solve. More...
#include <steadyNS.H>
Public Member Functions | |
steadyNS () | |
Null constructor. | |
steadyNS (int argc, char *argv[]) | |
Construct with argc and argv. | |
~steadyNS () | |
void | truthSolve (List< scalar > mu_now) |
Perform a truthsolve. | |
void | solvesupremizer (word type="snapshots") |
solve the supremizer either with the use of the pressure snaphots or the pressure modes | |
void | liftSolve () |
Perform a lift solve. | |
void | projectPPE (fileName folder, label NUmodes, label NPmodes, label NSUPmodes=0) |
Project using the Poisson Equation for pressure. | |
void | projectSUP (fileName folder, label NUmodes, label NPmodes, label NSUPmodes) |
Project using a supremizer approach. | |
void | discretizeThenProject (fileName folder, label NUmodes, label NPmodes, label NSUPmodes=0) |
Project using the Discretize-then-project approach. | |
Eigen::MatrixXd | diffusive_term (label NUmodes, label NPmodes, label NSUPmodes) |
Diffusive Term. | |
Eigen::MatrixXd | diffusive_term_sym (label NUmodes, label NPmodes, label NSUPmodes) |
Symetric diffusive Term. | |
Eigen::MatrixXd | pressure_gradient_term (label NUmodes, label NPmodes, label NSUPmodes) |
Gradient of pressure. | |
List< Eigen::MatrixXd > | convective_term (label NUmodes, label NPmodes, label NSUPmodes) |
Convective Term. | |
Eigen::MatrixXd | mass_term (label NUmodes, label NPmodes, label NSUPmodes) |
Mass Term. | |
Eigen::MatrixXd | divergence_term (label NUmodes, label NPmodes, label NSUPmodes) |
Divergence Term (supremizer approach) | |
List< Eigen::MatrixXd > | div_momentum (label NUmodes, label NPmodes) |
Divergence of convective term (PPE approach) | |
Eigen::Tensor< double, 3 > | divMomentum (label NUmodes, label NPmodes) |
Divergence of convective term (PPE approach) | |
Eigen::MatrixXd | laplacian_pressure (label NPmodes) |
Laplacian of pressure term (PPE approach) | |
Eigen::MatrixXd | pressure_BC1 (label NPmodes, label NUmodes) |
Term N° 1 given by the additional boundary condition using a PPE approach. | |
List< Eigen::MatrixXd > | pressure_BC2 (label NPmodes, label NUmodes) |
Term N° 2 given by the additional boundary condition using a PPE approach. | |
Eigen::Tensor< double, 3 > | pressureBC2 (label NPmodes, label NUmodes) |
Term N° 2 given by the additional boundary condition using a PPE approach. | |
Eigen::MatrixXd | pressure_BC3 (label NPmodes, label NUmodes) |
Term N° 3 given by the additional boundary condition using a PPE approach. | |
Eigen::MatrixXd | pressure_BC4 (label NPmodes, label NUmodes) |
Term N° 4 given by the additional boundary condition using a PPE approach for time-dependent BCs. | |
List< Eigen::MatrixXd > | bcVelocityVec (label NUmodes, label NSUPmodes) |
Boundary integral modes on boundary used by the penaly method. | |
List< Eigen::MatrixXd > | bcVelocityMat (label NUmodes, label NSUPmodes) |
Boundary integral modes on boundary used by the penaly method. | |
Eigen::MatrixXd | diffusive_term_flux_method (label NUmodes, label NPmodes, label NSUPmodes) |
Diffusive Flux Method. | |
List< Eigen::MatrixXd > | boundary_vector_diffusion (label NUmodes, label NPmodes, label NSUPmodes) |
Boundary vector diffusion term. | |
List< Eigen::MatrixXd > | boundary_vector_convection (label NUmodes, label NPmodes, label NSUPmodes) |
Boundary vector convection term. | |
Eigen::Tensor< double, 3 > | convective_term_flux_tens (label NUmodes, label NPmodes, label NSUPmodes) |
Convective Term. | |
List< Eigen::MatrixXd > | pressure_gradient_term_linsys_div (label NPmodes) |
Laplacian of pressure Linear System - Divergence term. | |
List< Eigen::MatrixXd > | pressure_gradient_term_linsys_diff (label NPmodes) |
Laplacian of pressure Linear System - Diffusion term. | |
List< Eigen::MatrixXd > | pressure_gradient_term_linsys_conv (label NPmodes) |
Laplacian of pressure Linear System - Convection term. | |
Eigen::MatrixXd | diffusive_term_consistent (label NUmodes, label NPmodes, label NSUPmodes) |
Diffusion Term (consistent flux method) | |
List< Eigen::MatrixXd > | boundary_vector_diffusion_consistent (label NUmodes, label NSUPmodes) |
Boundary vector diffusion term (consistent flux method) | |
List< Eigen::MatrixXd > | boundary_vector_convection_consistent (label NUmodes, label NSUPmodes) |
Boundary vector convection term - Consistent Flux Method. | |
Eigen::MatrixXd | mass_matrix_newtime_consistent (label NUmodes, label NPmodes, label NSUPmodes) |
Mass Matrix new time step (consistent flux method) | |
Eigen::MatrixXd | mass_matrix_oldtime_consistent (label NUmodes, label NPmodes, label NSUPmodes) |
Mass Matrix old time step (consistent flux method) | |
Eigen::MatrixXd | pressure_gradient_term_consistent (label NUmodes, label NPmodes, label NSUPmodes) |
Pressure Gradient Term (consistent flux method) | |
Eigen::Tensor< double, 3 > | convective_term_consistent_tens (label NUmodes, label NPmodes, label NSUPmodes) |
Convective Term (consistent flux method) | |
void | change_viscosity (double mu) |
Function to change the viscosity. | |
void | forcesMatrices (label NUmodes, label NPmodes, label NSUPmodes) |
Compute lift and drag matrices. | |
void | forcesMatrices (label nModes) |
Compute lift and drag matrices offline matrices for the case of same number of velocity and pressure modes. | |
void | reconstructLiftAndDrag (const Eigen::MatrixXd &velCoeffs, const Eigen::MatrixXd &pressureCoeffs, fileName folder) |
Method to reconstruct the forces using velocity and pressure coefficients. | |
Eigen::Tensor< double, 3 > | convective_term_tens (label NUmodes, label NPmodes, label NSUPmodes) |
Export convective term as a tensor. | |
void | restart () |
set U and P back to the values into the 0 folder | |
Public Member Functions inherited from reductionProblem | |
reductionProblem () | |
Construct Null. | |
~reductionProblem () | |
void | setParameters () |
Set Parameters Problems. | |
void | genRandPar () |
Generate Random Numbers. | |
void | genRandPar (label tsize) |
Generate Random Numbers given the dimension of the training set. | |
void | genEquiPar () |
Generate Equidistributed Numbers. | |
void | truthSolve () |
Perform a TruthSolve. | |
void | assignBC (volVectorField &s, label BC_ind, Vector< double > &value) |
Assign Boundary Condition to a volVectorField. | |
void | assignBC (volScalarField &s, label BC_ind, double &value) |
Assign Boundary Condition to a volScalarField. | |
void | reconstructFromMatrix (PtrList< volVectorField > &rec_field2, PtrList< volVectorField > &modes, label Nmodes, Eigen::MatrixXd coeff_matrix) |
Exact reconstruction using a certain number of modes for vector list of fields and the projection coefficients (volVectorField) | |
void | reconstructFromMatrix (PtrList< volScalarField > &rec_field2, PtrList< volScalarField > &modes, label Nmodes, Eigen::MatrixXd coeff_matrix) |
Exact reconstruction using a certain number of modes for vector list of fields and the projection coefficients (volScalarField) | |
template<typename T , typename G > | |
void | assignIF (T &s, G &value) |
Assign internal field condition. | |
template<typename T > | |
void | computeLift (T &Lfield, T &liftfield, T &omfield) |
Homogenize the snapshot matrix, it works with PtrList of volVectorField and volScalarField. | |
template<typename T > | |
void | computeLiftT (T &Lfield, T &liftfield, T &omfield) |
Virtual function to compute the lifting function. | |
void | liftSolve () |
Virtual function to compute the lifting function for scalar field. | |
void | liftSolveT () |
void | project () |
General projection operation. | |
void | writeMu (List< scalar > mu_now) |
Write out a list of scalar corresponding to the parameters used in the truthSolve. | |
std::vector< SPLINTER::RBFSpline > | getCoeffManifoldRBF (PtrList< volVectorField > snapshots, PtrList< volVectorField > &modes, word rbfBasis="GAUSSIAN") |
Constructs the parameters-coefficients manifold for vector fields, based on RBF-spline model. | |
std::vector< SPLINTER::RBFSpline > | getCoeffManifoldRBF (PtrList< volScalarField > snapshots, PtrList< volScalarField > &modes, word rbfBasis="GAUSSIAN") |
Constructs the parameters-coefficients manifold for scalar fields, based on RBF-spline model. | |
std::vector< SPLINTER::BSpline > | getCoeffManifoldSPL (PtrList< volVectorField > snapshots, PtrList< volVectorField > &modes, label splDeg=3) |
Constructs the parameters-coefficients manifold for vector fields, based on the B-spline model. | |
std::vector< SPLINTER::BSpline > | getCoeffManifoldSPL (PtrList< volScalarField > snapshots, PtrList< volScalarField > &modes, label splDeg=3) |
Constructs the parameters-coefficients manifold for scalar fields, based on the B-spline model. | |
Public Attributes | |
ITHACAparameters * | para |
PtrList< volScalarField > | Pfield |
List of pointers used to form the pressure snapshots matrix. | |
PtrList< volVectorField > | Ufield |
List of pointers used to form the velocity snapshots matrix. | |
PtrList< volVectorField > | supfield |
List of pointers used to form the supremizer snapshots matrix. | |
PtrList< surfaceScalarField > | Phifield |
List of pointers used to form the flux snapshots matrix. | |
volScalarModes | Pmodes |
List of pointers used to form the pressure modes. | |
volVectorModes | Umodes |
List of pointers used to form the velocity modes. | |
volVectorModes | supmodes |
List of pointers used to form the supremizer modes. | |
surfaceScalarModes | Phimodes |
List of pointers used to form the flux modes. | |
PtrList< volVectorField > | liftfield |
List of pointers used to form the list of lifting functions. | |
PtrList< volVectorField > | Uomfield |
List of pointers used to form the homogeneous velocity snapshots. | |
volVectorModes | L_U_SUPmodes |
List of pointers containing the total number of lift, supremizer and velocity modes. | |
surfaceScalarModes | L_PHImodes |
List of pointers containing the total number of flux modes. | |
scalar | tolerance |
Tolerance for the residual of the stationary problems, there is the same tolerance for velocity and pressure. | |
scalar | maxIter |
Number of maximum iterations to be done for the computation of the truth solution. | |
label | NUmodesOut |
Number of velocity modes to be calculated. | |
label | NPmodesOut |
Number of pressure modes to be calculated. | |
label | NSUPmodesOut |
Number of supremizer modes to be calculated. | |
label | NNutModesOut |
Number of nut modes to be calculated. | |
label | NUmodes |
Number of velocity modes used for the projection. | |
label | NPmodes |
Number of pressure modes used for the projection. | |
label | NSUPmodes |
Number of supremizer modes used for the projection. | |
label | NNutModes |
Number of nut modes used for the projection. | |
Eigen::MatrixXd | tauMatrix |
Viscous forces. | |
Eigen::MatrixXd | nMatrix |
Pressure forces. | |
List< Eigen::MatrixXd > | bcVelVec |
Boundary term for penalty method - vector. | |
List< Eigen::MatrixXd > | bcVelMat |
Boundary term for penalty method - matrix. | |
Eigen::MatrixXd | BP_matrix |
Diffusion term for flux method PPE. | |
List< Eigen::MatrixXd > | RD_matrix |
Boundary term for diffusion term. | |
List< Eigen::MatrixXd > | RC_matrix |
Boundary vector for convection term. | |
List< Eigen::MatrixXd > | SD_matrix |
Boundary term for diffusion term - Consistent Flux Method. | |
List< Eigen::MatrixXd > | SC_matrix |
Boundary term for convection term - Consistent Flux Method. | |
Eigen::Tensor< double, 3 > | Cf_tensor |
Convection term for flux method. | |
Eigen::Tensor< double, 3 > | Ci_tensor |
Convection term - Consistent Flux Method. | |
List< Eigen::MatrixXd > | LinSysDiv |
Projection Peqn onto Pressure modes - Divergence term. | |
List< Eigen::MatrixXd > | LinSysDiff |
Projection Peqn onto Pressure modes - Diffusion term. | |
List< Eigen::MatrixXd > | LinSysConv |
Projection Peqn onto Pressure modes - Convection term. | |
bool | supex |
Boolean variable to check the existence of the supremizer modes. | |
autoPtr< volScalarField > | _p |
Pressure field. | |
autoPtr< volVectorField > | _U |
Velocity field. | |
autoPtr< volScalarField > | _p0 |
Initial Pressure field (for restart purposes) | |
autoPtr< volVectorField > | _U0 |
Initial Velocity field (for restart purposes) | |
autoPtr< volVectorField > | Uinl |
Initial dummy field with all Dirichlet boundary conditions. | |
autoPtr< dimensionedScalar > | dt_dummy |
Dummy time step including unit. | |
autoPtr< dimensionedScalar > | nu_dummy |
Dummy viscocity including unit. | |
autoPtr< fvMesh > | _mesh |
Mesh. | |
autoPtr< simpleControl > | _simple |
simpleControl | |
autoPtr< fv::options > | _fvOptions |
fvOptions | |
autoPtr< Time > | _runTime |
Time. | |
autoPtr< surfaceScalarField > | _phi |
Flux. | |
autoPtr< surfaceScalarField > | _phi0 |
Initial Flux (for restart purposes) | |
autoPtr< incompressible::turbulenceModel > | turbulence |
Turbulence model. | |
autoPtr< singlePhaseTransportModel > | _laminarTransport |
Laminar transport (used by turbulence model) | |
autoPtr< IOMRFZoneList > | _MRF |
MRF variable. | |
label | pRefCell |
Reference pressure cell. | |
scalar | pRefValue |
Reference pressure value. | |
scalar | cumulativeContErr = 0 |
continuity error | |
word | bcMethod |
Boundary Method. | |
word | fluxMethod |
Flux Method. | |
Reduced Matrices | |
Eigen::MatrixXd | B_matrix |
Diffusion term. | |
Eigen::MatrixXd | M_matrix |
Mass Matrix. | |
Eigen::MatrixXd | K_matrix |
Gradient of pressure matrix. | |
List< Eigen::MatrixXd > | C_matrix |
Non linear term. | |
Eigen::Tensor< double, 3 > | C_tensor |
Diffusion term. | |
Eigen::MatrixXd | P_matrix |
Div of velocity. | |
Eigen::MatrixXd | D_matrix |
Laplacian term PPE. | |
List< Eigen::MatrixXd > | G_matrix |
Divergence of momentum PPE. | |
Eigen::Tensor< double, 3 > | gTensor |
Divergence of momentum PPE. | |
Eigen::MatrixXd | BC1_matrix |
PPE BC1. | |
List< Eigen::MatrixXd > | BC2_matrix |
PPE BC2. | |
Eigen::Tensor< double, 3 > | bc2Tensor |
PPE BC2. | |
Eigen::MatrixXd | BC3_matrix |
PPE BC3. | |
Eigen::MatrixXd | BC4_matrix |
PPE BC4. | |
Eigen::MatrixXd | W_matrix |
Mass Matrix New Time Step - Consistent Flux Method. | |
Eigen::MatrixXd | I_matrix |
Mass Matrix Old Time Step - Consistent Flux Method. | |
Eigen::MatrixXd | DF_matrix |
Diffusion Term - Consistent Flux Method. | |
Eigen::MatrixXd | KF_matrix |
Pressure Gradient Term - Consistent Flux Method. | |
Public Attributes inherited from reductionProblem | |
label | Pnumber |
Number of parameters. | |
label | Tnumber |
Dimension of the training set (used only when gerating parameters without input) | |
Eigen::MatrixXd | mu |
Row matrix of parameters. | |
Eigen::MatrixXd | mu_range |
Range of the parameter spaces. | |
Eigen::MatrixXd | mu_samples |
Matrix of parameters to be used for PODI, where each row corresponds to a sample point. In this matrix the time dimension is regarded as a parameter for unsteady problems. | |
double | mu_cur |
Current value of the parameter. | |
bool | podex |
Boolean variable, it is 1 if the POD has already been computed, else 0. | |
bool | offline |
Boolean variable, it is 1 if the Offline phase has already been computed, else 0. | |
IOdictionary * | ITHACAdict |
dictionary to store input output infos | |
autoPtr< argList > | _args |
argList | |
ITHACAparallel * | paral |
parallel handling | |
label | folderN = 1 |
Counter to save intermediate steps in the correct folder, for unsteady and some stationary cases. | |
label | counter = 1 |
Counter used for the output of the full order solutions. | |
Eigen::MatrixXi | inletIndex |
Matrix that contains informations about the inlet boundaries. | |
Eigen::MatrixXi | inletPatch |
Matrix that contains informations about the inlet boundaries without specifing the direction Rows = Number of parametrized boundary conditions Cols = 1 Example: example.inletIndex.resize(2, 1); example.inletIndex(0, 0) = 0; example.inletIndex(1, 0) = 1; Means that there are two parametrized boundary conditions of which the first row is of patch 0 and the second row of patch 1. | |
Eigen::MatrixXi | inletIndexT |
Implementation of a parametrized full order steady NS problem and preparation of the the reduced matrices for the online solve.
In this class are implemented the methods for the offline solve of a steady NS problem and the for the generation of the reduced matrices for subsequent online solve, this class is a son of the reduction problem class
Definition at line 69 of file steadyNS.H.
steadyNS::steadyNS | ( | ) |
steadyNS::steadyNS | ( | int | argc, |
char * | argv[] ) |
Construct with argc and argv.
Definition at line 41 of file steadyNS.C.
|
inline |
Definition at line 80 of file steadyNS.H.
List< Eigen::MatrixXd > steadyNS::bcVelocityMat | ( | label | NUmodes, |
label | NSUPmodes ) |
Boundary integral modes on boundary used by the penaly method.
[in] | NUmodes | The number of velocity modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1455 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::bcVelocityVec | ( | label | NUmodes, |
label | NSUPmodes ) |
Boundary integral modes on boundary used by the penaly method.
[in] | NUmodes | The number of velocity modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1418 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::boundary_vector_convection | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Boundary vector convection term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1576 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::boundary_vector_convection_consistent | ( | label | NUmodes, |
label | NSUPmodes ) |
Boundary vector convection term - Consistent Flux Method.
[in] | NUmodes | The number of velocity modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1956 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::boundary_vector_diffusion | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Boundary vector diffusion term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1530 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::boundary_vector_diffusion_consistent | ( | label | NUmodes, |
label | NSUPmodes ) |
Boundary vector diffusion term (consistent flux method)
[in] | NUmodes | The number of velocity modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1917 of file steadyNS.C.
void steadyNS::change_viscosity | ( | double | mu | ) |
Function to change the viscosity.
[in] | mu | viscosity (scalar) |
Definition at line 2014 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::convective_term | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Convective Term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 955 of file steadyNS.C.
Eigen::Tensor< double, 3 > steadyNS::convective_term_consistent_tens | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Convective Term (consistent flux method)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1878 of file steadyNS.C.
Eigen::Tensor< double, 3 > steadyNS::convective_term_flux_tens | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Convective Term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1622 of file steadyNS.C.
Eigen::Tensor< double, 3 > steadyNS::convective_term_tens | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Export convective term as a tensor.
[in] | NUmodes | The N of velocity modes |
[in] | NPmodes | The N of pressure modes |
[in] | NSUPmodes | The N of supremizer modes |
Definition at line 995 of file steadyNS.C.
Eigen::MatrixXd steadyNS::diffusive_term | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Diffusive Term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 861 of file steadyNS.C.
Eigen::MatrixXd steadyNS::diffusive_term_consistent | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Diffusion Term (consistent flux method)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1807 of file steadyNS.C.
Eigen::MatrixXd steadyNS::diffusive_term_flux_method | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Diffusive Flux Method.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1497 of file steadyNS.C.
Eigen::MatrixXd steadyNS::diffusive_term_sym | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Symetric diffusive Term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 892 of file steadyNS.C.
void steadyNS::discretizeThenProject | ( | fileName | folder, |
label | NUmodes, | ||
label | NPmodes, | ||
label | NSUPmodes = 0 ) |
Project using the Discretize-then-project approach.
[in] | folder | The folder used to save the reduced matrices. |
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes, 0 by default and it must remain always zero. |
Definition at line 687 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::div_momentum | ( | label | NUmodes, |
label | NPmodes ) |
Divergence of convective term (PPE approach)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
Definition at line 1106 of file steadyNS.C.
Eigen::MatrixXd steadyNS::divergence_term | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Divergence Term (supremizer approach)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1073 of file steadyNS.C.
Eigen::Tensor< double, 3 > steadyNS::divMomentum | ( | label | NUmodes, |
label | NPmodes ) |
Divergence of convective term (PPE approach)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
Definition at line 1147 of file steadyNS.C.
void steadyNS::forcesMatrices | ( | label | nModes | ) |
Compute lift and drag matrices offline matrices for the case of same number of velocity and pressure modes.
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 2115 of file steadyNS.C.
void steadyNS::forcesMatrices | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Compute lift and drag matrices.
[in] | NUmodes | The N of velocity modes |
[in] | NPmodes | The N of pressure modes |
[in] | NSUPmodes | The N of supremizer modes |
Definition at line 2027 of file steadyNS.C.
Eigen::MatrixXd steadyNS::laplacian_pressure | ( | label | NPmodes | ) |
Laplacian of pressure term (PPE approach)
[in] | NPmodes | The number of pressure modes. |
Definition at line 1183 of file steadyNS.C.
void steadyNS::liftSolve | ( | ) |
Eigen::MatrixXd steadyNS::mass_matrix_newtime_consistent | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Mass Matrix new time step (consistent flux method)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1990 of file steadyNS.C.
Eigen::MatrixXd steadyNS::mass_matrix_oldtime_consistent | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Mass Matrix old time step (consistent flux method)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1773 of file steadyNS.C.
Eigen::MatrixXd steadyNS::mass_term | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Mass Term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1041 of file steadyNS.C.
Eigen::MatrixXd steadyNS::pressure_BC1 | ( | label | NPmodes, |
label | NUmodes ) |
Term N° 1 given by the additional boundary condition using a PPE approach.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
Definition at line 1212 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::pressure_BC2 | ( | label | NPmodes, |
label | NUmodes ) |
Term N° 2 given by the additional boundary condition using a PPE approach.
[in] | NPmodes | The number of pressure modes. |
[in] | NUmodes | The number of velocity modes. |
Definition at line 1251 of file steadyNS.C.
Eigen::MatrixXd steadyNS::pressure_BC3 | ( | label | NPmodes, |
label | NUmodes ) |
Term N° 3 given by the additional boundary condition using a PPE approach.
[in] | NPmodes | The number of pressure modes. |
[in] | NUmodes | The number of velocity modes. |
Definition at line 1338 of file steadyNS.C.
Eigen::MatrixXd steadyNS::pressure_BC4 | ( | label | NPmodes, |
label | NUmodes ) |
Term N° 4 given by the additional boundary condition using a PPE approach for time-dependent BCs.
[in] | NPmodes | The number of pressure modes. |
[in] | NUmodes | The number of velocity modes. |
Definition at line 1378 of file steadyNS.C.
Eigen::MatrixXd steadyNS::pressure_gradient_term | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Gradient of pressure.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 923 of file steadyNS.C.
Eigen::MatrixXd steadyNS::pressure_gradient_term_consistent | ( | label | NUmodes, |
label | NPmodes, | ||
label | NSUPmodes ) |
Pressure Gradient Term (consistent flux method)
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1844 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::pressure_gradient_term_linsys_conv | ( | label | NPmodes | ) |
Laplacian of pressure Linear System - Convection term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1703 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::pressure_gradient_term_linsys_diff | ( | label | NPmodes | ) |
Laplacian of pressure Linear System - Diffusion term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1738 of file steadyNS.C.
List< Eigen::MatrixXd > steadyNS::pressure_gradient_term_linsys_div | ( | label | NPmodes | ) |
Laplacian of pressure Linear System - Divergence term.
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 1671 of file steadyNS.C.
Eigen::Tensor< double, 3 > steadyNS::pressureBC2 | ( | label | NPmodes, |
label | NUmodes ) |
Term N° 2 given by the additional boundary condition using a PPE approach.
[in] | NPmodes | The n pmodes |
[in] | NUmodes | The n umodes |
Definition at line 1293 of file steadyNS.C.
void steadyNS::projectPPE | ( | fileName | folder, |
label | NUmodes, | ||
label | NPmodes, | ||
label | NSUPmodes = 0 ) |
Project using the Poisson Equation for pressure.
[in] | folder | The folder used to save the reduced matrices. |
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes, 0 by default and it must remain always zero. |
Definition at line 353 of file steadyNS.C.
void steadyNS::projectSUP | ( | fileName | folder, |
label | NUmodes, | ||
label | NPmodes, | ||
label | NSUPmodes ) |
Project using a supremizer approach.
[in] | folder | The folder used to save the reduced matrices. |
[in] | NUmodes | The number of velocity modes. |
[in] | NPmodes | The number of pressure modes. |
[in] | NSUPmodes | The number of supremizer modes. |
Definition at line 543 of file steadyNS.C.
void steadyNS::reconstructLiftAndDrag | ( | const Eigen::MatrixXd & | velCoeffs, |
const Eigen::MatrixXd & | pressureCoeffs, | ||
fileName | folder ) |
Method to reconstruct the forces using velocity and pressure coefficients.
[in] | velCoeffs | The velocity coefficients matrix |
[in] | pressureCoeffs | The pressure coefficients matrix |
[in] | folder | The folder where to output the forces matrices |
Definition at line 2203 of file steadyNS.C.
void steadyNS::restart | ( | ) |
set U and P back to the values into the 0 folder
Definition at line 2253 of file steadyNS.C.
void steadyNS::solvesupremizer | ( | word | type = "snapshots" | ) |
solve the supremizer either with the use of the pressure snaphots or the pressure modes
[in] | type | The type of the supremizer approach, either done on the pressure snapshots or on pressure modes. |
Definition at line 136 of file steadyNS.C.
void steadyNS::truthSolve | ( | List< scalar > | mu_now | ) |
Perform a truthsolve.
[in] | mu_now | The actual value of the parameter for this truthSolve. Used only to construct mu_interp matrix which is written out in the Offline folder, also for par file in the Parameters folder. |
Definition at line 96 of file steadyNS.C.
autoPtr<fv::options> steadyNS::_fvOptions |
autoPtr<singlePhaseTransportModel> steadyNS::_laminarTransport |
Laminar transport (used by turbulence model)
Definition at line 302 of file steadyNS.H.
|
mutable |
Mesh.
Definition at line 281 of file steadyNS.H.
autoPtr<IOMRFZoneList> steadyNS::_MRF |
autoPtr<volScalarField> steadyNS::_p |
Pressure field.
Definition at line 260 of file steadyNS.H.
autoPtr<volScalarField> steadyNS::_p0 |
Initial Pressure field (for restart purposes)
Definition at line 266 of file steadyNS.H.
autoPtr<surfaceScalarField> steadyNS::_phi |
Flux.
Definition at line 293 of file steadyNS.H.
autoPtr<surfaceScalarField> steadyNS::_phi0 |
Initial Flux (for restart purposes)
Definition at line 296 of file steadyNS.H.
autoPtr<Time> steadyNS::_runTime |
Time.
Definition at line 290 of file steadyNS.H.
autoPtr<simpleControl> steadyNS::_simple |
autoPtr<volVectorField> steadyNS::_U |
Velocity field.
Definition at line 263 of file steadyNS.H.
autoPtr<volVectorField> steadyNS::_U0 |
Initial Velocity field (for restart purposes)
Definition at line 269 of file steadyNS.H.
Eigen::MatrixXd steadyNS::B_matrix |
Diffusion term.
Definition at line 157 of file steadyNS.H.
Eigen::MatrixXd steadyNS::BC1_matrix |
PPE BC1.
Definition at line 182 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::BC2_matrix |
PPE BC2.
Definition at line 185 of file steadyNS.H.
Eigen::Tensor<double, 3 > steadyNS::bc2Tensor |
PPE BC2.
Definition at line 188 of file steadyNS.H.
Eigen::MatrixXd steadyNS::BC3_matrix |
PPE BC3.
Definition at line 191 of file steadyNS.H.
Eigen::MatrixXd steadyNS::BC4_matrix |
PPE BC4.
Definition at line 194 of file steadyNS.H.
word steadyNS::bcMethod |
List<Eigen::MatrixXd> steadyNS::bcVelMat |
Boundary term for penalty method - matrix.
Definition at line 221 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::bcVelVec |
Boundary term for penalty method - vector.
Definition at line 218 of file steadyNS.H.
Eigen::MatrixXd steadyNS::BP_matrix |
Diffusion term for flux method PPE.
Definition at line 224 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::C_matrix |
Non linear term.
Definition at line 166 of file steadyNS.H.
Eigen::Tensor<double, 3 > steadyNS::C_tensor |
Diffusion term.
Definition at line 167 of file steadyNS.H.
Eigen::Tensor<double, 3 > steadyNS::Cf_tensor |
Convection term for flux method.
Definition at line 239 of file steadyNS.H.
Eigen::Tensor<double, 3 > steadyNS::Ci_tensor |
Convection term - Consistent Flux Method.
Definition at line 242 of file steadyNS.H.
scalar steadyNS::cumulativeContErr = 0 |
continuity error
Definition at line 314 of file steadyNS.H.
Eigen::MatrixXd steadyNS::D_matrix |
Laplacian term PPE.
Definition at line 173 of file steadyNS.H.
Eigen::MatrixXd steadyNS::DF_matrix |
Diffusion Term - Consistent Flux Method.
Definition at line 203 of file steadyNS.H.
autoPtr<dimensionedScalar> steadyNS::dt_dummy |
Dummy time step including unit.
Definition at line 275 of file steadyNS.H.
word steadyNS::fluxMethod |
List<Eigen::MatrixXd> steadyNS::G_matrix |
Divergence of momentum PPE.
Definition at line 176 of file steadyNS.H.
Eigen::Tensor<double, 3 > steadyNS::gTensor |
Divergence of momentum PPE.
Definition at line 179 of file steadyNS.H.
Eigen::MatrixXd steadyNS::I_matrix |
Mass Matrix Old Time Step - Consistent Flux Method.
Definition at line 200 of file steadyNS.H.
Eigen::MatrixXd steadyNS::K_matrix |
Gradient of pressure matrix.
Definition at line 163 of file steadyNS.H.
Eigen::MatrixXd steadyNS::KF_matrix |
Pressure Gradient Term - Consistent Flux Method.
Definition at line 206 of file steadyNS.H.
surfaceScalarModes steadyNS::L_PHImodes |
List of pointers containing the total number of flux modes.
Definition at line 119 of file steadyNS.H.
volVectorModes steadyNS::L_U_SUPmodes |
List of pointers containing the total number of lift, supremizer and velocity modes.
Definition at line 116 of file steadyNS.H.
PtrList<volVectorField> steadyNS::liftfield |
List of pointers used to form the list of lifting functions.
Definition at line 110 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::LinSysConv |
Projection Peqn onto Pressure modes - Convection term.
Definition at line 251 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::LinSysDiff |
Projection Peqn onto Pressure modes - Diffusion term.
Definition at line 248 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::LinSysDiv |
Projection Peqn onto Pressure modes - Divergence term.
Definition at line 245 of file steadyNS.H.
Eigen::MatrixXd steadyNS::M_matrix |
Mass Matrix.
Definition at line 160 of file steadyNS.H.
scalar steadyNS::maxIter |
Number of maximum iterations to be done for the computation of the truth solution.
Definition at line 125 of file steadyNS.H.
Eigen::MatrixXd steadyNS::nMatrix |
Pressure forces.
Definition at line 215 of file steadyNS.H.
label steadyNS::NNutModes |
Number of nut modes used for the projection.
Definition at line 149 of file steadyNS.H.
label steadyNS::NNutModesOut |
Number of nut modes to be calculated.
Definition at line 137 of file steadyNS.H.
label steadyNS::NPmodes |
Number of pressure modes used for the projection.
Definition at line 143 of file steadyNS.H.
label steadyNS::NPmodesOut |
Number of pressure modes to be calculated.
Definition at line 131 of file steadyNS.H.
label steadyNS::NSUPmodes |
Number of supremizer modes used for the projection.
Definition at line 146 of file steadyNS.H.
label steadyNS::NSUPmodesOut |
Number of supremizer modes to be calculated.
Definition at line 134 of file steadyNS.H.
autoPtr<dimensionedScalar> steadyNS::nu_dummy |
Dummy viscocity including unit.
Definition at line 278 of file steadyNS.H.
label steadyNS::NUmodes |
Number of velocity modes used for the projection.
Definition at line 140 of file steadyNS.H.
label steadyNS::NUmodesOut |
Number of velocity modes to be calculated.
Definition at line 128 of file steadyNS.H.
Eigen::MatrixXd steadyNS::P_matrix |
Div of velocity.
Definition at line 170 of file steadyNS.H.
ITHACAparameters* steadyNS::para |
Definition at line 82 of file steadyNS.H.
PtrList<volScalarField> steadyNS::Pfield |
List of pointers used to form the pressure snapshots matrix.
Definition at line 86 of file steadyNS.H.
PtrList<surfaceScalarField> steadyNS::Phifield |
List of pointers used to form the flux snapshots matrix.
Definition at line 95 of file steadyNS.H.
surfaceScalarModes steadyNS::Phimodes |
List of pointers used to form the flux modes.
Definition at line 107 of file steadyNS.H.
volScalarModes steadyNS::Pmodes |
List of pointers used to form the pressure modes.
Definition at line 98 of file steadyNS.H.
label steadyNS::pRefCell |
Reference pressure cell.
Definition at line 308 of file steadyNS.H.
scalar steadyNS::pRefValue |
Reference pressure value.
Definition at line 311 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::RC_matrix |
Boundary vector for convection term.
Definition at line 230 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::RD_matrix |
Boundary term for diffusion term.
Definition at line 227 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::SC_matrix |
Boundary term for convection term - Consistent Flux Method.
Definition at line 236 of file steadyNS.H.
List<Eigen::MatrixXd> steadyNS::SD_matrix |
Boundary term for diffusion term - Consistent Flux Method.
Definition at line 233 of file steadyNS.H.
bool steadyNS::supex |
Boolean variable to check the existence of the supremizer modes.
Definition at line 256 of file steadyNS.H.
PtrList<volVectorField> steadyNS::supfield |
List of pointers used to form the supremizer snapshots matrix.
Definition at line 92 of file steadyNS.H.
volVectorModes steadyNS::supmodes |
List of pointers used to form the supremizer modes.
Definition at line 104 of file steadyNS.H.
Eigen::MatrixXd steadyNS::tauMatrix |
Viscous forces.
Definition at line 212 of file steadyNS.H.
scalar steadyNS::tolerance |
Tolerance for the residual of the stationary problems, there is the same tolerance for velocity and pressure.
Definition at line 122 of file steadyNS.H.
autoPtr<incompressible::turbulenceModel> steadyNS::turbulence |
PtrList<volVectorField> steadyNS::Ufield |
List of pointers used to form the velocity snapshots matrix.
Definition at line 89 of file steadyNS.H.
autoPtr<volVectorField> steadyNS::Uinl |
Initial dummy field with all Dirichlet boundary conditions.
Definition at line 272 of file steadyNS.H.
volVectorModes steadyNS::Umodes |
List of pointers used to form the velocity modes.
Definition at line 101 of file steadyNS.H.
PtrList<volVectorField> steadyNS::Uomfield |
List of pointers used to form the homogeneous velocity snapshots.
Definition at line 113 of file steadyNS.H.
Eigen::MatrixXd steadyNS::W_matrix |
Mass Matrix New Time Step - Consistent Flux Method.
Definition at line 197 of file steadyNS.H.