Loading...
Searching...
No Matches
steadyNS.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 steadyNS
26Description
27 Reduction class for a Stationary Navier-Stokes problem.
28SourceFiles
29 steadyNS.C
30\*---------------------------------------------------------------------------*/
31
36
37#ifndef steadyNS_H
38#define steadyNS_H
39#include "fvCFD.H"
40#include "singlePhaseTransportModel.H"
41#include "turbulentTransportModel.H"
42#include "simpleControl.H"
43#include "pisoControl.H"
44#include "fvOptions.H"
45#include "reductionProblem.H"
46#include "ITHACAstream.H"
47#include "ITHACAparameters.H"
48#if OPENFOAM >= 1812
49#include "ITHACAforces18.H"
50#else
51#include "ITHACAforces.H"
52#endif
53#include "volFields.H"
54#include <iostream>
55#include "IPstream.H"
56#include "OPstream.H"
57#include "Modes.H"
58
59// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
60
61/*---------------------------------------------------------------------------*\
62 Class SteadyNS Declaration
63\*---------------------------------------------------------------------------*/
64
66
70{
71
72
73 public:
74 // Constructors
76 steadyNS();
77
79 steadyNS(int argc, char* argv[]);
81
83
84 // Member Functions
86 PtrList<volScalarField> Pfield;
87
89 PtrList<volVectorField> Ufield;
90
92 PtrList<volVectorField> supfield;
93
95 PtrList<surfaceScalarField> Phifield;
96
99
102
105
108
110 PtrList<volVectorField> liftfield;
111
113 PtrList<volScalarField> liftfieldP;
114
116 PtrList<volVectorField> Uomfield;
117
120
123
125 scalar tolerance;
126
128 scalar maxIter;
129
132
135
138
141
143 label NUmodes;
144
146 label NPmodes;
147
150
153
158
160 Eigen::MatrixXd B_matrix;
161
163 Eigen::MatrixXd M_matrix;
164
166 Eigen::MatrixXd K_matrix;
167
169 List <Eigen::MatrixXd> C_matrix;
170 Eigen::Tensor<double, 3 > C_tensor;
171
173 Eigen::MatrixXd P_matrix;
174
176 Eigen::MatrixXd L_matrix;
177
179 Eigen::MatrixXd L_D_matrix;
180
182 Eigen::MatrixXd D_matrix;
183
185 List <Eigen::MatrixXd> G_matrix;
186
188 Eigen::Tensor<double, 3 > gTensor;
189
191 Eigen::MatrixXd BC1_matrix;
192
194 List <Eigen::MatrixXd> BC2_matrix;
195
197 Eigen::Tensor<double, 3 > bc2Tensor;
198
200 Eigen::MatrixXd BC3_matrix;
201
203 Eigen::MatrixXd BC4_matrix;
204
206 Eigen::MatrixXd W_matrix;
207
209 Eigen::MatrixXd I_matrix;
210
212 Eigen::MatrixXd DF_matrix;
213
215 Eigen::MatrixXd KF_matrix;
216
218 //
219
221 Eigen::MatrixXd tauMatrix;
222
224 Eigen::MatrixXd nMatrix;
225
227 List <Eigen::MatrixXd> bcVelVec;
228
230 List <Eigen::MatrixXd> bcVelMat;
231
233 Eigen::MatrixXd BP_matrix;
234
236 List<Eigen::MatrixXd> RD_matrix;
237
239 List<Eigen::MatrixXd> RC_matrix;
240
242 List<Eigen::MatrixXd> SD_matrix;
243
245 List<Eigen::MatrixXd> SC_matrix;
246
248 Eigen::Tensor<double, 3 > Cf_tensor;
249
251 Eigen::Tensor<double, 3 > Ci_tensor;
252
254 List<Eigen::MatrixXd> LinSysDiv;
255
257 List<Eigen::MatrixXd> LinSysDiff;
258
260 List<Eigen::MatrixXd> LinSysConv;
261
262
263 // Other Variables
265 bool supex;
266
267 // Dummy variables to transform simplefoam into a class
269 autoPtr<volScalarField> _p;
270
272 autoPtr<volVectorField> _U;
273
275 autoPtr<volScalarField> _p0;
276
278 autoPtr<volVectorField> _U0;
279
281 autoPtr<volVectorField> Uinl;
282
284 autoPtr<dimensionedScalar> dt_dummy;
285
287 autoPtr<dimensionedScalar> nu_dummy;
288
290 mutable autoPtr<fvMesh> _mesh;
291
293 autoPtr<simpleControl> _simple;
294
296 autoPtr<fv::options> _fvOptions;
297
299 autoPtr<Time> _runTime;
300
302 autoPtr<surfaceScalarField> _phi;
303
305 autoPtr<surfaceScalarField> _phi0;
306
308 autoPtr<incompressible::turbulenceModel> turbulence;
309
311 autoPtr<singlePhaseTransportModel> _laminarTransport;
312
314 autoPtr<IOMRFZoneList> _MRF;
315
317 label pRefCell;
318
320 scalar pRefValue;
321
324
327
330
331 // Functions
332
333 //--------------------------------------------------------------------------
339 void truthSolve(List<scalar> mu_now);
340
346 void solvesupremizer(word type = "snapshots");
347
349 void liftSolve();
350
351 // Wrapped Proj. Methods;
352
353 //--------------------------------------------------------------------------
361 void projectPPE(fileName folder, label NUmodes, label NPmodes,
362 label NSUPmodes = 0);
363
364 //--------------------------------------------------------------------------
372 void projectSUP(fileName folder, label NUmodes, label NPmodes, label NSUPmodes);
373
374 //--------------------------------------------------------------------------
382 void discretizeThenProject(fileName folder, label NUmodes, label NPmodes,
383 label NSUPmodes = 0);
384
385 //--------------------------------------------------------------------------
386 // Projection Methods Momentum Equation
395 Eigen::MatrixXd diffusive_term(label NUmodes, label NPmodes, label NSUPmodes);
396
397 //--------------------------------------------------------------------------
398 // Projection Methods Momentum Equation
407 Eigen::MatrixXd diffusive_term_sym(label NUmodes, label NPmodes,
408 label NSUPmodes);
409
410 //--------------------------------------------------------------------------
419 Eigen::MatrixXd pressure_gradient_term(label NUmodes, label NPmodes,
420 label NSUPmodes);
421
422 //--------------------------------------------------------------------------
431 List < Eigen::MatrixXd > convective_term(label NUmodes, label NPmodes,
432 label NSUPmodes);
433
434 //--------------------------------------------------------------------------
443 Eigen::MatrixXd mass_term(label NUmodes, label NPmodes, label NSUPmodes);
444
445 // Projection Methods Continuity Equation
446
447 //--------------------------------------------------------------------------
456 Eigen::MatrixXd divergence_term(label NUmodes, label NPmodes, label NSUPmodes);
457
458 //--------------------------------------------------------------------------
466 List < Eigen::MatrixXd > div_momentum(label NUmodes, label NPmodes);
467
476 Eigen::Tensor<double, 3 > divMomentum(label NUmodes, label NPmodes);
477
478 //--------------------------------------------------------------------------
488 Eigen::Tensor<double, 3 > divMomentum_cache(label NUmodes, label NPmodes);
489
490 //--------------------------------------------------------------------------
497 Eigen::MatrixXd laplacian_pressure(label NPmodes);
498
499 //--------------------------------------------------------------------------
507 Eigen::MatrixXd convective_background(label NUmodes, volVectorField vls);
508
509 //--------------------------------------------------------------------------
518 Eigen::MatrixXd divergent_convective_background(label NPmodes, label NUmodes,
519 volVectorField vls);
520
521 //--------------------------------------------------------------------------
529 Eigen::MatrixXd pressure_BC1(label NPmodes, label NUmodes);
530
531 //--------------------------------------------------------------------------
539 List < Eigen::MatrixXd > pressure_BC2(label NPmodes, label NUmodes);
540
541 //--------------------------------------------------------------------------
549 Eigen::Tensor<double, 3 > pressureBC2(label NPmodes, label NUmodes);
550
551 //--------------------------------------------------------------------------
559 Eigen::MatrixXd pressure_BC3(label NPmodes, label NUmodes);
560
561 //--------------------------------------------------------------------------
570 Eigen::MatrixXd pressure_BC4(label NPmodes, label NUmodes);
571
572 //--------------------------------------------------------------------------
580 List< Eigen::MatrixXd > bcVelocityVec(label NUmodes, label NSUPmodes);
581
582 //--------------------------------------------------------------------------
590 List< Eigen::MatrixXd > bcVelocityMat(label NUmodes, label NSUPmodes);
591
592 //--------------------------------------------------------------------------
593 // Projection Methods Momentum Equation
602 Eigen::MatrixXd diffusive_term_flux_method(label NUmodes, label NPmodes,
603 label NSUPmodes);
604
605 //--------------------------------------------------------------------------
614 List<Eigen::MatrixXd> boundary_vector_diffusion(label NUmodes, label NPmodes,
615 label NSUPmodes);
616
617 //--------------------------------------------------------------------------
626 List<Eigen::MatrixXd> boundary_vector_convection(label NUmodes, label NPmodes,
627 label NSUPmodes);
628
629 //--------------------------------------------------------------------------
638 Eigen::Tensor<double, 3 > convective_term_flux_tens(label NUmodes,
639 label NPmodes,
640 label NSUPmodes);
641
642 //--------------------------------------------------------------------------
651 List < Eigen::MatrixXd > pressure_gradient_term_linsys_div(label NPmodes);
652
653 //--------------------------------------------------------------------------
662 List < Eigen::MatrixXd > pressure_gradient_term_linsys_diff(label NPmodes);
663
664 //--------------------------------------------------------------------------
673 List < Eigen::MatrixXd > pressure_gradient_term_linsys_conv(label NPmodes);
674
675 //--------------------------------------------------------------------------
676 // Projection Methods Flux Equation
685 Eigen::MatrixXd diffusive_term_consistent(label NUmodes, label NPmodes,
686 label NSUPmodes);
687
688 //--------------------------------------------------------------------------
696 List < Eigen::MatrixXd > boundary_vector_diffusion_consistent(label NUmodes,
697 label NSUPmodes);
698
699 //--------------------------------------------------------------------------
707 List < Eigen::MatrixXd > boundary_vector_convection_consistent(label NUmodes,
708 label NSUPmodes);
709
710 //--------------------------------------------------------------------------
719 Eigen::MatrixXd mass_matrix_newtime_consistent(label NUmodes, label NPmodes,
720 label NSUPmodes);
721
722 //--------------------------------------------------------------------------
731 Eigen::MatrixXd mass_matrix_oldtime_consistent(label NUmodes, label NPmodes,
732 label NSUPmodes);
733
734 //--------------------------------------------------------------------------
743 Eigen::MatrixXd pressure_gradient_term_consistent(label NUmodes, label NPmodes,
744 label NSUPmodes);
745 //--------------------------------------------------------------------------
754 Eigen::Tensor<double, 3 > convective_term_consistent_tens(label NUmodes,
755 label NPmodes,
756 label NSUPmodes);
757
758 //--------------------------------------------------------------------------
763 void change_viscosity(double mu);
764
765 //--------------------------------------------------------------------------
772 void forcesMatrices(label NUmodes, label NPmodes, label NSUPmodes);
773
774 //--------------------------------------------------------------------------
780 void forcesMatrices(label nModes);
781
782
783 //--------------------------------------------------------------------------
790 void reconstructLiftAndDrag(const Eigen::MatrixXd& velCoeffs,
791 const Eigen::MatrixXd& pressureCoeffs, fileName folder);
792
793 //--------------------------------------------------------------------------
802 Eigen::Tensor<double, 3 > convective_term_tens(label NUmodes,
803 label NPmodes,
804 label NSUPmodes);
805
806 //--------------------------------------------------------------------------
815 Eigen::Tensor<double, 3 > convective_term_tens_cache(label NUmodes,
816 label NPmodes,
817 label NSUPmodes);
818
820 void restart();
821
822
823};
824
825#endif
826
827
828
829
830
831
832
833
834
835
Header file of the ITHACAstream class, it contains the implementation of several methods for input ou...
Header file of the Modes class.
Modes< vector, fvPatchField, volMesh > volVectorModes
Definition Modes.H:256
Modes< scalar, fvPatchField, volMesh > volScalarModes
Definition Modes.H:255
Modes< scalar, fvsPatchField, surfaceMesh > surfaceScalarModes
Definition Modes.H:257
Class for the definition of some general parameters, the parameters must be defined from the file ITH...
reductionProblem()
Construct Null.
Eigen::MatrixXd mu
Row matrix of parameters.
void truthSolve()
Perform a TruthSolve.
void change_viscosity(double mu)
Function to change the viscosity.
Definition steadyNS.C:2038
List< Eigen::MatrixXd > bcVelVec
Boundary term for penalty method - vector.
Definition steadyNS.H:227
scalar maxIter
Number of maximum iterations to be done for the computation of the truth solution.
Definition steadyNS.H:128
void restart()
set U and P back to the values into the 0 folder
Definition steadyNS.C:2277
List< Eigen::MatrixXd > pressure_gradient_term_linsys_div(label NPmodes)
Laplacian of pressure Linear System - Divergence term.
Definition steadyNS.C:1720
label NPmodes
Number of pressure modes used for the projection.
Definition steadyNS.H:146
List< Eigen::MatrixXd > pressure_gradient_term_linsys_conv(label NPmodes)
Laplacian of pressure Linear System - Convection term.
Definition steadyNS.C:1752
bool supex
Boolean variable to check the existence of the supremizer modes.
Definition steadyNS.H:265
void projectPPE(fileName folder, label NUmodes, label NPmodes, label NSUPmodes=0)
Project using the Poisson Equation for pressure.
Definition steadyNS.C:354
Eigen::MatrixXd nMatrix
Pressure forces.
Definition steadyNS.H:224
Eigen::MatrixXd BC1_matrix
PPE BC1.
Definition steadyNS.H:191
Eigen::MatrixXd diffusive_term(label NUmodes, label NPmodes, label NSUPmodes)
Diffusive Term.
Definition steadyNS.C:883
autoPtr< surfaceScalarField > _phi
Flux.
Definition steadyNS.H:302
Eigen::MatrixXd BC4_matrix
PPE BC4.
Definition steadyNS.H:203
Eigen::MatrixXd tauMatrix
Viscous forces.
Definition steadyNS.H:221
Eigen::MatrixXd BC3_matrix
PPE BC3.
Definition steadyNS.H:200
Eigen::Tensor< double, 3 > C_tensor
Diffusion term.
Definition steadyNS.H:170
autoPtr< volVectorField > _U0
Initial Velocity field (for restart purposes)
Definition steadyNS.H:278
Eigen::Tensor< double, 3 > convective_term_tens_cache(label NUmodes, label NPmodes, label NSUPmodes)
Export convective term as a tensor using the cached procedure.
Definition steadyNS.C:1038
void forcesMatrices(label NUmodes, label NPmodes, label NSUPmodes)
Compute lift and drag matrices.
Definition steadyNS.C:2051
autoPtr< simpleControl > _simple
simpleControl
Definition steadyNS.H:293
surfaceScalarModes L_PHImodes
List of pointers containing the total number of flux modes.
Definition steadyNS.H:122
PtrList< volScalarField > Pfield
List of pointers used to form the pressure snapshots matrix.
Definition steadyNS.H:86
volVectorModes supmodes
List of pointers used to form the supremizer modes.
Definition steadyNS.H:104
autoPtr< surfaceScalarField > _phi0
Initial Flux (for restart purposes)
Definition steadyNS.H:305
List< Eigen::MatrixXd > bcVelocityVec(label NUmodes, label NSUPmodes)
Boundary integral modes on boundary used by the penaly method.
Definition steadyNS.C:1487
List< Eigen::MatrixXd > boundary_vector_convection_consistent(label NUmodes, label NSUPmodes)
Boundary vector convection term - Consistent Flux Method.
Definition steadyNS.C:1980
Eigen::MatrixXd W_matrix
Mass Matrix New Time Step - Consistent Flux Method.
Definition steadyNS.H:206
Eigen::MatrixXd mass_matrix_oldtime_consistent(label NUmodes, label NPmodes, label NSUPmodes)
Mass Matrix old time step (consistent flux method)
Definition steadyNS.C:1822
List< Eigen::MatrixXd > pressure_gradient_term_linsys_diff(label NPmodes)
Laplacian of pressure Linear System - Diffusion term.
Definition steadyNS.C:1787
autoPtr< fv::options > _fvOptions
fvOptions
Definition steadyNS.H:296
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.
Definition steadyNS.C:1452
void solvesupremizer(word type="snapshots")
solve the supremizer either with the use of the pressure snaphots or the pressure modes
Definition steadyNS.C:137
autoPtr< Time > _runTime
Time.
Definition steadyNS.H:299
Eigen::MatrixXd I_matrix
Mass Matrix Old Time Step - Consistent Flux Method.
Definition steadyNS.H:209
~steadyNS()
Definition steadyNS.H:80
volVectorModes Umodes
List of pointers used to form the velocity modes.
Definition steadyNS.H:101
Eigen::MatrixXd diffusive_term_sym(label NUmodes, label NPmodes, label NSUPmodes)
Symetric diffusive Term.
Definition steadyNS.C:909
PtrList< volVectorField > Ufield
List of pointers used to form the velocity snapshots matrix.
Definition steadyNS.H:89
List< Eigen::MatrixXd > boundary_vector_diffusion_consistent(label NUmodes, label NSUPmodes)
Boundary vector diffusion term (consistent flux method)
Definition steadyNS.C:1946
List< Eigen::MatrixXd > LinSysDiff
Projection Peqn onto Pressure modes - Diffusion term.
Definition steadyNS.H:257
autoPtr< dimensionedScalar > dt_dummy
Dummy time step including unit.
Definition steadyNS.H:284
Eigen::MatrixXd diffusive_term_flux_method(label NUmodes, label NPmodes, label NSUPmodes)
Diffusive Flux Method.
Definition steadyNS.C:1556
Eigen::MatrixXd diffusive_term_consistent(label NUmodes, label NPmodes, label NSUPmodes)
Diffusion Term (consistent flux method)
Definition steadyNS.C:1851
Eigen::MatrixXd pressure_BC1(label NPmodes, label NUmodes)
Term N° 1 given by the additional boundary condition using a PPE approach.
Definition steadyNS.C:1309
steadyNS()
Null constructor.
Definition steadyNS.C:40
Eigen::MatrixXd divergence_term(label NUmodes, label NPmodes, label NSUPmodes)
Divergence Term (supremizer approach)
Definition steadyNS.C:1110
List< Eigen::MatrixXd > G_matrix
Divergence of momentum PPE.
Definition steadyNS.H:185
scalar tolerance
Tolerance for the residual of the stationary problems, there is the same tolerance for velocity and p...
Definition steadyNS.H:125
Eigen::MatrixXd mass_term(label NUmodes, label NPmodes, label NSUPmodes)
Mass Term.
Definition steadyNS.C:1084
Eigen::Tensor< double, 3 > divMomentum_cache(label NUmodes, label NPmodes)
Divergence of convective term (PPE approach) using the cached procedure.
Definition steadyNS.C:1205
autoPtr< fvMesh > _mesh
Mesh.
Definition steadyNS.H:290
autoPtr< singlePhaseTransportModel > _laminarTransport
Laminar transport (used by turbulence model)
Definition steadyNS.H:311
label NUmodes
Number of velocity modes used for the projection.
Definition steadyNS.H:143
autoPtr< dimensionedScalar > nu_dummy
Dummy viscocity including unit.
Definition steadyNS.H:287
List< Eigen::MatrixXd > boundary_vector_diffusion(label NUmodes, label NPmodes, label NSUPmodes)
Boundary vector diffusion term.
Definition steadyNS.C:1584
List< Eigen::MatrixXd > LinSysDiv
Projection Peqn onto Pressure modes - Divergence term.
Definition steadyNS.H:254
PtrList< surfaceScalarField > Phifield
List of pointers used to form the flux snapshots matrix.
Definition steadyNS.H:95
PtrList< volVectorField > liftfield
List of pointers used to form the list of lifting functions.
Definition steadyNS.H:110
Eigen::Tensor< double, 3 > convective_term_flux_tens(label NUmodes, label NPmodes, label NSUPmodes)
Convective Term.
Definition steadyNS.C:1676
Eigen::Tensor< double, 3 > convective_term_consistent_tens(label NUmodes, label NPmodes, label NSUPmodes)
Convective Term (consistent flux method)
Definition steadyNS.C:1912
scalar pRefValue
Reference pressure value.
Definition steadyNS.H:320
label pRefCell
Reference pressure cell.
Definition steadyNS.H:317
word fluxMethod
Flux Method.
Definition steadyNS.H:329
volVectorModes L_U_SUPmodes
List of pointers containing the total number of lift, supremizer and velocity modes.
Definition steadyNS.H:119
ITHACAparameters * para
Definition steadyNS.H:82
PtrList< volVectorField > Uomfield
List of pointers used to form the homogeneous velocity snapshots.
Definition steadyNS.H:116
Eigen::MatrixXd pressure_BC3(label NPmodes, label NUmodes)
Term N° 3 given by the additional boundary condition using a PPE approach.
Definition steadyNS.C:1420
Eigen::MatrixXd L_matrix
Convective background / Large scale advection term.
Definition steadyNS.H:176
List< Eigen::MatrixXd > boundary_vector_convection(label NUmodes, label NPmodes, label NSUPmodes)
Boundary vector convection term.
Definition steadyNS.C:1630
label NNutModesOut
Number of nut modes to be calculated.
Definition steadyNS.H:140
Eigen::MatrixXd B_matrix
Diffusion term.
Definition steadyNS.H:160
List< Eigen::MatrixXd > RD_matrix
Boundary term for diffusion term.
Definition steadyNS.H:236
Eigen::MatrixXd D_matrix
Laplacian term PPE.
Definition steadyNS.H:182
autoPtr< IOMRFZoneList > _MRF
MRF variable.
Definition steadyNS.H:314
List< Eigen::MatrixXd > SD_matrix
Boundary term for diffusion term - Consistent Flux Method.
Definition steadyNS.H:242
label NSUPmodes
Number of supremizer modes used for the projection.
Definition steadyNS.H:149
Eigen::Tensor< double, 3 > gTensor
Divergence of momentum PPE.
Definition steadyNS.H:188
label NNutModes
Number of nut modes used for the projection.
Definition steadyNS.H:152
Eigen::MatrixXd KF_matrix
Pressure Gradient Term - Consistent Flux Method.
Definition steadyNS.H:215
Eigen::MatrixXd K_matrix
Gradient of pressure matrix.
Definition steadyNS.H:166
List< Eigen::MatrixXd > C_matrix
Non linear term.
Definition steadyNS.H:169
Eigen::Tensor< double, 3 > convective_term_tens(label NUmodes, label NPmodes, label NSUPmodes)
Export convective term as a tensor.
Definition steadyNS.C:997
autoPtr< incompressible::turbulenceModel > turbulence
Turbulence model.
Definition steadyNS.H:308
List< Eigen::MatrixXd > convective_term(label NUmodes, label NPmodes, label NSUPmodes)
Convective Term.
Definition steadyNS.C:962
Eigen::MatrixXd pressure_gradient_term_consistent(label NUmodes, label NPmodes, label NSUPmodes)
Pressure Gradient Term (consistent flux method)
Definition steadyNS.C:1883
List< Eigen::MatrixXd > pressure_BC2(label NPmodes, label NUmodes)
Term N° 2 given by the additional boundary condition using a PPE approach.
Definition steadyNS.C:1343
Eigen::MatrixXd divergent_convective_background(label NPmodes, label NUmodes, volVectorField vls)
Divergent of Large Scale / Background Advection.
Definition steadyNS.C:1268
label NUmodesOut
Number of velocity modes to be calculated.
Definition steadyNS.H:131
List< Eigen::MatrixXd > LinSysConv
Projection Peqn onto Pressure modes - Convection term.
Definition steadyNS.H:260
PtrList< volVectorField > supfield
List of pointers used to form the supremizer snapshots matrix.
Definition steadyNS.H:92
Eigen::Tensor< double, 3 > divMomentum(label NUmodes, label NPmodes)
Divergence of convective term (PPE approach)
Definition steadyNS.C:1174
List< Eigen::MatrixXd > SC_matrix
Boundary term for convection term - Consistent Flux Method.
Definition steadyNS.H:245
Eigen::MatrixXd pressure_gradient_term(label NUmodes, label NPmodes, label NSUPmodes)
Gradient of pressure.
Definition steadyNS.C:935
Eigen::MatrixXd DF_matrix
Diffusion Term - Consistent Flux Method.
Definition steadyNS.H:212
List< Eigen::MatrixXd > bcVelMat
Boundary term for penalty method - matrix.
Definition steadyNS.H:230
Eigen::MatrixXd P_matrix
Div of velocity.
Definition steadyNS.H:173
List< Eigen::MatrixXd > RC_matrix
Boundary vector for convection term.
Definition steadyNS.H:239
Eigen::MatrixXd BP_matrix
Diffusion term for flux method PPE.
Definition steadyNS.H:233
Eigen::Tensor< double, 3 > Cf_tensor
Convection term for flux method.
Definition steadyNS.H:248
Eigen::MatrixXd L_D_matrix
Divergent convective background / Large scale advection term.
Definition steadyNS.H:179
Eigen::MatrixXd M_matrix
Mass Matrix.
Definition steadyNS.H:163
List< Eigen::MatrixXd > BC2_matrix
PPE BC2.
Definition steadyNS.H:194
autoPtr< volVectorField > Uinl
Initial dummy field with all Dirichlet boundary conditions.
Definition steadyNS.H:281
Eigen::MatrixXd convective_background(label NUmodes, volVectorField vls)
Large Scale / Background Advection.
Definition steadyNS.C:1251
void discretizeThenProject(fileName folder, label NUmodes, label NPmodes, label NSUPmodes=0)
Project using the Discretize-then-project approach.
Definition steadyNS.C:709
void projectSUP(fileName folder, label NUmodes, label NPmodes, label NSUPmodes)
Project using a supremizer approach.
Definition steadyNS.C:556
Eigen::MatrixXd laplacian_pressure(label NPmodes)
Laplacian of pressure term (PPE approach)
Definition steadyNS.C:1286
label NPmodesOut
Number of pressure modes to be calculated.
Definition steadyNS.H:134
surfaceScalarModes Phimodes
List of pointers used to form the flux modes.
Definition steadyNS.H:107
Eigen::MatrixXd mass_matrix_newtime_consistent(label NUmodes, label NPmodes, label NSUPmodes)
Mass Matrix new time step (consistent flux method)
Definition steadyNS.C:2014
autoPtr< volScalarField > _p0
Initial Pressure field (for restart purposes)
Definition steadyNS.H:275
List< Eigen::MatrixXd > bcVelocityMat(label NUmodes, label NSUPmodes)
Boundary integral modes on boundary used by the penaly method.
Definition steadyNS.C:1519
Eigen::Tensor< double, 3 > bc2Tensor
PPE BC2.
Definition steadyNS.H:197
PtrList< volScalarField > liftfieldP
List of pointer used to form the list of lifting functions for the pressure.
Definition steadyNS.H:113
autoPtr< volVectorField > _U
Velocity field.
Definition steadyNS.H:272
Eigen::Tensor< double, 3 > pressureBC2(label NPmodes, label NUmodes)
Term N° 2 given by the additional boundary condition using a PPE approach.
Definition steadyNS.C:1380
Eigen::Tensor< double, 3 > Ci_tensor
Convection term - Consistent Flux Method.
Definition steadyNS.H:251
void liftSolve()
Perform a lift solve.
Definition steadyNS.C:253
List< Eigen::MatrixXd > div_momentum(label NUmodes, label NPmodes)
Divergence of convective term (PPE approach)
Definition steadyNS.C:1138
volScalarModes Pmodes
List of pointers used to form the pressure modes.
Definition steadyNS.H:98
word bcMethod
Boundary Method.
Definition steadyNS.H:326
scalar cumulativeContErr
continuity error
Definition steadyNS.H:323
void reconstructLiftAndDrag(const Eigen::MatrixXd &velCoeffs, const Eigen::MatrixXd &pressureCoeffs, fileName folder)
Method to reconstruct the forces using velocity and pressure coefficients.
Definition steadyNS.C:2227
autoPtr< volScalarField > _p
Pressure field.
Definition steadyNS.H:269
label NSUPmodesOut
Number of supremizer modes to be calculated.
Definition steadyNS.H:137
Header file of the reductionProblem class.