SolidThermalPhaseModel.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) 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::SolidThermalPhaseModel
26 
27 Description
28  Class which represents a solid stationary phase for which the temperature
29  (strictly energy) varies. Returns the energy equation and corrects the
30  thermodynamic model.
31 
32 SourceFiles
33  SolidThermalPhaseModel.C
34 
35 \*---------------------------------------------------------------------------*/
36 
37 #ifndef SolidThermalPhaseModel_H
38 #define SolidThermalPhaseModel_H
39 
40 #include "phaseModel.H"
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 
48 /*---------------------------------------------------------------------------*\
49  Class SolidThermalPhaseModel Declaration
50 \*---------------------------------------------------------------------------*/
51 
52 template<class BasePhaseModel>
54 :
55  public BasePhaseModel
56 {
57  // Thermophysical transport
58 
59  //- Pointer to the solid thermophysical transport model
61  thermophysicalTransport_;
62 
63 
64 public:
65 
66  // Constructors
67 
69  (
70  const phaseSystem& fluid,
71  const word& phaseName,
72  const bool referencePhase,
73  const label index
74  );
75 
76 
77  //- Destructor
78  virtual ~SolidThermalPhaseModel();
79 
80 
81  // Member Functions
82 
83  //- Return whether the phase is isothermal
84  virtual bool isothermal() const;
85 
86  //- Correct the thermodynamics
87  virtual void correctThermo();
88 
89  //- Predict the energy transport e.g. alphat
90  virtual void predictThermophysicalTransport();
91 
92  //- Correct the energy transport e.g. alphat
93  virtual void correctThermophysicalTransport();
94 
95  //- Return the effective thermal conductivity on a patch
96  virtual tmp<scalarField> kappaEff(const label patchi) const;
97 
98  //- Return the source term for the energy equation
99  virtual tmp<fvScalarMatrix> divq(volScalarField& he) const;
100 
101  //- Return the enthalpy equation
102  virtual tmp<fvScalarMatrix> heEqn();
103 };
104 
105 
106 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
107 
108 } // End namespace Foam
109 
110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111 
112 #ifdef NoRepository
113  #include "SolidThermalPhaseModel.C"
114 #endif
115 
116 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
117 
118 #endif
119 
120 // ************************************************************************* //
Generic GeometricField class.
Class which represents a solid stationary phase for which the temperature (strictly energy) varies....
virtual void correctThermo()
Correct the thermodynamics.
virtual void predictThermophysicalTransport()
Predict the energy transport e.g. alphat.
virtual ~SolidThermalPhaseModel()
Destructor.
virtual void correctThermophysicalTransport()
Correct the energy transport e.g. alphat.
virtual bool isothermal() const
Return whether the phase is isothermal.
SolidThermalPhaseModel(const phaseSystem &fluid, const word &phaseName, const bool referencePhase, const label index)
virtual tmp< fvScalarMatrix > heEqn()
Return the enthalpy equation.
virtual tmp< scalarField > kappaEff(const label patchi) const
Return the effective thermal conductivity on a patch.
virtual tmp< fvScalarMatrix > divq(volScalarField &he) const
Return the source term for the energy equation.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
Class to represent a system of phases and model interfacial transfers between them.
Definition: phaseSystem.H:73
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
label patchi
Namespace for OpenFOAM.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
thermo he()