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.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
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
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.
PtrList< volScalarField > rAUs
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 void solve()
Solve for the phase fractions.
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.
Ordered or unordered hashing of word pair.
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.
blendingMethodTable blendingMethods_
Blending methods.
const surfaceScalarField & phi() const
Return the mixture 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
Return the mixture velocity.
const modelType & lookupSubModel(const phasePair &key) const
Return 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
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
const phaseModelPartialList & multiComponentPhases() const
Return the models for phases that have multiple species.
surfaceScalarField phi_
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 fluid properties other than those listed below.
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.
virtual tmp< volScalarField > dmdt(const phasePairKey &key) const
Return the mass transfer rate for a pair.
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Mesh data needed to do the Finite Volume discretisation.
const fvMesh & mesh() const
Return the mesh.
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.
PtrList< surfaceScalarField > rAUfs
An ordered pair of two objects of type <T> with first() and second() elements.
A HashTable of pointers to objects of type <T>.
PtrListDictionary< phaseModel > phaseModelList
List of MRF zones with IO functionality. MRF zones are specified by a list of dictionary entries,...
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 phaseModelList & phases() const
Return the phase models.
Class to represent a system of phases and model interfacial transfers between them.
HashPtrTable< fvVectorMatrix > momentumTransferTable
tmp< volScalarField > byDt(const volScalarField &vf)
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.