incompressibleInterPhaseTransportModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2020 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::incompressibleInterPhaseTransportModel
28 
29 Description
30  Transport model selection class for the incompressibleInterFoam family of
31  solvers.
32 
33  By default the standard mixture transport modelling approach is used in
34  which a single momentum stress model (laminar, non-Newtonian, LES or RAS) is
35  constructed for the mixture. However if the \c simulationType in
36  constant/turbulenceProperties is set to \c twoPhaseTransport the alternative
37  Euler-Euler two-phase transport modelling approach is used in which separate
38  stress models (laminar, non-Newtonian, LES or RAS) are instantiated for each
39  of the two phases allowing for different modeling for the phases.
40 
41 SourceFiles
42  incompressibleInterPhaseTransportModel.C
43 
44 \*---------------------------------------------------------------------------*/
45 
46 #ifndef incompressibleInterPhaseTransportModel_H
47 #define incompressibleInterPhaseTransportModel_H
48 
49 
52 #include "demandDrivenEntry.H"
53 
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55 
56 namespace Foam
57 {
58 
59 /*---------------------------------------------------------------------------*\
60  Class incompressibleInterPhaseTransportModel Declaration
61 \*---------------------------------------------------------------------------*/
62 
63 template<class Mixture>
65 {
66  // Private data
67 
68  //- Enum to select uniform or variable rho transport modelling
69  enum rhoType
70  {
71  UNIFORM,
72  VARIABLE
73  };
74 
75  //- Rho type
76  label rhoType_;
77 
78  //- Mixture volumetric flux
79  const surfaceScalarField& phi_;
80 
81  //- Mixture mass flux
82  const surfaceScalarField& rhoPhi_;
83 
84  //- Mixture incompressible turbulence with constant rho
86 
87  //- Mixture incompressible turbulence with variable rho
89  rhoIncTurbulence_;
90 
91 
92  // Private Member Functions
93 
94  //- No copy construct
96  (
98  ) = delete;
99 
100  //- No copy assignment
101  void operator=(const incompressibleInterPhaseTransportModel&) = delete;
102 
103 
104 public:
105 
106  TypeName("incompressibleInterPhaseTransportModel");
107 
108  // Constructors
109 
110  //- Construct from components
112  (
113  const volScalarField& rho,
114  const volVectorField& U,
115  const surfaceScalarField& phi,
116  const surfaceScalarField& rhoPhi,
117  const Mixture&
118  );
119 
120 
121  //- Destructor
122  virtual ~incompressibleInterPhaseTransportModel() = default;
123 
124 
125  // Member Functions
126 
127  //- Return the effective momentum stress divergence
129  (
130  const volScalarField& rho,
132  ) const;
133 
134  //- Correct the phase or mixture transport models
135  void correct();
136 };
137 
138 
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 
141 } // End namespace Foam
142 
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 
145 #ifdef NoRepository
147 #endif
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 #endif
152 
153 // ************************************************************************* //
rhoPhi
rhoPhi
Definition: rhoEqn.H:10
VoFphaseTurbulentTransportModel.H
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
demandDrivenEntry.H
turbulentTransportModel.H
rho
rho
Definition: readInitialConditions.H:88
Foam::incompressibleInterPhaseTransportModel::~incompressibleInterPhaseTransportModel
virtual ~incompressibleInterPhaseTransportModel()=default
Destructor.
Foam::incompressibleInterPhaseTransportModel::correct
void correct()
Correct the phase or mixture transport models.
Definition: incompressibleInterPhaseTransportModel.C:134
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
U
U
Definition: pEqn.H:72
Foam::incompressibleInterPhaseTransportModel::divDevRhoReff
tmp< fvVectorMatrix > divDevRhoReff(const volScalarField &rho, volVectorField &U) const
Return the effective momentum stress divergence.
Definition: incompressibleInterPhaseTransportModel.C:118
incompressibleInterPhaseTransportModel.C
Foam::incompressibleInterPhaseTransportModel::TypeName
TypeName("incompressibleInterPhaseTransportModel")
Foam::incompressibleInterPhaseTransportModel
Transport model selection class for the incompressibleInterFoam family of solvers.
Definition: incompressibleInterPhaseTransportModel.H:63
Foam::GeometricField< scalar, fvsPatchField, surfaceMesh >