Go to the documentation of this file.
43 #include "phaseModel.H"
44 #include "phasePair.H"
45 #include "orderedPhasePair.H"
62 template<
class modelType>
class BlendedInterfacialModel;
63 class surfaceTensionModel;
64 class aspectRatioModel;
184 template<
class modelType>
197 template<
class modelType>
200 const word& modelName,
210 template<
class modelType>
213 const word& modelName,
220 const bool correctFixedFluxBCs =
true
224 template<
class modelType>
227 const word& modelName,
234 const bool correctFixedFluxBCs =
true
239 template<
class GeoField>
243 const word& fieldName,
250 template<
class GeoField>
254 const word& fieldName,
255 const GeoField&
field,
261 template<
class GeoField>
265 const word& fieldName,
272 template<
class GeoField>
276 const word& fieldName,
277 const GeoField&
field,
363 template<
class modelType>
367 template<
class modelType>
371 template<
class modelType>
379 template<
class modelType>
387 template<
class modelType>
391 template<
class modelType>
402 template<
class>
class PatchField,
416 template<
class>
class PatchField,
509 const bool includeVirtualMass =
false
526 virtual void solve();
phaseModelPartialList stationaryPhaseModels_
Stationary phase models.
phaseModelList phaseModels_
Phase models.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
virtual autoPtr< momentumTransferTable > momentumTransfer()=0
Return the momentum transfer matrices for the cell-based.
UPtrList< phaseModel > phaseModelPartialList
HashTable< autoPtr< phasePair >, phasePairKey, phasePairKey::hash > phasePairTable
PtrList< volScalarField > rAUs
const phaseModelPartialList & anisothermalPhases() const
Return the models for phases that have variable temperature.
tmp< surfaceScalarField > calcPhi(const phaseModelList &phaseModels) const
Calculate and return the mixture flux.
A class for handling words, derived from Foam::string.
IOMRFZoneList MRF_
Optional MRF zones.
virtual PtrList< surfaceScalarField > phiFs(const PtrList< volScalarField > &rAUs)=0
Return the force fluxes for the cell-based algorithm.
virtual autoPtr< massTransferTable > massTransfer() const =0
Return the mass transfer matrices.
surfaceTensionModelTable surfaceTensionModels_
Surface tension models.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
virtual PtrList< surfaceScalarField > phiKdPhifs(const PtrList< surfaceScalarField > &rAUfs) const =0
Return the force fluxes for the face-based algorithm.
virtual void partialEliminationf(const PtrList< surfaceScalarField > &rAUfs)=0
Solve the drag system for the new fluxes.
A class for managing temporary objects.
virtual PtrList< surfaceScalarField > phiKdPhis(const PtrList< volScalarField > &rAUs) const =0
Return the force fluxes for the cell-based algorithm.
tmp< volScalarField > sigma(const phasePairKey &key) const
Return the surface tension coefficient for a pair.
HashTable< autoPtr< phasePair >, phasePairKey, phasePairKey::hash > phasePairTable
virtual PtrList< volVectorField > KdUByAs(const PtrList< volScalarField > &rAUs) const =0
Return the explicit part of the drag force.
phaseModelPartialList movingPhaseModels_
Moving phase models.
virtual autoPtr< momentumTransferTable > momentumTransferf()=0
Return the momentum transfer matrices for the face-based.
void fillFields(const word &name, const dimensionSet &dims, PtrList< GeometricField< Type, PatchField, GeoMesh >> &fieldList) const
Fill up gaps in a phase-indexed list of fields with zeros.
phaseSystem(const fvMesh &mesh)
Construct from fvMesh.
const volScalarField & dpdt() const
Return the rate of change of the pressure.
void createSubModels(const dictTable &modelDicts, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables using pair keys.
blendingMethodTable blendingMethods_
Blending methods.
const surfaceScalarField & phi() const
Constant access to the total flux.
void addField(const phaseModel &phase, const word &fieldName, tmp< GeoField > field, PtrList< GeoField > &fieldList) const
Add the field to a phase-indexed list, with the given name,.
Forward declarations of fvMatrix specializations.
virtual const HashPtrTable< surfaceScalarField > & DByAfs() const =0
Return the phase diffusivities divided by the momentum.
tmp< volVectorField > U() const
Mixture U.
const modelType & lookupSubModel(const phasePair &key) const
Access a sub model between a phase pair.
Dimension set for the base types.
virtual ~phaseSystem()
Destructor.
HashTable< autoPtr< aspectRatioModel >, phasePairKey, phasePairKey::hash > aspectRatioModelTable
HashTable< dictionary, phasePairKey, phasePairKey::hash > dictTable
virtual tmp< volScalarField > dmdt(const phasePairKey &key) const =0
Return interfacial source mass rate per phase pair.
const word & name() const
virtual PtrList< volScalarField > dmdts() const
Return the mass transfer rates for each phase.
bool foundSubModel(const phasePair &key) const
Check availability of a sub model for a given phase pair.
HashPtrTable< fvScalarMatrix > heatTransferTable
Ordered or unordered hashing of word pair.
const phaseModelPartialList & multiComponentPhases() const
Return the models for phases that have multiple species.
surfaceScalarField phi_
Mixture total volumetric flux.
void generatePairsAndSubModels(const word &modelName, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables.
virtual autoPtr< heatTransferTable > heatTransfer() const =0
Return the heat transfer matrices.
virtual void correctKinematics()
Correct the kinematics.
Hashing function for string and derived string classes.
virtual void correct()
Correct the mixture thermos.
const fvMesh & mesh_
Reference to the mesh.
phaseModelPartialList anisothermalPhaseModels_
Anisothermal phase models.
HashTable< autoPtr< blendingMethod >, word, word::hash > blendingMethodTable
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
virtual PtrList< surfaceScalarField > ddtCorrByAs(const PtrList< volScalarField > &rAUs, const bool includeVirtualMass=false) const =0
Return the flux corrections for the cell-based algorithm.
fv::options & fvOptions() const
Access the fvOptions.
virtual void partialElimination(const PtrList< volScalarField > &rAUs)=0
Solve the drag system for the new velocities and fluxes.
const BlendedInterfacialModel< modelType > & lookupBlendedSubModel(const phasePair &key) const
Return a blended sub model between a phase pair.
virtual void correctEnergyTransport()
Correct the energy transport e.g. alphat.
HashTable< autoPtr< surfaceTensionModel >, phasePairKey, phasePairKey::hash > surfaceTensionModelTable
const phaseModelPartialList & movingPhases() const
Return the models for phases that are moving.
static const word propertiesName
Default name of the phase properties dictionary.
virtual PtrList< surfaceScalarField > phiFfs(const PtrList< surfaceScalarField > &rAUfs)=0
Return the force fluxes for the face-based algorithm.
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Mesh data needed to do the Finite Volume discretisation.
const fvMesh & mesh() const
Return mesh.
virtual void solve()=0
Solve for the phase transport equations.
A HashTable similar to std::unordered_map.
HashPtrTable< fvScalarMatrix > massTransferTable
const phasePairTable & phasePairs() const
Return the phase pairs.
TypeName("phaseSystem")
Runtime type information.
volScalarField dpdt_
Rate of change of pressure.
virtual PtrList< surfaceScalarField > AFfs() const =0
Return the implicit force coefficients for the face-based.
virtual void correctTurbulence()
Correct the turbulence.
aspectRatioModelTable aspectRatioModels_
Aspect ratio models.
phaseModelTable phaseModels_
Phase models.
An ordered pair of two objects of type <T> with first() and second() elements.
A HashTable of pointers to objects of type <T>, with deallocation management of the pointers.
PtrListDictionary< phaseModel > phaseModelList
List of MRF zones with IO functionality. MRF zones are specified by a list of dictionary entries,...
PtrList< surfaceScalarField > rAUfs
virtual void correctThermo()
Correct the thermodynamics.
phasePairTable phasePairs_
Phase pairs.
bool foundBlendedSubModel(const phasePair &key) const
Check availability of a blended sub model for a given phase pair.
const phaseModelTable & phases() const
Constant access the phases.
HashPtrTable< fvVectorMatrix > momentumTransferTable
tmp< volScalarField > byDt(const volScalarField &vf)
virtual tmp< volScalarField > rho() const
Return the mixture density.
phaseModelPartialList multiComponentPhaseModels_
Multi-component phase models.
const phaseModelPartialList & stationaryPhases() const
Return the models for phases that are stationary.
virtual bool read()
Read base phaseProperties dictionary.
tmp< volScalarField > E(const phasePairKey &key) const
Return the aspect-ratio for a pair.
void generatePairs(const dictTable &modelDicts)
Generate pairs.
const IOMRFZoneList & MRF() const
Return MRF zones.