Loading...
Searching...
No Matches
CompressibleSteadyNS Class Reference

Implementation of a parametrized full order steady NS problem and preparation of the the reduced matrices for the online solve. More...

#include <CompressibleSteadyNS.H>

Inheritance diagram for CompressibleSteadyNS:
SteadyNSTurb steadyNS reductionProblem CompressibleSteadyNN CompressibleSteadyNN tutorial02 tutorial03 tutorial02 tutorial03

Public Member Functions

 CompressibleSteadyNS ()
 Null constructor.
 
 CompressibleSteadyNS (int argc, char *argv[])
 Construct with argc and argv.
 
 ~CompressibleSteadyNS ()
 
void truthSolve (word folder)
 Perform a truthsolve.
 
fvVectorMatrix getUmatrix (volVectorField &U)
 
fvVectorMatrix getNLTerm (volVectorField &U)
 
fvVectorMatrix getViscTerm (volVectorField &U)
 
volVectorField getGradP (volScalarField &p)
 
fvScalarMatrix getEmatrix (volVectorField &U, volScalarField &p)
 
fvScalarMatrix getFluxTerm ()
 
volScalarField getKinEnTerm (volVectorField &U, volScalarField &p)
 
fvScalarMatrix getDiffTerm ()
 
fvScalarMatrix getPmatrix (fvVectorMatrix &Ueqn, volVectorField &U, volScalarField &p)
 
surfaceScalarField getPhiHbyA (fvVectorMatrix &Ueqn, volVectorField &U, volScalarField &p)
 
volScalarField getDivPhiHbyA (fvVectorMatrix &Ueqn, volVectorField &U, volScalarField &p)
 
surfaceScalarField getRhorAUf (fvVectorMatrix &Ueqn)
 
fvScalarMatrix getPoissonTerm (fvVectorMatrix &Ueqn, volScalarField &p)
 
void changeViscosity (double mu_new)
 Function to change the viscosity.
 
void restart ()
 set all variables back to the values into the 0 folder
 
- Public Member Functions inherited from SteadyNSTurb
 SteadyNSTurb ()
 
 SteadyNSTurb (int argc, char *argv[])
 Construct with argc and argv.
 
void truthSolve (List< scalar > mu_now)
 Perform a truthsolve.
 
void projectPPE (fileName folder, label NUmodes, label NPmodes, label NSUPmodes, label nNutModes)
 Project using a PPE approach.
 
void projectSUP (fileName folder, label NUmodes, label NPmodes, label NSUPmodes, label nNutModes)
 Project using a supremizer approach.
 
Eigen::MatrixXd btTurbulence (label NUmodes, label NSUPmodes)
 bt added matrix for the turbulence treatement
 
List< Eigen::MatrixXd > turbulenceTerm1 (label NUmodes, label NSUPmodes, label nNutModes)
 ct1 added matrix for the turbulence treatement
 
Eigen::Tensor< double, 3 > turbulenceTensor1 (label NUmodes, label NSUPmodes, label nNutModes)
 ct1 tensor for the turbulence treatement
 
Eigen::Tensor< double, 3 > turbulenceTensor1_cache (label NUmodes, label NSUPmodes, label nNutModes)
 ct1 tensor for the turbulence treatement using the cached procedure
 
List< Eigen::MatrixXd > turbulenceTerm2 (label NUmodes, label NSUPmodes, label nNutModes)
 Method to compute one of the turbulence eddy viscosity tensors.
 
Eigen::Tensor< double, 3 > turbulenceTensor2 (label NUmodes, label NSUPmodes, label nNutModes)
 Method to compute one of the turbulence eddy viscosity tensors.
 
Eigen::Tensor< double, 3 > turbulenceTensor2_cache (label NUmodes, label NSUPmodes, label nNutModes)
 Method to compute one of the turbulence eddy viscosity tensors using the cached procedure.
 
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 > turbulencePPETensor1_cache (label NUmodes, label NSUPmodes, label NPmodes, label nNutModes)
 ct1PPE added tensor for the turbulence treatement in the PPE method using the cached procedure
 
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 > turbulencePPETensor2_cache (label NUmodes, label NSUPmodes, label NPmodes, label nNutModes)
 ct2PPE added tensor for the turbulence treatement in the PPE method using the cached procedure
 
- 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::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.
 
 ~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

autoPtr< fluidThermo > pThermo
 
autoPtr< volScalarField > _rho
 
autoPtr< volScalarField > _p
 
autoPtr< pressureControl_pressureControl
 
autoPtr< compressible::turbulenceModel > turbulence
 
autoPtr< dimensionedScalar > _initialMass
 
autoPtr< volScalarField > _psi
 
autoPtr< volScalarField > _E
 
autoPtr< volScalarField > _p0
 List of pointers to store initial solutions.
 
autoPtr< volScalarField > _E0
 Initial Energy field (for restart purposes)
 
autoPtr< volVectorField > _U0
 Initial Velocity field (for restart purposes)
 
autoPtr< volScalarField > _rho0
 Initial Density field (for restart purposes)
 
autoPtr< surfaceScalarField > _phi0
 Initial Flux field (for restart purposes)
 
PtrList< volScalarField > Efield
 List of pointers used to store the energy solutions.
 
volScalarModes Emodes
 List of pointers used to form the energy modes.
 
autoPtr< fvVectorMatrix > Ueqn_global
 
autoPtr< fvScalarMatrix > Peqn_global
 
autoPtr< fvScalarMatrix > Eeqn_global
 
autoPtr< surfaceScalarField > phiHbyA
 
autoPtr< surfaceScalarField > rhorAUf
 
autoPtr< volVectorField > HbyA
 
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 middleStep
 Distancing between intermediate steps (for turbulent case only)
 
bool middleExport
 Export also intermediate fields.
 
- Public Attributes inherited from SteadyNSTurb
PtrList< volScalarField > nutFields
 List of snapshots for the solution for eddy viscosity.
 
volScalarModes nutModes
 List of POD modes for eddy viscosity.
 
std::vector< SPLINTER::DataTable * > samples
 Create a samples for interpolation.
 
std::vector< SPLINTER::RBFSpline * > rbfSplines
 Create a RBF splines for interpolation.
 
Eigen::MatrixXd btMatrix
 Turbulent viscosity matrix.
 
List< Eigen::MatrixXd > ct2Matrix
 Turbulent viscosity tensor.
 
Eigen::Tensor< double, 3 > ct2Tensor
 
List< Eigen::MatrixXd > ct1Matrix
 Turbulent viscosity tensor.
 
Eigen::Tensor< double, 3 > ct1Tensor
 
Eigen::Tensor< double, 3 > ct1PPETensor
 Turbulent viscosity tensor in the PPE equation.
 
Eigen::Tensor< double, 3 > ct2PPETensor
 Turbulent viscosity tensor in the PPE equation.
 
List< Eigen::MatrixXd > cTotalMatrix
 Total Turbulent tensor.
 
Eigen::Tensor< double, 3 > cTotalTensor
 
Eigen::Tensor< double, 3 > cTotalPPETensor
 Turbulent total viscosity tensor in the PPE equation.
 
Eigen::MatrixXd bTotalMatrix
 Total B Matrix.
 
Eigen::MatrixXd coeffL2
 The matrix of L2 projection coefficients for the eddy viscosity.
 
Eigen::VectorXd nutCoeff
 The vector of L2 projection coefficients for the eddy viscosity snapshot.
 
word viscCoeff
 The way to compute the eddy viscosity snapshots.
 
label nNutModes
 Number of viscoisty modes used for the projection.
 
autoPtr< volScalarField > _nut
 Eddy viscosity field.
 
autoPtr< volScalarField > _nuTilda
 
- 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
 

Detailed Description

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 66 of file CompressibleSteadyNS.H.

Constructor & Destructor Documentation

◆ CompressibleSteadyNS() [1/2]

CompressibleSteadyNS::CompressibleSteadyNS ( )

Null constructor.

Definition at line 42 of file CompressibleSteadyNS.C.

◆ CompressibleSteadyNS() [2/2]

CompressibleSteadyNS::CompressibleSteadyNS ( int argc,
char * argv[] )

Construct with argc and argv.

Definition at line 44 of file CompressibleSteadyNS.C.

◆ ~CompressibleSteadyNS()

CompressibleSteadyNS::~CompressibleSteadyNS ( )
inline

Definition at line 75 of file CompressibleSteadyNS.H.

Member Function Documentation

◆ changeViscosity()

void CompressibleSteadyNS::changeViscosity ( double mu_new)

Function to change the viscosity.

Parameters
[in]muviscosity (scalar)

Definition at line 116 of file CompressibleSteadyNS.C.

◆ getDiffTerm()

fvScalarMatrix CompressibleSteadyNS::getDiffTerm ( )

Definition at line 185 of file CompressibleSteadyNS.C.

◆ getDivPhiHbyA()

volScalarField CompressibleSteadyNS::getDivPhiHbyA ( fvVectorMatrix & Ueqn,
volVectorField & U,
volScalarField & p )

Definition at line 221 of file CompressibleSteadyNS.C.

◆ getEmatrix()

fvScalarMatrix CompressibleSteadyNS::getEmatrix ( volVectorField & U,
volScalarField & p )

Definition at line 192 of file CompressibleSteadyNS.C.

◆ getFluxTerm()

fvScalarMatrix CompressibleSteadyNS::getFluxTerm ( )

Definition at line 167 of file CompressibleSteadyNS.C.

◆ getGradP()

volVectorField CompressibleSteadyNS::getGradP ( volScalarField & p)

Definition at line 145 of file CompressibleSteadyNS.C.

◆ getKinEnTerm()

volScalarField CompressibleSteadyNS::getKinEnTerm ( volVectorField & U,
volScalarField & p )

Definition at line 175 of file CompressibleSteadyNS.C.

◆ getNLTerm()

fvVectorMatrix CompressibleSteadyNS::getNLTerm ( volVectorField & U)

Definition at line 128 of file CompressibleSteadyNS.C.

◆ getPhiHbyA()

surfaceScalarField CompressibleSteadyNS::getPhiHbyA ( fvVectorMatrix & Ueqn,
volVectorField & U,
volScalarField & p )

Definition at line 208 of file CompressibleSteadyNS.C.

◆ getPmatrix()

fvScalarMatrix CompressibleSteadyNS::getPmatrix ( fvVectorMatrix & Ueqn,
volVectorField & U,
volScalarField & p )

Definition at line 244 of file CompressibleSteadyNS.C.

◆ getPoissonTerm()

fvScalarMatrix CompressibleSteadyNS::getPoissonTerm ( fvVectorMatrix & Ueqn,
volScalarField & p )

Definition at line 237 of file CompressibleSteadyNS.C.

◆ getRhorAUf()

surfaceScalarField CompressibleSteadyNS::getRhorAUf ( fvVectorMatrix & Ueqn)

Definition at line 228 of file CompressibleSteadyNS.C.

◆ getUmatrix()

fvVectorMatrix CompressibleSteadyNS::getUmatrix ( volVectorField & U)

Definition at line 152 of file CompressibleSteadyNS.C.

◆ getViscTerm()

fvVectorMatrix CompressibleSteadyNS::getViscTerm ( volVectorField & U)

Definition at line 135 of file CompressibleSteadyNS.C.

◆ restart()

void CompressibleSteadyNS::restart ( )

set all variables back to the values into the 0 folder

Definition at line 265 of file CompressibleSteadyNS.C.

◆ truthSolve()

void CompressibleSteadyNS::truthSolve ( word folder)

Perform a truthsolve.

Parameters
[in]mu_nowThe 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.

Counter to check if the middleStep has been reached or not (for turbulent case only)

Open files

save the times

Definition at line 96 of file CompressibleSteadyNS.C.

Member Data Documentation

◆ _E

autoPtr<volScalarField> CompressibleSteadyNS::_E

Definition at line 137 of file CompressibleSteadyNS.H.

◆ _E0

autoPtr<volScalarField> CompressibleSteadyNS::_E0

Initial Energy field (for restart purposes)

Definition at line 145 of file CompressibleSteadyNS.H.

◆ _initialMass

autoPtr<dimensionedScalar> CompressibleSteadyNS::_initialMass

Definition at line 133 of file CompressibleSteadyNS.H.

◆ _p

autoPtr<volScalarField> CompressibleSteadyNS::_p

Definition at line 127 of file CompressibleSteadyNS.H.

◆ _p0

autoPtr<volScalarField> CompressibleSteadyNS::_p0

List of pointers to store initial solutions.

Initial Pressure field (for restart purposes)

Definition at line 142 of file CompressibleSteadyNS.H.

◆ _phi0

autoPtr<surfaceScalarField> CompressibleSteadyNS::_phi0

Initial Flux field (for restart purposes)

Definition at line 154 of file CompressibleSteadyNS.H.

◆ _pressureControl

autoPtr<pressureControl> CompressibleSteadyNS::_pressureControl

Definition at line 129 of file CompressibleSteadyNS.H.

◆ _psi

autoPtr<volScalarField> CompressibleSteadyNS::_psi

Definition at line 135 of file CompressibleSteadyNS.H.

◆ _rho

autoPtr<volScalarField> CompressibleSteadyNS::_rho

Definition at line 125 of file CompressibleSteadyNS.H.

◆ _rho0

autoPtr<volScalarField> CompressibleSteadyNS::_rho0

Initial Density field (for restart purposes)

Definition at line 151 of file CompressibleSteadyNS.H.

◆ _U0

autoPtr<volVectorField> CompressibleSteadyNS::_U0

Initial Velocity field (for restart purposes)

Definition at line 148 of file CompressibleSteadyNS.H.

◆ Eeqn_global

autoPtr<fvScalarMatrix> CompressibleSteadyNS::Eeqn_global

Definition at line 167 of file CompressibleSteadyNS.H.

◆ Efield

PtrList<volScalarField> CompressibleSteadyNS::Efield

List of pointers used to store the energy solutions.

Definition at line 158 of file CompressibleSteadyNS.H.

◆ Emodes

volScalarModes CompressibleSteadyNS::Emodes

List of pointers used to form the energy modes.

Definition at line 161 of file CompressibleSteadyNS.H.

◆ HbyA

autoPtr<volVectorField> CompressibleSteadyNS::HbyA

Definition at line 173 of file CompressibleSteadyNS.H.

◆ maxIter

scalar CompressibleSteadyNS::maxIter

Number of maximum iterations to be done for the computation of the truth solution.

Definition at line 179 of file CompressibleSteadyNS.H.

◆ middleExport

bool CompressibleSteadyNS::middleExport

Export also intermediate fields.

Definition at line 186 of file CompressibleSteadyNS.H.

◆ middleStep

label CompressibleSteadyNS::middleStep

Distancing between intermediate steps (for turbulent case only)

Definition at line 182 of file CompressibleSteadyNS.H.

◆ Peqn_global

autoPtr<fvScalarMatrix> CompressibleSteadyNS::Peqn_global

Definition at line 165 of file CompressibleSteadyNS.H.

◆ phiHbyA

autoPtr<surfaceScalarField> CompressibleSteadyNS::phiHbyA

Definition at line 169 of file CompressibleSteadyNS.H.

◆ pThermo

autoPtr<fluidThermo> CompressibleSteadyNS::pThermo

Definition at line 123 of file CompressibleSteadyNS.H.

◆ rhorAUf

autoPtr<surfaceScalarField> CompressibleSteadyNS::rhorAUf

Definition at line 171 of file CompressibleSteadyNS.H.

◆ tolerance

scalar CompressibleSteadyNS::tolerance

Tolerance for the residual of the stationary problems, there is the same tolerance for velocity and pressure.

Definition at line 176 of file CompressibleSteadyNS.H.

◆ turbulence

autoPtr<compressible::turbulenceModel> CompressibleSteadyNS::turbulence

Definition at line 131 of file CompressibleSteadyNS.H.

◆ Ueqn_global

autoPtr<fvVectorMatrix> CompressibleSteadyNS::Ueqn_global

Definition at line 163 of file CompressibleSteadyNS.H.


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