Loading...
Searching...
No Matches
tutorial22 Class Reference
Inheritance diagram for tutorial22:
UnsteadyNSTurb fsiBasic unsteadyNS steadyNS UnsteadyProblem steadyNS UnsteadyProblem reductionProblem reductionProblem

Public Member Functions

 tutorial22 (int argc, char *argv[])
void offlineSolve (std::string offlinepath)
Eigen::MatrixXd vectorTensorMult (Eigen::VectorXd g, Eigen::Tensor< double, 3 > c, Eigen::VectorXd a)
 tutorial22 (int argc, char *argv[])
void offlineSolve (word folder="./ITHACAoutput/Offline/")
 Initial coordinates of the grid points.
Public Member Functions inherited from UnsteadyNSTurb
 UnsteadyNSTurb (int argc, char *argv[])
 UnsteadyNSTurb (const Parameters *myParameters)
Eigen::MatrixXd pressurePPE_L (label NPmodes)
Eigen::MatrixXd continuity_matrix (label NUmodes, label NSUPmodes, label NPmodes)
Eigen::MatrixXd btTurbulence (label NUmodes, label NSUPmodes)
 bt added matrix for the turbulence treatement
Eigen::Tensor< double, 3 > turbulenceTensor1 (label NUmodes, label NSUPmodes, label nNutModes)
 ct1 added tensor for the turbulence treatement
Eigen::Tensor< double, 3 > turbulenceTensor2 (label NUmodes, label NSUPmodes, label nNutModes)
 ct2 added tensor for the turbulence treatement
Eigen::Tensor< double, 3 > turbulencePPETensor1 (label NUmodes, label NSUPmodes, label NPmodes, label nNutModes)
 ct1PPE added tensor for the turbulence treatement in the PPE method
Eigen::Tensor< double, 3 > turbulencePPETensor2 (label NUmodes, label NSUPmodes, label NPmodes, label nNutModes)
 ct2PPE added tensor for the turbulence treatement in the PPE method
Eigen::Tensor< double, 3 > turbulenceAveTensor1 (label NUmodes, label NSUPmodes)
 ct1Ave added tensor for approximation of the averaged part of the eddy viscosity
Eigen::Tensor< double, 3 > turbulenceAveTensor2 (label NUmodes, label NSUPmodes)
 ct2Ave added tensor for approximation of the averaged part of the eddy viscosity
Eigen::Tensor< double, 3 > turbulencePPEAveTensor1 (label NUmodes, label NSUPmodes, label NPmodes)
 ct1PPEAve added tensor for approximation of the averaged part of the eddy viscosity with the usage of the PPE approach
Eigen::Tensor< double, 3 > turbulencePPEAveTensor2 (label NUmodes, label NSUPmodes, label NPmodes)
 ct2PPEAve added tensor for approximation of the averaged part of the eddy viscosity with the usage of the PPE approach
Eigen::Tensor< double, 3 > turbulenceFluctTensor1 (label NUmodes, label NSUPmodes)
 ct1Fluct added tensor for approximation of the fluctuating part of the eddy viscosity
Eigen::Tensor< double, 3 > turbulenceFluctTensor2 (label NUmodes, label NSUPmodes)
 ct2Fluct added tensor for approximation of the fluctuating part of the eddy viscosity
Eigen::Tensor< double, 3 > turbulencePPEFluctTensor1 (label NUmodes, label NSUPmodes, label NPmodes)
 ct1PPEFluct added tensor for approximation of the fluctuating part of the eddy viscosity with the usage of the PPE approach
Eigen::Tensor< double, 3 > turbulencePPEFluctTensor2 (label NUmodes, label NSUPmodes, label NPmodes)
 ct2PPEFluct added tensor for approximation of the fluctuating part of the eddy viscosity with the usage of the PPE approach
void truthSolve (List< scalar > mu_now, std::string &offlinepath)
 Perform a truthsolve.
void projectSUP (fileName folder, label NUmodes, label NPmodes, label NSUPmodes, label nNutModes, bool rbfInterp=true)
 Project using a supremizer approach.
void projectPPE (fileName folder, label NUmodes, label NPmodes, label NSUPmodes, label nNutModes, bool rbfInterp=true)
 Project using the Poisson Equation for pressure.
List< Eigen::MatrixXd > velDerivativeCoeff (Eigen::MatrixXd A, Eigen::MatrixXd G, Eigen::VectorXd initSnapInd, Eigen::VectorXd timeSnap)
 A method to compute the two matrices needed for the RBF interpolation by combining the velocity L2 projection coefficients and their time derivatives.
List< Eigen::MatrixXd > velParCoeff (Eigen::MatrixXd A, Eigen::MatrixXd G)
 A method to compute the two matrices needed for the RBF interpolation by combining the parameter samples values with the velocity L2 projection coefficients.
List< Eigen::MatrixXd > velParDerivativeCoeff (Eigen::MatrixXd A, Eigen::MatrixXd G, Eigen::VectorXd initSnapInd, Eigen::VectorXd timeSnap)
 A method to compute the two matrices needed for the RBF interpolation by combining the parameter value and the velocity L2 projection coefficients and their time derivatives.
Eigen::MatrixXd velParDerivativeCoeff (Eigen::MatrixXd A, Eigen::VectorXd par, double timeSnap)
 A method to compute the matrix of the combination of the parameter sample value and the matrix of velocity projection coefficients together with their time derivatives based on the backward scheme.
void computeNonLinearSnapshot_at_time (const word &snap_time, volVectorField &Smag, std::optional< PtrList< volVectorField > > modesU=std::nullopt)
 Compute non linear Snapshot at a given time.
volVectorField initSmagFunction ()
 Initialize Smagorinsky term with values at time 0.
volScalarField initSmagPhiFunction (const volScalarField template_field_phi)
 Initialize Smagorinsky term of a tracer phi with values at time 0.
volVectorField computeSmagTerm_at_time (const word &snap_time, std::optional< PtrList< volVectorField > > modesU=std::nullopt)
 Compute Smagorinsky Snapshot at a given time.
volScalarField computeSmagTermPhi_at_time (const word &snap_time, const volScalarField template_field_phi)
 Compute Smagorinsky Snapshot of a tracer phi at a given time.
volVectorField computeSmagTerm_fromU (const volVectorField &snapshotj)
 Compute Smagorinsky Snapshot for a given velocity field U.
volScalarField computeSmagTermPhi_fromUPhi (const volVectorField &snapshotj, const volScalarField &phij)
 Compute Smagorinsky Snapshot for given velocity field U and tracer phi.
volVectorField computeSmagTermPhi_fromUPhi (const volVectorField &snapshotj, const volVectorField &phij)
 Compute Smagorinsky Snapshot for a given velocity field U (=computeSmagTerm_fromU).
void computeNonLinearSnapshot_at_time (const word &snap_time, volScalarField &phi, volVectorField &modeU)
 Compute non linear Snapshot at a given time.
void computeNonLinearSnapshot_at_time (const word &snap_time, volVectorField &phi, volVectorField &modeU)
volScalarField initProjSmagFunction ()
 Initialize projFullStressFunction with values at time 0.
volScalarField computeProjSmagTerm_at_time_fromMode (const word &snap_time, const volVectorField &mode)
 Compute projFullStressFunction snapshot at a given time projected on the given mode.
void computeProjSmagTerm_fromSmag_fromMode (volScalarField &phi, const volVectorField &Smag, const volVectorField &mode)
 Compute projFullStressFunction given the Smagorinsky term and the velocity mode.
void computeProjSmagTerm_fromSmag_fromMode (volScalarField phi, const volScalarField &Smag, const volVectorField &mode)
void computeProjSmagTerm_fromSmag_fromMode (volVectorField phi, const volVectorField &Smag, const volVectorField &mode)
void computeNonLinearSnapshot_at_time (const word &snap_time, volScalarField &phi, volVectorField &modeU_proj, volVectorField &modeU_grad)
 Compute non linear Snapshot at a given time.
void computeNonLinearSnapshot_at_time (const word &snap_time, volVectorField &phi, volVectorField &modeU_proj, volVectorField &modeU_grad)
volScalarField initProjSmagFromNutFunction ()
 Initialize projSmagFromNut with values at time 0.
volScalarField computeProjSmagFromNut_at_time_fromModes (const word &snap_time, const volVectorField &modeU_proj, const volVectorField &modeU_grad)
 Compute projSmagFromNut snapshot at a given time from 2 velocity modes.
void computeProjSmagFromNut_fromNut_fromModes (volScalarField &phi, const volScalarField &Nut, const volVectorField &modeU_proj, const volVectorField &modeU_grad)
 Compute projSmagFromNut given Nut and 2 velocity modes.
void computeProjSmagFromNut_fromNut_fromModes (volVectorField &phi, const volVectorField &Nut, const volVectorField &modeU_proj, const volVectorField &modeU_grad)
void computeProjSmagFromNut_fromNut_fromModes (volScalarField &phi, const volVectorField &Nut, const volVectorField &modeU_proj, const volVectorField &modeU_grad)
void computeNonLinearSnapshot_at_time (const word &snap_time, volScalarField &nut, std::optional< PtrList< volVectorField > > modesU=std::nullopt)
 Compute non linear Snapshot at a given time.
volScalarField initNutFunction ()
 Initialize Nut term with values at time 0.
volScalarField computeNut_at_time (const word &snap_time, std::optional< PtrList< volVectorField > > modesU=std::nullopt)
 Compute non linear Snapshot at a given time.
volScalarField computeNut_fromU (const volVectorField &snapshotj)
 Compute turbulent viscosity Snapshot for a given velocity field U.
volScalarField computeNut_fromS (const volTensorField &S)
 Compute turbulent viscosity Snapshot for a given tensor Field S.
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.
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::Tensor< double, 3 > divMomentum_cache (label NUmodes, label NPmodes)
 Divergence of convective term (PPE approach) using the cached procedure.
Eigen::MatrixXd laplacian_pressure (label NPmodes)
 Laplacian of pressure term (PPE approach).
Eigen::MatrixXd convective_background (label NUmodes, volVectorField vls)
 Large Scale / Background Advection.
Eigen::MatrixXd divergent_convective_background (label NPmodes, label NUmodes, volVectorField vls)
 Divergent of Large Scale / Background Advection.
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.
Eigen::Tensor< double, 3 > convective_term_tens_cache (label NUmodes, label NPmodes, label NSUPmodes)
 Export convective term as a tensor using the cached procedure.
void restart ()
 set U and P back to the values into the 0 folder
Public Member Functions inherited from reductionProblem
 reductionProblem ()
 Construct Null.
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
void setTimes (Time &timeObject)
bool checkWrite (Time &timeObject)
 Function to check if the solution must be exported.
Public Member Functions inherited from fsiBasic
 fsiBasic ()
 Construct Null.
 fsiBasic (int argc, char *argv[])
 Construct with argc and argv.
void truthSolve (label paramIndex, fileName folder="./ITHACAoutput/Offline/")
 Perform a truthsolve.
void restart ()
 method to set all fields back to values in 0 folder
void change_viscosity (double mu)
 Method to construct RBFI for pointDisplacement void PodIpointDispl(Eigen::MatrixXd muu, label NPdModes);.
void change_stiffness (scalar &mu)
void updateStiffnessAndRebuildSolver (scalar &newMu, word param_name="stiffness")
void exportFoamFieldToNpy (const word &outputDir, const word &fileName, const List< scalar > &foamField)
 Help function for the prepareFoamData routine.
void prepareFoamData (const word &outputPath)
 Prepare data such forces and centre of mass.
void loadCentreOfMassY (const fileName &baseDir="ITHACAoutput")
 to load all centre of mass for training RBF network

Public Attributes

volVectorField & U
 Velocity field.
volScalarField & p
 Pressure field.
volScalarField & nut
pointVectorField & pd
Public Attributes inherited from UnsteadyNSTurb
PtrList< volScalarField > nutFields
 List of snapshots for the solution for eddy viscosity.
volScalarModes nutModes
 List of POD modes for eddy viscosity.
PtrList< volScalarField > nutAve
 List of for eddy viscosity time-averaged fields.
int nNutAvgModes
int nNutFluctModes
int nphiNutAvg
int nphiNutFluct
PtrList< volScalarField > nutAvgModes
PtrList< volScalarField > nutFluctModes
PtrList< volScalarField > nutAvgFields
PtrList< volScalarField > nutFluctFields
List< SPLINTER::RBFSpline * > rbfSplinesNutAvg
List< SPLINTER::RBFSpline * > rbfSplinesNutFluct
List< SPLINTER::DataTable * > samplesNutAvg
List< SPLINTER::DataTable * > samplesNutFluct
std::vector< SPLINTER::RBFSpline * > rbfSplines
std::vector< SPLINTER::DataTable * > samples
 Create a Rbf splines for interpolation.
Eigen::MatrixXd btMatrix
 Turbulent viscosity term.
Eigen::MatrixXd L_vector
Eigen::MatrixXd z
 Time-parameter combined matrix.
Eigen::Tensor< double, 3 > ct1Tensor
 Turbulent viscosity tensor.
Eigen::Tensor< double, 3 > ct1AveTensor
 Turbulent average viscosity tensor for the splitting approach.
Eigen::Tensor< double, 3 > ct1PPETensor
 Turbulent viscosity tensor in the PPE equation.
Eigen::Tensor< double, 3 > ct1PPEAveTensor
 Turbulent average viscosity tensor for the splitting approach in the PPE equation.
Eigen::Tensor< double, 3 > ct2Tensor
 Turbulent viscosity tensor.
Eigen::Tensor< double, 3 > ct2AveTensor
 Turbulent average viscosity tensor for the splitting approach.
Eigen::Tensor< double, 3 > ct2PPETensor
 Turbulent viscosity tensor in the PPE equation.
Eigen::Tensor< double, 3 > ct2PPEAveTensor
 Turbulent average viscosity tensor for the splitting approach in the PPE equation.
Eigen::Tensor< double, 3 > ct1FluctTensor
 Turbulent fluctuation viscosity tensor for the splitting approach.
Eigen::Tensor< double, 3 > ct1PPEFluctTensor
 Turbulent fluctuation viscosity tensor for the splitting approach in the PPE equation.
Eigen::Tensor< double, 3 > ct2FluctTensor
 Turbulent fluctuation viscosity tensor for the splitting approach.
Eigen::Tensor< double, 3 > ct2PPEFluctTensor
 Turbulent fluctuation viscosity tensor for the splitting approach in the PPE equation.
Eigen::Tensor< double, 3 > cTotalTensor
 Turbulent total viscosity tensor.
Eigen::Tensor< double, 3 > cTotalAveTensor
 Turbulent total average viscosity tensor for the splitting approach.
Eigen::MatrixXd P_matrix
Eigen::Tensor< double, 3 > cTotalPPETensor
 Turbulent total viscosity tensor in the PPE equation.
Eigen::Tensor< double, 3 > cTotalPPEAveTensor
 Turbulent total average viscosity tensor for the splitting approach in the PPE equation.
Eigen::Tensor< double, 3 > cTotalFluctTensor
Eigen::Tensor< double, 3 > cTotalPPEFluctTensor
Eigen::MatrixXd bTotalMatrix
 Total B Matrix.
Eigen::MatrixXd coeffL2
 The matrix of L2 projection coefficients for the eddy viscosity.
Eigen::MatrixXd velRBF
 Velocity coefficients for RBF interpolation.
Eigen::VectorXd radii
 RBF shape parameters vector.
double e = 1.0
 RBF functions radius.
label nNutModes
 Number of viscoisty modes used for the projection.
label interChoice = 1
 Interpolation independent variable choice.
autoPtr< volScalarField > _nut
 Eddy viscosity field.
autoPtr< surfaceVectorField > _Uf
 Face velocity field.
label _pRefCell
 Pressure reference cell.
scalar _pRefValue
 Pressure reference value.
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
ITHACAparameterspara
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< volScalarField > liftfieldP
 List of pointer used to form the list of lifting functions for the pressure.
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 L_matrix
 Convective background / Large scale advection term.
Eigen::MatrixXd L_D_matrix
 Divergent convective background / Large scale advection term.
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
ITHACAparallelparal
 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.
Public Attributes inherited from fsiBasic
autoPtr< volScalarField > _p
autoPtr< dynamicFvMesh > meshPtr
autoPtr< fvMesh > Mesh0
PtrList< dynamicFvMesh > meshes
autoPtr< pimpleControl > _pimple
 pimpleControl
autoPtr< sixDoFRigidBodyMotionSolver > sDRBMS
pointField point0
faceList faces0
cellList celllist0
autoPtr< surfaceVectorField > _Uf
PtrList< pointVectorField > DFields
 List of pointers used pointDisplacement modes.
List< scalar > centerofmassx
 List scalar for access the centerofmass.
List< scalar > centerofmassy
List< scalar > centerofmassz
List< scalar > omegaz
PtrList< pointVectorField > Dfield
 List of pointers used to form the displacement snapshots matrix.
PtrList< volVectorField > Ufield
PtrList< surfaceVectorField > NormalFields
 List of surface normal vectors.
pointVectorModes Dmodes
 List of POD modes for pointDisplacement.
autoPtr< pointVectorField > _pointDisplacement
 pointDisplacement field
List< scalar > fomforcey
 List to save lift and drag forces.
List< scalar > fomforcex
Eigen::MatrixXd coeffL2
 The matrix of L2 projection coefficients for pointDisplacement.
Eigen::MatrixXd CylDispl
Eigen::MatrixXd CylRot
Eigen::VectorXd pdCoeff
 The vector of L2 projection coefficients for the pointDisplacement snapshot.
std::vector< SPLINTER::DataTable * > samples
 Create a samples for interpolation.
std::vector< SPLINTER::RBFSpline * > rbfSplines
 Create a RBF splines for interpolation.
bool correctPhi
bool checkMeshCourantNo
bool moveMeshOuterCorrectors
autoPtr< IOdictionary > dyndict
autoPtr< IOobject > oMesh

Additional Inherited Members

Static Public Member Functions inherited from UnsteadyNSTurb
template<typename T>
static volScalarField diffusion (const T &coefDiff, const volScalarField &phi)
 Compute diffusion term for a given scalar field phi.
template<typename T>
static volVectorField diffusion (const T &coefDiff, const volVectorField &u)
 Compute diffusion term for a given vector field u.
static volScalarField projDiffusionIBP (const volScalarField &coefDiff, const volVectorField &u, const volVectorField &v)
 Compute projected diffusion term with the integration by parts (IBP) equation for a given vector field u.
static volTensorField computeS_fromU (const volVectorField &snapshotj)
 Compute S deformation tensor for a given vector field U.
static volVectorField computeS_fromU (const volScalarField &phij)
 Compute gradient for a given scalar field Phi.

Detailed Description

Definition at line 76 of file offline.C.

Constructor & Destructor Documentation

◆ tutorial22() [1/2]

tutorial22::tutorial22 ( int argc,
char * argv[] )
inlineexplicit

Definition at line 79 of file offline.C.

◆ tutorial22() [2/2]

tutorial22::tutorial22 ( int argc,
char * argv[] )
inline

Definition at line 48 of file Moving_Cylinder.C.

Member Function Documentation

◆ offlineSolve() [1/2]

void tutorial22::offlineSolve ( std::string offlinepath)
inline

Definition at line 92 of file offline.C.

◆ offlineSolve() [2/2]

void tutorial22::offlineSolve ( word folder = "./ITHACAoutput/Offline/")
inline

Initial coordinates of the grid points.

Clear Data members

Definition at line 63 of file Moving_Cylinder.C.

◆ vectorTensorMult()

Eigen::MatrixXd tutorial22::vectorTensorMult ( Eigen::VectorXd g,
Eigen::Tensor< double, 3 > c,
Eigen::VectorXd a )
inline

Definition at line 110 of file offline.C.

Member Data Documentation

◆ nut

volScalarField& tutorial22::nut

Definition at line 90 of file offline.C.

◆ p

volScalarField & tutorial22::p

Pressure field.

Definition at line 89 of file offline.C.

◆ pd

pointVectorField& tutorial22::pd

Definition at line 60 of file Moving_Cylinder.C.

◆ U

volVectorField & tutorial22::U

Velocity field.

Definition at line 88 of file offline.C.


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