37#ifndef ReducedUnsteadyNSTurbIntrusive_H
38#define ReducedUnsteadyNSTurbIntrusive_H
46#include <unsupported/Eigen/NonLinearOptimization>
47#include <unsupported/Eigen/NumericalDiff>
61 int operator()(
const Eigen::VectorXd& x, Eigen::VectorXd& fvec)
const;
62 int df(
const Eigen::VectorXd& x, Eigen::MatrixXd& fjac)
const;
87 int operator()(
const Eigen::VectorXd& x, Eigen::VectorXd& fvec)
const;
88 int df(
const Eigen::VectorXd& x, Eigen::MatrixXd& fjac)
const;
170 fileName folder =
"./online_rec");
179 fileName folder =
"./online_rec");
Header file of the reducedSteadyNS class.
Header file of the reducedUnsteadyNS class.
Header file of the UnsteadyNSTurbIntrusive class.
Class where it is implemented a reduced problem for the unsteady Navier-stokes problem.
void reconstructLiftAndDrag(UnsteadyNSTurbIntrusive &problem, fileName folder)
Method to compute the reduced order forces for same number of modes of velocity and pressure.
ReducedUnsteadyNSTurbIntrusive()
Construct Null.
Eigen::MatrixXd initCond
Tha matrix containing the initial conditions for the reduced variables, in case of PPE approach it mu...
PtrList< volScalarField > nutRecFields
Reconstructed eddy viscosity fields list.
~ReducedUnsteadyNSTurbIntrusive()
newtonUnsteadyNSTurbIntrusive newtonObject
Function object to call the non linear solver sup approach.
PtrList< volScalarField > nutModes
List of pointers to store the modes for the eddy viscosity.
UnsteadyNSTurbIntrusive * problem
Pointer to the FOM problem.
Eigen::MatrixXd setOnlineVelocity(Eigen::MatrixXd vel)
Sets the online velocity.
void solveOnlinePPE(Eigen::MatrixXd vel)
Method to perform an online solve using an intrusive approach with the usage of PPE.
void reconstructPPE(bool exportFields=false, fileName folder="./online_rec")
Method to reconstruct the solutions from an online solve with a PPE semi-uniform approach.
void reconstruct(bool exportFields=false, fileName folder="./online_rec")
Method to reconstruct the solutions from an online solve with a fully uniform approach.
newtonUnsteadyNSTurbIntrusivePPE newtonObjectPPE
Function object to call the non linear solver sup approach.
Implementation of a parametrized full order unsteady NS problem and preparation of the the reduced ...
Template object created to solve non linear problems using the Eigen library.
virtual void solveOnline()
Virtual Method to perform and online Solve.
Class where it is implemented a reduced problem for the unsteady Navier-stokes problem.
UnsteadyNSTurbIntrusive * problem
newtonUnsteadyNSTurbIntrusivePPE()
int df(const Eigen::VectorXd &x, Eigen::MatrixXd &fjac) const
newtonUnsteadyNSTurbIntrusivePPE(int Nx, int Ny, UnsteadyNSTurbIntrusive &problem)
int operator()(const Eigen::VectorXd &x, Eigen::VectorXd &fvec) const
int df(const Eigen::VectorXd &x, Eigen::MatrixXd &fjac) const
UnsteadyNSTurbIntrusive * problem
newtonUnsteadyNSTurbIntrusive(int Nx, int Ny, UnsteadyNSTurbIntrusive &problem)
newtonUnsteadyNSTurbIntrusive()
int operator()(const Eigen::VectorXd &x, Eigen::VectorXd &fvec) const