37#ifndef ReducedSteadyNSTurb_H
38#define ReducedSteadyNSTurb_H
47#include <unsupported/Eigen/NonLinearOptimization>
48#include <unsupported/Eigen/NumericalDiff>
65 int operator()(
const Eigen::VectorXd& x, Eigen::VectorXd& fvec)
const;
66 int df(
const Eigen::VectorXd& x, Eigen::MatrixXd& fjac)
const;
77 std::vector<SPLINTER::RBFSpline*>
SPLINES;
94 int operator()(
const Eigen::VectorXd& x, Eigen::VectorXd& fvec)
const;
95 int df(
const Eigen::VectorXd& x, Eigen::MatrixXd& fjac)
const;
187 fileName folder =
"./ITHACAoutput/online_rec",
Header file of the ITHACAutilities namespace.
Header file of the reducedProblem class.
Header file of the reducedSteadyNS class.
Header file of the SteadyNSTurb class.
Class where it is implemented a reduced problem for the steady turbulent Navier-stokes problem.
PtrList< volScalarField > nutRecFields
Reconstructed eddy viscosity fields list.
newtonSteadyNSTurbSUP newtonObjectSUP
Newton Object to solve the nonlinear problem sup approach.
newtonSteadyNSTurbPPE newtonObjectPPE
Newton Object to solve the nonlinear problem PPE approach.
void solveOnlinePPE(Eigen::MatrixXd velNow)
Method to perform an online solve using a PPE stabilisation method.
ReducedSteadyNSTurb()
Construct Null.
int nphiNut
Number of viscosity modes.
Eigen::MatrixXd rbfCoeffMat
The matrix of the eddy viscosity RBF interoplated coefficients.
void solveOnlineSUP(Eigen::MatrixXd velNow)
Method to perform an online solve using a supremizer stabilisation method.
PtrList< volScalarField > nutFields
List of snapshots for the solution for eddy viscosity.
SteadyNSTurb * problem
Pointer to the FOM problem.
void reconstruct(bool exportFields=false, fileName folder="./ITHACAoutput/online_rec", int printevery=1)
Method to reconstruct the solutions from an online solve.
Eigen::VectorXd rbfCoeff
Vector of eddy viscosity RBF interoplated coefficients.
PtrList< volScalarField > nutModes
List of POD modes for eddy viscosity.
Eigen::MatrixXd setOnlineVelocity(Eigen::MatrixXd vel)
Sets the online velocity.
Implementation of a parametrized full order steady turbulent Navier Stokes problem and preparation ...
Template object created to solve non linear problems using the Eigen library.
Class where it is implemented a reduced problem for the steady Navier-stokes problem.
int operator()(const Eigen::VectorXd &x, Eigen::VectorXd &fvec) const
newtonSteadyNSTurbPPE(int Nx, int Ny, SteadyNSTurb &problem)
int df(const Eigen::VectorXd &x, Eigen::MatrixXd &fjac) const
std::vector< SPLINTER::RBFSpline * > SPLINES
Structure to implement a newton object for a stationary NS problem.
std::vector< SPLINTER::RBFSpline * > SPLINES
int operator()(const Eigen::VectorXd &x, Eigen::VectorXd &fvec) const
int df(const Eigen::VectorXd &x, Eigen::MatrixXd &fjac) const
newtonSteadyNSTurbSUP(int Nx, int Ny, SteadyNSTurb &problem)