Class where it is implemented a reduced problem for the steady Navier-stokes problem. More...
#include <ReducedCompressibleSteadyNS.H>
Public Member Functions | |
| ReducedCompressibleSteadyNS () | |
| Construct Null. | |
| ReducedCompressibleSteadyNS (CompressibleSteadyNS &problem) | |
| Construct Null. | |
| ~ReducedCompressibleSteadyNS () | |
| void | solveOnlineCompressible (scalar mu_now, int NmodesUproj, int NmodesPproj, int NmodesEproj) |
| Method to perform an online solve using a PPE stabilisation method. | |
| void | setOnlineVelocity (Eigen::MatrixXd vel) |
| It checks if the number of imposed boundary conditions is correct and set the inlet velocity equal to the given one. | |
| void | projectReducedOperators (int NmodesUproj, int NmodesPproj, int NmodesEproj) |
| It assembles the reduced oeprators using the modes. | |
Public Member Functions inherited from ReducedSteadyNSTurb | |
| ReducedSteadyNSTurb () | |
| Construct Null. | |
| ReducedSteadyNSTurb (SteadyNSTurb &problem) | |
| Construct Null. | |
| ~ReducedSteadyNSTurb () | |
| void | solveOnlineSUP (Eigen::MatrixXd velNow) |
| Method to perform an online solve using a supremizer stabilisation method. | |
| void | solveOnlinePPE (Eigen::MatrixXd velNow) |
| Method to perform an online solve using a PPE stabilisation method. | |
| void | reconstruct (bool exportFields=false, fileName folder="./ITHACAoutput/online_rec", int printevery=1) |
| Method to reconstruct the solutions from an online solve. | |
| Eigen::MatrixXd | setOnlineVelocity (Eigen::MatrixXd vel) |
| Sets the online velocity. | |
Public Member Functions inherited from reducedSteadyNS | |
| reducedSteadyNS () | |
| Construct Null. | |
| reducedSteadyNS (steadyNS &problem) | |
| Construct Null. | |
| ~reducedSteadyNS () | |
| void | solveOnline_PPE (Eigen::MatrixXd vel_now) |
| Method to perform an online solve using a PPE stabilisation method. | |
| void | solveOnline_sup (Eigen::MatrixXd vel_now) |
| Method to perform an online solve using a supremizer stabilisation method. | |
| void | reconstruct_PPE (fileName folder="./ITHACAoutput/online_rec", int printevery=1) |
| Method to reconstruct a solution from an online solve with a PPE stabilisation technique. | |
| void | reconstruct (bool exportFields=false, fileName folder="./ITHACAoutput/online_rec", int printevery=1) |
| Method to reconstruct the solutions from an online solve. | |
| void | reconstructLiftAndDrag (steadyNS &problem, fileName folder) |
| Method to compute the reduced order forces. | |
| double | inf_sup_constant () |
| Method to evaluate the online inf-sup constant. | |
| Eigen::MatrixXd | setOnlineVelocity (Eigen::MatrixXd vel) |
| Sets the online velocity. | |
Public Member Functions inherited from reducedProblem | |
| reducedProblem () | |
| Construct Null. | |
| virtual | ~reducedProblem () |
| reducedProblem (reductionProblem &problem) | |
| Construct with reduced Problem. | |
| virtual void | solveOnline () |
| Virtual Method to perform and online Solve. | |
Public Attributes | |
| volVectorModes | ULmodes |
| Lifted velocity modes. | |
| CompressibleSteadyNS * | problem |
| Full problem. | |
| Eigen::MatrixXd | vel_now |
| Imposed boundary conditions. | |
| int | counter = 0 |
| Counter. | |
| Eigen::MatrixXd | projGradModP |
| Projected gradient of the pressure modes. | |
Public Attributes inherited from ReducedSteadyNSTurb | |
| PtrList< volScalarField > | nutFields |
| List of snapshots for the solution for eddy viscosity. | |
| PtrList< volScalarField > | nutModes |
| List of POD modes for eddy viscosity. | |
| Eigen::MatrixXd | rbfCoeffMat |
| The matrix of the eddy viscosity RBF interoplated coefficients. | |
| Eigen::VectorXd | rbfCoeff |
| Vector of eddy viscosity RBF interoplated coefficients. | |
| int | nphiNut |
| Number of viscosity modes. | |
| newtonSteadyNSTurbSUP | newtonObjectSUP |
| Newton Object to solve the nonlinear problem sup approach. | |
| newtonSteadyNSTurbPPE | newtonObjectPPE |
| Newton Object to solve the nonlinear problem PPE approach. | |
| SteadyNSTurb * | problem |
| Pointer to the FOM problem. | |
| PtrList< volScalarField > | nutRecFields |
| Reconstructed eddy viscosity fields list. | |
Public Attributes inherited from reducedSteadyNS | |
| ITHACAparameters * | para |
| parameters to be read from the ITHACAdict file | |
| Eigen::MatrixXd | vel_now |
| Online inlet velocity vector. | |
| Eigen::MatrixXd | fTau |
| Reduced matrix for tangent forces. | |
| Eigen::MatrixXd | fN |
| Reduced matrix for normal forces. | |
| Eigen::VectorXd | y_old |
| Vector to store the previous solution during the Newton procedure. | |
| Eigen::VectorXd | y |
| Vector to store the solution during the Newton procedure. | |
| scalar | nu |
| Reduced viscosity in case of parametrized viscosity. | |
| List< Eigen::MatrixXd > | online_solution |
| List of Eigen matrices to store the online solution. | |
| PtrList< volVectorField > | Umodes |
| List of pointers to store the modes for velocity. | |
| PtrList< volScalarField > | Pmodes |
| List of pointers to store the modes for pressure. | |
| PtrList< volVectorField > | Usnapshots |
| List of pointers to store the snapshots for velocity. | |
| PtrList< volScalarField > | Psnapshots |
| List of pointers to store the snapshots for pressure. | |
| PtrList< volScalarField > | PREC |
| Reconstructed pressure field. | |
| PtrList< volVectorField > | UREC |
| Recontructed velocity field. | |
| PtrList< volScalarField > | pRecFields |
| Reconstructed pressure fields list. | |
| PtrList< volVectorField > | uRecFields |
| Recontructed velocity fields list. | |
| newton_steadyNS | newton_object |
| Newton object used to solve the non linear problem. | |
| steadyNS * | problem |
| Pointer to the FOM problem. | |
| int | Nphi_u |
| Number of velocity modes. | |
| int | Nphi_p |
| Number of pressure modes. | |
| int | Nphi_sup |
| Number of supremizer modes. | |
| int | N_BC |
| Number of parametrized boundary conditions. | |
| int | count_online_solve = 1 |
| Counter to count the online solutions. | |
| Eigen::MatrixXd | tauU |
| Penalty Factor. | |
Public Attributes inherited from reducedProblem | |
| scalar | nu |
| Viscosity. | |
| reductionProblem * | problem |
| Pointer to FOAM problem. | |
Additional Inherited Members | |
Static Public Member Functions inherited from reducedProblem | |
| static Eigen::MatrixXd | solveLinearSys (List< Eigen::MatrixXd > LinSys, Eigen::MatrixXd x, Eigen::VectorXd &residual, const Eigen::MatrixXd &bc=Eigen::MatrixXd::Zero(0, 0), const std::string solverType="fullPivLu") |
| Linear system solver for the online problem. | |
| static Eigen::MatrixXd | solveLinearSys (List< Eigen::MatrixXd > LinSys, Eigen::MatrixXd x, Eigen::VectorXd &residual, const std::string solverType) |
| Linear system solver for the online problem. | |
Class where it is implemented a reduced problem for the steady Navier-stokes problem.
In this class are implemented the methods to solve a reduced version of the stationary Navier-stokes equations. This class must be used together with the steadyNS class
Definition at line 62 of file ReducedCompressibleSteadyNS.H.
| ReducedCompressibleSteadyNS::ReducedCompressibleSteadyNS | ( | ) |
Construct Null.
Definition at line 39 of file ReducedCompressibleSteadyNS.C.
|
explicit |
Construct Null.
| [in] | problem | a full order steadyNS problem |
| [in] | tipo | Type of pressure stabilisation method you want to use "SUP" for supremizer, "PPE" for pressure Poisson equation. |
Definition at line 43 of file ReducedCompressibleSteadyNS.C.
|
inline |
Definition at line 78 of file ReducedCompressibleSteadyNS.H.
| void ReducedCompressibleSteadyNS::projectReducedOperators | ( | int | NmodesUproj, |
| int | NmodesPproj, | ||
| int | NmodesEproj ) |
It assembles the reduced oeprators using the modes.
| [in] | NmodesUproj | The number of modes one wants to use for velocity projection. |
| [in] | NmodesPproj | The number of modes one wants to use for pressure projection. |
| [in] | NmodesEproj | The number of modes one wants to use for energy projection. |
Definition at line 81 of file ReducedCompressibleSteadyNS.C.
| void ReducedCompressibleSteadyNS::setOnlineVelocity | ( | Eigen::MatrixXd | vel | ) |
It checks if the number of imposed boundary conditions is correct and set the inlet velocity equal to the given one.
| [in] | vel | Inlet velocity |
Definition at line 60 of file ReducedCompressibleSteadyNS.C.
| void ReducedCompressibleSteadyNS::solveOnlineCompressible | ( | scalar | mu_now, |
| int | NmodesUproj, | ||
| int | NmodesPproj, | ||
| int | NmodesEproj ) |
Method to perform an online solve using a PPE stabilisation method.
| [in] | mu_now | The online viscosity. |
| [in] | NmodesUproj | The number of modes one wants to use for velocity projection. |
| [in] | NmodesPproj | The number of modes one wants to use for pressure projection. |
| [in] | NmodesEproj | The number of modes one wants to use for energy projection. |
Definition at line 96 of file ReducedCompressibleSteadyNS.C.
| int ReducedCompressibleSteadyNS::counter = 0 |
Counter.
Definition at line 127 of file ReducedCompressibleSteadyNS.H.
| CompressibleSteadyNS* ReducedCompressibleSteadyNS::problem |
Full problem.
Definition at line 121 of file ReducedCompressibleSteadyNS.H.
| Eigen::MatrixXd ReducedCompressibleSteadyNS::projGradModP |
Projected gradient of the pressure modes.
Definition at line 132 of file ReducedCompressibleSteadyNS.H.
| volVectorModes ReducedCompressibleSteadyNS::ULmodes |
Lifted velocity modes.
Definition at line 112 of file ReducedCompressibleSteadyNS.H.
| Eigen::MatrixXd ReducedCompressibleSteadyNS::vel_now |
Imposed boundary conditions.
Definition at line 124 of file ReducedCompressibleSteadyNS.H.
1.13.2