Loading...
Searching...
No Matches
ReducedCompressibleSteadyNS.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ██╗████████╗██╗ ██╗ █████╗ ██████╗ █████╗ ███████╗██╗ ██╗
3 ██║╚══██╔══╝██║ ██║██╔══██╗██╔════╝██╔══██╗ ██╔════╝██║ ██║
4 ██║ ██║ ███████║███████║██║ ███████║█████╗█████╗ ██║ ██║
5 ██║ ██║ ██╔══██║██╔══██║██║ ██╔══██║╚════╝██╔══╝ ╚██╗ ██╔╝
6 ██║ ██║ ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ╚████╔╝
7 ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═══╝
8
9 * In real Time Highly Advanced Computational Applications for Finite Volumes
10 * Copyright (C) 2017 by the ITHACA-FV authors
11-------------------------------------------------------------------------------
12License
13 This file is part of ITHACA-FV
14 ITHACA-FV is free software: you can redistribute it and/or modify
15 it under the terms of the GNU Lesser General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18 ITHACA-FV is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU Lesser General Public License for more details.
22 You should have received a copy of the GNU Lesser General Public License
23 along with ITHACA-FV. If not, see <http://www.gnu.org/licenses/>.
24Class
25 reducedSteadyNS
26Description
27 A reduced problem for the stationary NS equations
28SourceFiles
29 reducedSteadyNS.C
30\*---------------------------------------------------------------------------*/
31
36
37#ifndef ReducedCompressibleSteadyNS_H
38#define ReducedCompressibleSteadyNS_H
39
40#include "fvCFD.H"
41#include "IOmanip.H"
42#include "ReducedProblem.H"
43#include "SteadyNSSimple.H"
45#include "ReducedSteadyNSTurb.H"
47#include "ITHACAutilities.H"
48#include "EigenFunctions.H"
49#include <Eigen/Eigen>
50#include <unsupported/Eigen/NonLinearOptimization>
51#include <unsupported/Eigen/NumericalDiff>
52#include "Modes.H"
53
54
55/*---------------------------------------------------------------------------*\
56 Class reducedProblem Declaration
57\*---------------------------------------------------------------------------*/
58
60
63{
64 private:
65
66 public:
67 // Constructors
70
77
79
80 // Functions
81
89 void solveOnlineCompressible(scalar mu_now, int NmodesUproj, int NmodesPproj,
90 int NmodesEproj);
91
98 void setOnlineVelocity(Eigen::MatrixXd vel);
99
107 void projectReducedOperators(int NmodesUproj, int NmodesPproj, int NmodesEproj);
108
109 // Variables
110
113
114 // /// List of snapshots for the solution for eddy viscosity
115 // PtrList<volScalarField> nutFields;
116
117 // /// List of POD modes for eddy viscosity
118 // volScalarModes nutModes;
119
122
124 Eigen::MatrixXd vel_now;
125
127 int counter = 0;
128
129 //Reduced operators
130
132 Eigen::MatrixXd projGradModP;
133};
134
135// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136
137
138
139#endif
140
141
142
143
144
145
Header file of the steadyNS class.
Header file of the EigenFunctions class.
Header file of the ITHACAutilities namespace.
Header file of the Modes class.
Modes< vector, fvPatchField, volMesh > volVectorModes
Definition Modes.H:256
Header file of the reducedProblem class.
Header file of the reducedSteadyNS class.
Header file of the ReducedSteadyNSTurb class.
Header file of the steadyNS class.
Implementation of a parametrized full order steady NS problem and preparation of the the reduced ma...
Eigen::MatrixXd vel_now
Imposed boundary conditions.
void projectReducedOperators(int NmodesUproj, int NmodesPproj, int NmodesEproj)
It assembles the reduced oeprators using the modes.
void setOnlineVelocity(Eigen::MatrixXd vel)
It checks if the number of imposed boundary conditions is correct and set the inlet velocity equal to...
Eigen::MatrixXd projGradModP
Projected gradient of the pressure modes.
volVectorModes ULmodes
Lifted velocity modes.
CompressibleSteadyNS * problem
Full problem.
void solveOnlineCompressible(scalar mu_now, int NmodesUproj, int NmodesPproj, int NmodesEproj)
Method to perform an online solve using a PPE stabilisation method.
ReducedSteadyNSTurb()
Construct Null.