36 #ifndef twoPhaseSystem_H 37 #define twoPhaseSystem_H 40 #include "phaseModel.H" 41 #include "phasePair.H" 42 #include "orderedPhasePair.H" 45 #include "dragModel.H" 52 class virtualMassModel;
53 class heatTransferModel;
55 class wallLubricationModel;
56 class turbulentDispersionModel;
59 template<
class modelType>
class BlendedInterfacialModel;
87 tmp<surfaceScalarField> pPrimeByA_;
90 autoPtr<phasePair> pair_;
93 autoPtr<orderedPhasePair> pair1In2_;
96 autoPtr<orderedPhasePair> pair2In1_;
99 HashTable<autoPtr<blendingMethod>> blendingMethods_;
102 autoPtr<BlendedInterfacialModel<dragModel>> drag_;
105 autoPtr<BlendedInterfacialModel<virtualMassModel>> virtualMass_;
108 autoPtr<BlendedInterfacialModel<heatTransferModel>> heatTransfer_;
111 autoPtr<BlendedInterfacialModel<liftModel>> lift_;
114 autoPtr<BlendedInterfacialModel<wallLubricationModel>>
118 autoPtr<BlendedInterfacialModel<turbulentDispersionModel>>
119 turbulentDispersion_;
125 tmp<surfaceScalarField> calcPhi()
const;
143 tmp<volScalarField>
rho()
const;
146 tmp<volVectorField>
U()
const;
149 tmp<volScalarField>
Kd()
const;
152 tmp<surfaceScalarField>
Kdf()
const;
155 tmp<volScalarField>
Vm()
const;
158 tmp<surfaceScalarField>
Vmf()
const;
161 tmp<volScalarField>
Kh()
const;
164 tmp<volVectorField>
F()
const;
167 tmp<surfaceScalarField>
Ff()
const;
171 tmp<volScalarField>
D()
const;
188 template<
class modelType>
192 template<
class modelType>
195 const phaseModel& dispersed,
196 const phaseModel& continuous
203 inline const fvMesh&
mesh()
const;
206 inline const phaseModel&
phase1()
const;
209 inline phaseModel&
phase1();
212 inline const phaseModel&
phase2()
const;
215 inline phaseModel&
phase2();
218 inline const phaseModel&
otherPhase(
const phaseModel& phase)
const;
233 inline tmp<surfaceScalarField>&
pPrimeByA();
virtual ~twoPhaseSystem()
Destructor.
phaseModel & phase1_
Phase model 1.
const phaseModel & phase1() const
Return phase model 1.
tmp< volScalarField > Kd() const
Return the drag coefficient.
tmp< volVectorField > F() const
Return the combined force (lift + wall-lubrication)
tmp< volVectorField > U() const
Return the mixture velocity.
void correct()
Correct two-phase properties other than turbulence.
tmp< surfaceScalarField > & pPrimeByA()
Return non-const access to the dispersion diffusivity.
tmp< volScalarField > rho() const
Return the mixture density.
tmp< surfaceScalarField > Ff() const
Return the combined face-force (lift + wall-lubrication)
tmp< volScalarField > sigma() const
Return the surface tension coefficient.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
const fvMesh & mesh() const
Return the mesh.
tmp< volScalarField > D() const
Return the turbulent diffusivity.
const modelType & lookupSubModel(const phasePair &key) const
Access a sub model between a phase pair.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
virtual void solve()
Solve for the phase fractions.
const phaseModel & phase2() const
Return phase model 2.
tmp< surfaceScalarField > Vmf() const
Return the face virtual mass coefficient.
phaseModel & phase2_
Phase model 2.
tmp< volScalarField > Vm() const
Return the virtual mass coefficient.
const volScalarField & dgdt() const
Return the dilatation term.
twoPhaseSystem(const fvMesh &)
Construct from fvMesh.
bool read()
Read base phaseProperties dictionary.
const uniformDimensionedVectorField & g
tmp< volScalarField > Kh() const
Return the heat transfer coefficient.
const phaseModel & otherPhase(const phaseModel &phase) const
Return the phase not given as an argument.
tmp< surfaceScalarField > Kdf() const
Return the face drag coefficient.
void correctTurbulence()
Correct two-phase turbulence.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
auto key(const Type &t) -> typename std::enable_if< std::is_enum< Type >::value, typename std::underlying_type< Type >::type >::type
const surfaceScalarField & phi() const
Return the mixture flux.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField