fluidMulticomponentLagrangianThermo.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) 2026 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::fluidMulticomponentLagrangianThermo
26 
27 Description
28  ...
29 
30 SourceFiles
31  fluidMulticomponentLagrangianThermo.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef fluidMulticomponentLagrangianThermo_H
36 #define fluidMulticomponentLagrangianThermo_H
37 
38 #include "fluidLagrangianThermo.H"
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 namespace Foam
44 {
45 
46 /*---------------------------------------------------------------------------*\
47  Class fluidMulticomponentLagrangianThermo Declaration
48 \*---------------------------------------------------------------------------*/
49 
51 :
52  virtual public fluidLagrangianThermo,
53  virtual public multicomponentLagrangianThermo
54 {
55 public:
56 
57  // Public Classes
58 
59  //- Forward declare the composite class
60  class composite;
61 
62 
63  // Public Typedefs
64 
65  //- The derived type
66  template<class MixtureType>
67  using DerivedThermoType =
69  <
71  <
73  <
74  MixtureType,
75  composite
76  >
77  >
78  >;
79 
80  //- The derived name
81  static word derivedThermoName()
82  {
83  return "heRhoThermo";
84  }
85 
86 
87  //- Runtime type information
88  TypeName("fluidMulticomponentLagrangianThermo");
89 
90 
91  //- Declare run-time constructor selection table
93  (
94  autoPtr,
97  (const LagrangianMesh& mesh, const word& phaseName),
98  (mesh, phaseName)
99  );
100 
101 
102  // Selectors
103 
104  //- Select a fluid multicomponent thermo
106  (
107  const LagrangianMesh& mesh,
108  const word& phaseName=word::null
109  );
110 
111 
112  //- Destructor
114 };
115 
116 
117 /*---------------------------------------------------------------------------*\
118  Class fluidMulticomponentLagrangianThermo::composite Declaration
119 \*---------------------------------------------------------------------------*/
120 
122 :
127 {
128 public:
129 
130  // Constructors
131 
132  //- Construct from dictionary, mesh and phase name
133  template<class MixtureType>
134  composite
135  (
136  const dictionary& dict,
137  const MixtureType& mixture,
138  const LagrangianMesh& mesh,
139  const word& phaseName
140  )
141  :
145  (
146  dict,
147  mixture.species(),
148  mesh,
149  phaseName
150  )
151  {}
152 };
153 
154 
155 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 
157 } // End namespace Foam
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 #endif
162 
163 // ************************************************************************* //
Lagrangian thermodynamic model implementation and storage of energy. Provides overloads of the functi...
Fluid Lagrangian thermodynamic model implementation.
Class containing Lagrangian geometry and topology.
Multicomponent Lagrangian thermodynamic model implementation.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
LagrangianScalarDynamicField T_
Temperature [K].
virtual const word & phaseName() const
Phase name.
virtual const LagrangianMesh & mesh() const
Return const access to the mesh.
Base-class for Lagrangian fluid and solid thermodynamic models.
virtual const LagrangianMesh & mesh() const =0
Access the mesh.
virtual const word & phaseName() const =0
Access the phase name.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Base-class for fluid Lagrangian thermodynamic models.
composite(const dictionary &dict, const MixtureType &mixture, const LagrangianMesh &mesh, const word &phaseName)
Construct from dictionary, mesh and phase name.
TypeName("fluidMulticomponentLagrangianThermo")
Runtime type information.
declareRunTimeSelectionTable(autoPtr, fluidMulticomponentLagrangianThermo, LagrangianMesh,(const LagrangianMesh &mesh, const word &phaseName),(mesh, phaseName))
Declare run-time constructor selection table.
static autoPtr< fluidMulticomponentLagrangianThermo > New(const LagrangianMesh &mesh, const word &phaseName=word::null)
Select a fluid multicomponent thermo.
Base-class for multicomponent Lagrangian thermodynamic models.
virtual const speciesTable & species() const =0
Return the table of species.
A class for handling words, derived from string.
Definition: word.H:63
static const word null
An empty word.
Definition: word.H:78
Namespace for OpenFOAM.
dictionary dict