Implementation of a parametrized full order unsteady NS problem and preparation of the the reduced matrices for the online solve. More...
#include <UnsteadyNSTurbIntrusive.H>
Public Member Functions | |
UnsteadyNSTurbIntrusive () | |
Construct Null. | |
UnsteadyNSTurbIntrusive (int argc, char *argv[]) | |
Construct with argc and argv. | |
void | truthSolve (List< scalar > mu_now) |
Perform a truthsolve. | |
void | project (fileName folder, label nModes) |
The projection method for computing the reduced order matrices with the uniform approach. | |
void | projectPPE (fileName folder, label nUModes, label nPModes) |
The projection method for computing the reduced order matrices with the usage of Poisson equation for pressure. | |
Eigen::MatrixXd | btTurbulence (label nModes) |
bt added matrix for the turbulence treatement | |
Eigen::Tensor< double, 3 > | turbulenceTensor1 (label nModes) |
Method to compute one of the turbulence tensors. | |
Eigen::Tensor< double, 3 > | turbulenceTensor2 (label nModes) |
Method to compute one of the turbulence tensors. | |
Eigen::Tensor< double, 3 > | turbulencePPETensor1 (label nUModes, label nPModes) |
Method to compute one of the turbulence eddy viscosity tensors in the PPE approach. | |
Eigen::Tensor< double, 3 > | turbulencePPETensor2 (label nUModes, label nPModes) |
Method to compute one of the turbulence eddy viscosity tensors in the PPE approach. | |
Eigen::MatrixXd | diffusiveTerm (label nModes) |
Diffusive Term. | |
Eigen::Tensor< double, 3 > | convectiveTerm (label nModes) |
The method for computing the convective term tensor. | |
Eigen::MatrixXd | pressureGradientTerm (label nModes) |
The method for computing the pressure gradient term with number of modes of pressure being equal to the number of modes of velocity and with modes of pressure computed using the SVD of velocity snapshots. | |
Eigen::MatrixXd | pressureGradientTerm (label nUModes, label nPModes) |
The method for computing the pressure gradient term with number of modes of pressure NOT equal to the number of modes of velocity and with modes of pressure computed using the SVD of pressure snapshots. | |
Eigen::MatrixXd | laplacianPressure (label nPModes) |
Laplacian of pressure term (PPE approach) | |
Eigen::Tensor< double, 3 > | divMomentum (label nUModes, label nPModes) |
Divergence of convective term (PPE approach) | |
Eigen::MatrixXd | pressureBC1 (label nUModes, label nPModes) |
Term N° 1 given by the additional boundary condition using a PPE approach. | |
Eigen::Tensor< double, 3 > | pressureBC2 (label nUModes, label nPModes) |
Term N° 2 given by the additional boundary condition using a PPE approach. | |
Eigen::MatrixXd | pressureBC3 (label nUModes, label nPModes) |
Term N° 3 given by the additional boundary condition using a PPE approach. | |
Eigen::MatrixXd | pressureBC4 (label nUModes, label nPModes) |
Term N° 4 given by the additional boundary condition using a PPE approach. | |
List< Eigen::MatrixXd > | bcVelocityVec (label nModes) |
Boundary integral modes on boundary used by the penaly method. | |
List< Eigen::MatrixXd > | bcVelocityMat (label nModes) |
Boundary integral modes on boundary used by the penaly method. | |
Public Member Functions inherited from unsteadyNS | |
unsteadyNS () | |
Construct Null. | |
unsteadyNS (int argc, char *argv[]) | |
Construct with argc and argv. | |
void | truthSolve (List< scalar > mu_now, fileName folder="./ITHACAoutput/Offline/") |
Perform a truthsolve. | |
Public Member Functions inherited from steadyNS | |
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 Member Functions inherited from UnsteadyProblem | |
UnsteadyProblem () | |
void | setTimes (Time &timeObject) |
bool | checkWrite (Time &timeObject) |
Function to check if the solution must be exported. | |
Public Attributes | |
PtrList< volScalarField > | nutFields |
List of snapshots for the solution for eddy viscosity. | |
volScalarModes | nutModes |
List of POD modes for eddy viscosity. | |
Eigen::MatrixXd | bMatrix |
Diffusive matrix. | |
Eigen::MatrixXd | kMatrix |
Pressure Gradient matrix. | |
Eigen::MatrixXd | btMatrix |
Turbulent viscosity matrix. | |
Eigen::Tensor< double, 3 > | convTensor |
Convective tensor. | |
Eigen::Tensor< double, 3 > | ct2Tensor |
Turbulent viscosity tensor. | |
Eigen::Tensor< double, 3 > | ct1Tensor |
Turbulent viscosity tensor. | |
Eigen::Tensor< double, 3 > | ct1PPETensor |
Turbulent viscosity tensor PPE approach. | |
Eigen::Tensor< double, 3 > | ct2PPETensor |
Turbulent viscosity tensor PPE approach. | |
Eigen::Tensor< double, 3 > | cTotalTensor |
Total Turbulent tensor. | |
Eigen::Tensor< double, 3 > | cTotalPPETensor |
Total Turbulent tensor PPE approach. | |
Eigen::MatrixXd | bTotalMatrix |
Total B Matrix. | |
label | nModesOnline |
Number of modes used in the online stage. | |
autoPtr< volScalarField > | _nut |
Eddy viscosity field. | |
Public Attributes inherited from unsteadyNS | |
autoPtr< pimpleControl > | _pimple |
pimpleControl | |
autoPtr< incompressible::turbulenceModel > | turbulence |
Turbulence model. | |
bool | adjustTimeStep |
adjustTimeStep | |
scalar | maxCo |
maxCourant | |
scalar | maxDeltaT |
maxDeltaT | |
label | counter2 = 1 |
word | method |
word | timedepbcMethod |
Time-dependent Boundary Method. | |
Eigen::MatrixXd | timeBCoff |
word | timeDerivativeSchemeOrder |
Public Attributes inherited from steadyNS | |
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. | |
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 |
Public Attributes inherited from UnsteadyProblem | |
scalar | startTime |
Start Time (initial time to start storing the snapshots) | |
scalar | finalTime |
Final time (final time of the simulation and consequently of the acquisition of the snapshots) | |
scalar | timeStep |
Time step of the simulation. | |
scalar | writeEvery = timeStep |
Time step of the writing procedure. | |
scalar | nextWrite |
Auxiliary variable to store the next writing instant. | |
Implementation of a parametrized full order unsteady 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 unsteady NS problem and the for the generation of the reduced matrices for subsequent online solve, this class is a son of the steadyNS class
Definition at line 67 of file UnsteadyNSTurbIntrusive.H.
UnsteadyNSTurbIntrusive::UnsteadyNSTurbIntrusive | ( | ) |
Construct Null.
Definition at line 39 of file UnsteadyNSTurbIntrusive.C.
UnsteadyNSTurbIntrusive::UnsteadyNSTurbIntrusive | ( | int | argc, |
char * | argv[] ) |
Construct with argc and argv.
Definition at line 42 of file UnsteadyNSTurbIntrusive.C.
List< Eigen::MatrixXd > UnsteadyNSTurbIntrusive::bcVelocityMat | ( | label | nModes | ) |
Boundary integral modes on boundary used by the penaly method.
[in] | nModes | The number of modes used in the online stage for the velocity field |
Definition at line 1032 of file UnsteadyNSTurbIntrusive.C.
List< Eigen::MatrixXd > UnsteadyNSTurbIntrusive::bcVelocityVec | ( | label | nModes | ) |
Boundary integral modes on boundary used by the penaly method.
[in] | nModes | The number of modes used in the online stage for the velocity field |
Definition at line 1006 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::btTurbulence | ( | label | nModes | ) |
bt added matrix for the turbulence treatement
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 247 of file UnsteadyNSTurbIntrusive.C.
Eigen::Tensor< double, 3 > UnsteadyNSTurbIntrusive::convectiveTerm | ( | label | nModes | ) |
The method for computing the convective term tensor.
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 721 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::diffusiveTerm | ( | label | nModes | ) |
Diffusive Term.
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 696 of file UnsteadyNSTurbIntrusive.C.
Eigen::Tensor< double, 3 > UnsteadyNSTurbIntrusive::divMomentum | ( | label | nUModes, |
label | nPModes ) |
Divergence of convective term (PPE approach)
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 823 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::laplacianPressure | ( | label | nPModes | ) |
Laplacian of pressure term (PPE approach)
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 799 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::pressureBC1 | ( | label | nUModes, |
label | nPModes ) |
Term N° 1 given by the additional boundary condition using a PPE approach.
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 856 of file UnsteadyNSTurbIntrusive.C.
Eigen::Tensor< double, 3 > UnsteadyNSTurbIntrusive::pressureBC2 | ( | label | nUModes, |
label | nPModes ) |
Term N° 2 given by the additional boundary condition using a PPE approach.
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 891 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::pressureBC3 | ( | label | nUModes, |
label | nPModes ) |
Term N° 3 given by the additional boundary condition using a PPE approach.
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 932 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::pressureBC4 | ( | label | nUModes, |
label | nPModes ) |
Term N° 4 given by the additional boundary condition using a PPE approach.
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 969 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::pressureGradientTerm | ( | label | nModes | ) |
The method for computing the pressure gradient term with number of modes of pressure being equal to the number of modes of velocity and with modes of pressure computed using the SVD of velocity snapshots.
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 750 of file UnsteadyNSTurbIntrusive.C.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::pressureGradientTerm | ( | label | nUModes, |
label | nPModes ) |
The method for computing the pressure gradient term with number of modes of pressure NOT equal to the number of modes of velocity and with modes of pressure computed using the SVD of pressure snapshots.
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 774 of file UnsteadyNSTurbIntrusive.C.
void UnsteadyNSTurbIntrusive::project | ( | fileName | folder, |
label | nModes ) |
The projection method for computing the reduced order matrices with the uniform approach.
[in] | folder | The folder used to save the reduced matrices. |
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 269 of file UnsteadyNSTurbIntrusive.C.
void UnsteadyNSTurbIntrusive::projectPPE | ( | fileName | folder, |
label | nUModes, | ||
label | nPModes ) |
The projection method for computing the reduced order matrices with the usage of Poisson equation for pressure.
[in] | folder | The folder used to save the reduced matrices. |
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 419 of file UnsteadyNSTurbIntrusive.C.
void UnsteadyNSTurbIntrusive::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 95 of file UnsteadyNSTurbIntrusive.C.
Eigen::Tensor< double, 3 > UnsteadyNSTurbIntrusive::turbulencePPETensor1 | ( | label | nUModes, |
label | nPModes ) |
Method to compute one of the turbulence eddy viscosity tensors in the PPE approach.
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 1063 of file UnsteadyNSTurbIntrusive.C.
Eigen::Tensor< double, 3 > UnsteadyNSTurbIntrusive::turbulencePPETensor2 | ( | label | nUModes, |
label | nPModes ) |
Method to compute one of the turbulence eddy viscosity tensors in the PPE approach.
[in] | nUModes | The number of modes used in the online stage for the velocity and eddy viscosity fields |
[in] | nPModes | The number of modes used in the online stage for the pressure field |
Definition at line 1093 of file UnsteadyNSTurbIntrusive.C.
Eigen::Tensor< double, 3 > UnsteadyNSTurbIntrusive::turbulenceTensor1 | ( | label | nModes | ) |
Method to compute one of the turbulence tensors.
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 189 of file UnsteadyNSTurbIntrusive.C.
Eigen::Tensor< double, 3 > UnsteadyNSTurbIntrusive::turbulenceTensor2 | ( | label | nModes | ) |
Method to compute one of the turbulence tensors.
[in] | nModes | The number of modes used in the online stage for all reduced variables |
Definition at line 218 of file UnsteadyNSTurbIntrusive.C.
autoPtr<volScalarField> UnsteadyNSTurbIntrusive::_nut |
Eddy viscosity field.
Definition at line 122 of file UnsteadyNSTurbIntrusive.H.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::bMatrix |
Diffusive matrix.
Definition at line 86 of file UnsteadyNSTurbIntrusive.H.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::btMatrix |
Turbulent viscosity matrix.
Definition at line 92 of file UnsteadyNSTurbIntrusive.H.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::bTotalMatrix |
Total B Matrix.
Definition at line 116 of file UnsteadyNSTurbIntrusive.H.
Eigen::Tensor<double, 3 > UnsteadyNSTurbIntrusive::convTensor |
Convective tensor.
Definition at line 95 of file UnsteadyNSTurbIntrusive.H.
Eigen::Tensor<double, 3 > UnsteadyNSTurbIntrusive::ct1PPETensor |
Turbulent viscosity tensor PPE approach.
Definition at line 104 of file UnsteadyNSTurbIntrusive.H.
Eigen::Tensor<double, 3 > UnsteadyNSTurbIntrusive::ct1Tensor |
Turbulent viscosity tensor.
Definition at line 101 of file UnsteadyNSTurbIntrusive.H.
Eigen::Tensor<double, 3 > UnsteadyNSTurbIntrusive::ct2PPETensor |
Turbulent viscosity tensor PPE approach.
Definition at line 107 of file UnsteadyNSTurbIntrusive.H.
Eigen::Tensor<double, 3 > UnsteadyNSTurbIntrusive::ct2Tensor |
Turbulent viscosity tensor.
Definition at line 98 of file UnsteadyNSTurbIntrusive.H.
Eigen::Tensor<double, 3 > UnsteadyNSTurbIntrusive::cTotalPPETensor |
Total Turbulent tensor PPE approach.
Definition at line 113 of file UnsteadyNSTurbIntrusive.H.
Eigen::Tensor<double, 3 > UnsteadyNSTurbIntrusive::cTotalTensor |
Total Turbulent tensor.
Definition at line 110 of file UnsteadyNSTurbIntrusive.H.
Eigen::MatrixXd UnsteadyNSTurbIntrusive::kMatrix |
Pressure Gradient matrix.
Definition at line 89 of file UnsteadyNSTurbIntrusive.H.
label UnsteadyNSTurbIntrusive::nModesOnline |
Number of modes used in the online stage.
Definition at line 119 of file UnsteadyNSTurbIntrusive.H.
PtrList<volScalarField> UnsteadyNSTurbIntrusive::nutFields |
List of snapshots for the solution for eddy viscosity.
Definition at line 80 of file UnsteadyNSTurbIntrusive.H.
volScalarModes UnsteadyNSTurbIntrusive::nutModes |
List of POD modes for eddy viscosity.
Definition at line 83 of file UnsteadyNSTurbIntrusive.H.