Go to the documentation of this file.
41 #include "phaseModel.H"
42 #include "phasePair.H"
43 #include "orderedPhasePair.H"
57 namespace multiphaseInter
59 class surfaceTensionModel;
183 template<
class modelType>
196 template<
class modelType>
210 template<
class modelType>
213 const word& modelName,
224 template<
class modelType>
227 const word& modelName,
239 template<
class modelType>
242 const word& modelName,
553 const word speciesName
563 virtual void solve() = 0;
601 template <
class modelType>
605 template <
class modelType>
List< label > labelList
A List of labels.
const phasePairTable & totalPhasePairs() const
Constant access the total phase pairs.
tmp< surfaceScalarField > surfaceTensionForce() const
Calculate surface tension of the mixture.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
virtual tmp< volScalarField > Cpv() const
Heat capacity at constant pressure/volume [J/kg/K].
virtual tmp< volScalarField > Cv() const
Return Cv of the mixture.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
virtual tmp< volScalarField > alphahe() const
Thermal diffusivity for energy of mixture [kg/m/s].
virtual bool includeVolChange()=0
Add volume change in pEq.
interfacePorousModelTable interfacePorousModelTable_
Interface porous models.
Hashing functor for phasePairKey.
virtual tmp< volScalarField > nu() const
Kinematic viscosity of mixture [m^2/s].
A class for handling words, derived from Foam::string.
virtual volScalarField & p()
Pressure [Pa].
surfaceTensionModelTable surfaceTensionModels_
Surface tension models.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
A class for managing temporary objects.
tmp< volScalarField > nearInterface() const
Near Interface of alpha'n.
HashTable< autoPtr< phasePair >, phasePairKey, phasePairKey::hash > phasePairTable
const volScalarField & alpha2
tmp< surfaceScalarField > nHatf(const volScalarField &alpha1, const volScalarField &alpha2) const
Interface normal volume vector.
const dimensionedScalar & Prt() const
Return Prandt number.
phaseSystem(const fvMesh &mesh)
Construct from fvMesh.
auto key(const Type &t) -> typename std::enable_if< std::is_enum< Type >::value, typename std::underlying_type< Type >::type >::type
void createSubModels(const dictTable &modelDicts, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables using pair keys.
virtual tmp< scalarField > THE(const scalarField &h, const scalarField &p, const scalarField &T0, const labelList &cells) const
Temperature from enthalpy/internal energy for cell-set.
const surfaceScalarField & phi() const
Constant access to the total flux.
Abstract base-class for fluid and solid thermodynamic properties.
Forward declarations of fvMatrix specializations.
tmp< volVectorField > U() const
Mixture U.
const modelType & lookupSubModel(const phasePair &key) const
Access a sub model between a phase pair.
virtual tmp< volScalarField > mu() const
Dynamic viscosity of mixture [kg/m/s].
void generatePairsTable()
Generate pair table.
const volScalarField & alpha1
virtual ~phaseSystem()
Destructor.
HashTable< dictionary, phasePairKey, phasePairKey::hash > dictTable
virtual tmp< volScalarField > dmdt(const phasePairKey &key) const =0
Return interfacial source mass rate per phase pair.
volScalarField mu_
Dynamic viscocity.
virtual tmp< volScalarField > gamma() const
Gamma = Cp/Cv [].
virtual volScalarField & he()
Return access to the internal energy field [J/Kg].
tmp< surfaceVectorField > nHatfv(const volScalarField &alpha1, const volScalarField &alpha2) const
Interface normal surface vector.
tmp< volScalarField > K(const volScalarField &alpha1, const volScalarField &alpha2) const
Interface curvature.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
surfaceScalarField phi_
Mixture total volumetric flux.
const dimensionedScalar h
Planck constant.
virtual tmp< volScalarField > alphaEff(const volScalarField &alphat) const
Effective thermal diffusivity of mixture [kg/m/s].
virtual tmp< volScalarField > CpByCpv() const
Heat capacity ratio [].
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 tmp< volScalarField > kappaEff(const volScalarField &kappat) const
Effective thermal diffusivity for temperature.
phasePairTable totalPhasePairs_
Total ordered phase pairs in the system.
virtual void correctMassSources(const volScalarField &T)=0
Correct mass sources.
virtual void correct()
Correct the mixture thermos.
const fvMesh & mesh_
Reference to the mesh.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
An ordered or unorder pair of phase names. Typically specified as follows.
virtual word thermoName() const
Return the name of the thermo physics.
virtual tmp< volScalarField > Cp() const
Return Cp of the mixture.
virtual tmp< volScalarField > W() const
Molecular weight [kg/kmol] of the mixture.
HashTable< volScalarField::Internal > SuSpTable
virtual tmp< volScalarField > hc() const
Chemical enthalpy of the mixture [J/kg].
Mesh data needed to do the Finite Volume discretisation.
surfaceScalarField rhoPhi_
Mixture total mass flux.
virtual tmp< volScalarField > kappa() const
Thermal diffusivity for temperature of mixture [J/m/s/K].
wordList phaseNames_
Phase names.
void calcMu()
Calculate and return the laminar viscosity.
const fvMesh & mesh() const
Return mesh.
HashTable< autoPtr< porousModel >, phasePairKey, phasePairKey::hash > interfacePorousModelTable
virtual void solve()=0
Solve for the phase transport equations.
A HashTable similar to std::unordered_map.
dimensionedScalar Prt_
Turbulent Prandt number.
TypeName("phaseSystem")
Runtime type information.
virtual tmp< fvScalarMatrix > volTransfer(const volScalarField &p)=0
Return the volumetric rate transfer matrix.
virtual void correctTurbulence()
Correct the turbulence.
Base-class for all transport models used by the compressible turbulence models.
phaseModelTable phaseModels_
Phase models.
virtual tmp< volScalarField > surfaceTensionCoeff(const phasePairKey &key) const
Return the surface tension coefficient.
virtual const volScalarField & T() const
Temperature [K].
static const word phasePropertiesName
Default name of the phase properties dictionary.
virtual bool isochoric() const
Return true if the equation of state is isochoric for all phasses.
HashTable< autoPtr< phaseModel > > generatePhaseModels(const wordList &names) const
Generate the phases.
HashTable< autoPtr< phaseModel > > phaseModelTable
const surfaceScalarField & rhoPhi() const
Constant access to the mixture mass flux.
static tmp< T > New(Args &&... args)
Construct tmp of T with forwarding arguments.
void addInterfacePorosity(fvVectorMatrix &UEqn)
Add interface porosity on phasePair.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
virtual void massSpeciesTransfer(const phaseModel &phase, volScalarField::Internal &Su, volScalarField::Internal &Sp, const word speciesName)=0
Calculate mass transfer for species.
virtual tmp< scalarField > rhoEoS(const scalarField &p, const scalarField &T, const labelList &cells) const
Density from pressure and temperature.
HashTable< autoPtr< multiphaseInter::surfaceTensionModel >, phasePairKey, phasePairKey::hash > surfaceTensionModelTable
phasePairTable phasePairs_
Phase pairs.
tmp< surfaceScalarField > generatePhi(const HashTable< autoPtr< phaseModel >> &phaseModels) const
Generate the mixture flux.
const phaseModelTable & phases() const
Constant access the phases.
Class to represent a system of phases and model interfacial transfers between them.
static const GeometricField< scalar, fvPatchField, volMesh > & null()
Return a null geometric field.
virtual tmp< volScalarField > rho() const
Return the mixture density.
List< word > names(const UPtrList< T > &list, const UnaryMatchPredicate &matcher)
virtual bool incompressible() const
Return true if the equation of state is incompressible for all.
virtual bool read()
Read base phaseProperties dictionary.
virtual tmp< volScalarField > coeffs(const word &key) const
Return coefficients (1/rho)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
void generatePairs(const dictTable &modelDicts)
Generate pairs.
virtual void alphaTransfer(SuSpTable &Su, SuSpTable &Sp)=0
Calculate mass transfer for alpha's.