multicomponentFluid.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2022-2023 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::solvers::multicomponentFluid
26 
27 Description
28  Solver module for steady or transient turbulent flow of compressible
29  multicomponent fluids with optional mesh motion and change.
30 
31  Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
32  pseudo-transient and steady simulations.
33 
34  Optional fvModels and fvConstraints are provided to enhance the simulation
35  in many ways including adding various sources, chemical reactions,
36  combustion, Lagrangian particles, radiation, surface film etc. and
37  constraining or limiting the solution.
38 
39  Reference:
40  \verbatim
41  Greenshields, C. J., & Weller, H. G. (2022).
42  Notes on Computational Fluid Dynamics: General Principles.
43  CFD Direct Ltd.: Reading, UK.
44  \endverbatim
45 
46 SourceFiles
47  multicomponentFluid.C
48 
49 See also
50  Foam::solvers::fluidSolver
51  Foam::solvers::isothermalFluid
52 
53 \*---------------------------------------------------------------------------*/
54 
55 #ifndef multicomponentFluid_H
56 #define multicomponentFluid_H
57 
58 #include "isothermalFluid.H"
60 #include "combustionModel.H"
62 #include "multivariateScheme.H"
63 
64 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
65 
66 namespace Foam
67 {
68 namespace solvers
69 {
70 
71 /*---------------------------------------------------------------------------*\
72  Class multicomponentFluid Declaration
73 \*---------------------------------------------------------------------------*/
74 
76 :
77  public isothermalFluid
78 {
79 
80 protected:
81 
82  // Thermophysical properties
83 
85 
86 
87  // Composition
88 
90 
91 
92  // Reactions
93 
96 
97 
98  // Thermophysical transport
99 
102 
103 
104 private:
105 
106  // Private Member Functions
107 
108  //- Set rDeltaT for LTS
109  virtual void setRDeltaT();
110 
111 
112 public:
113 
114  // Public Data
115 
116  //- Reference to the fluid thermophysical properties
118 
119  //- Reference to the composition
120  const PtrList<volScalarField>& Y;
121 
122 
123  //- Runtime type information
124  TypeName("multicomponentFluid");
125 
126 
127  // Constructors
128 
129  //- Construct from region mesh
131 
132  //- Disallow default bitwise copy construction
133  multicomponentFluid(const multicomponentFluid&) = delete;
134 
135 
136  //- Destructor
137  virtual ~multicomponentFluid();
138 
139 
140  // Member Functions
141 
142  //- Called at the start of the PIMPLE loop
143  virtual void prePredictor();
144 
145  //- Construct and solve the energy equation,
146  // convert to temperature
147  // and update thermophysical and transport properties
148  virtual void thermophysicalPredictor();
149 
150  //- Correct the momentum and thermophysical transport modelling
151  virtual void postCorrector();
152 
153 
154  // Member Operators
155 
156  //- Disallow default bitwise assignment
157  void operator=(const multicomponentFluid&) = delete;
158 };
159 
160 
161 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
162 
163 } // End namespace solvers
164 } // End namespace Foam
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #endif
169 
170 // ************************************************************************* //
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Definition: PtrList.H:75
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
Base-class for multi-component fluid thermodynamic properties.
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:99
Abstract base class for multi-variate surface interpolation schemes.
const fvMesh & mesh
Region mesh.
Definition: solver.H:101
Solver module for steady or transient turbulent flow of compressible isothermal fluids with optional ...
Solver module for steady or transient turbulent flow of compressible multicomponent fluids with optio...
virtual void thermophysicalPredictor()
Construct and solve the energy equation,.
const PtrList< volScalarField > & Y
Reference to the composition.
virtual void prePredictor()
Called at the start of the PIMPLE loop.
fluidMulticomponentThermo & thermo_
PtrList< volScalarField > & Y_
autoPtr< fluidMulticomponentThermophysicalTransportModel > thermophysicalTransport
virtual void postCorrector()
Correct the momentum and thermophysical transport modelling.
void operator=(const multicomponentFluid &)=delete
Disallow default bitwise assignment.
autoPtr< combustionModel > reaction
const fluidMulticomponentThermo & thermo
Reference to the fluid thermophysical properties.
TypeName("multicomponentFluid")
Runtime type information.
multicomponentFluid(fvMesh &mesh)
Construct from region mesh.
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields
Namespace for OpenFOAM.