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 
91 
92 
93  // Reactions
94 
97 
98 
99  // Thermophysical transport
100 
103 
104 
105 private:
106 
107  // Private Member Functions
108 
109  //- Set rDeltaT for LTS
110  virtual void setRDeltaT();
111 
112 
113 public:
114 
115  // Public Data
116 
117  //- Reference to the fluid thermophysical properties
119 
120  //- Reference to the composition
121  const PtrList<volScalarField>& Y;
122 
123 
124  //- Runtime type information
125  TypeName("multicomponentFluid");
126 
127 
128  // Constructors
129 
130  //- Construct from region mesh
132 
133  //- Disallow default bitwise copy construction
134  multicomponentFluid(const multicomponentFluid&) = delete;
135 
136 
137  //- Destructor
138  virtual ~multicomponentFluid();
139 
140 
141  // Member Functions
142 
143  //- Called at the start of the PIMPLE loop
144  virtual void prePredictor();
145 
146  //- Construct and solve the energy equation,
147  // convert to temperature
148  // and update thermophysical and transport properties
149  virtual void thermophysicalPredictor();
150 
151  //- Correct the momentum and thermophysical transport modelling
152  virtual void postCorrector();
153 
154 
155  // Member Operators
156 
157  //- Disallow default bitwise assignment
158  void operator=(const multicomponentFluid&) = delete;
159 };
160 
161 
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 
164 } // End namespace solvers
165 } // End namespace Foam
166 
167 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 
169 #endif
170 
171 // ************************************************************************* //
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
Specialisation of basicMixture for a mixture consisting of a number for molecular species.
Base-class for multi-component fluid thermodynamic properties.
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:101
Abstract base class for multi-variate surface interpolation schemes.
const fvMesh & mesh
Region mesh.
Definition: solver.H:94
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.