45#ifndef Foam_multiphaseEuler_multiphaseSystem_H
46#define Foam_multiphaseEuler_multiphaseSystem_H
50#include "phaseModel.H"
81 using hash = Pair<word>::hasher;
104 friend bool operator==
113 friend bool operator!=
147 scalarCoeffSymmTable;
152 scalarCoeffSymmTable sigmas_;
155 scalarCoeffSymmTable cAlphas_;
157 scalarCoeffTable Cvms_;
186 void correctContactAngle
CGAL::Exact_predicates_exact_constructions_kernel K
const volScalarField & alpha1
const volScalarField & alpha2
GeometricBoundaryField< vector, fvsPatchField, surfaceMesh > Boundary
A HashTable of pointers to objects of type <T>, with deallocation management of the pointers.
A HashTable similar to std::unordered_map.
IOdictionary(const IOobject &io, const dictionary *fallback=nullptr)
Construct given an IOobject and optional fallback dictionary content.
An ordered pair of two objects of type <T> with first() and second() elements.
static int compare(const Pair< T > &a, const Pair< T > &b)
Compare Pairs.
Template dictionary class which manages the storage associated with it.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
const word & name() const
Name function is needed to disambiguate those inherited from regIOobject and dictionary.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
Mesh data needed to do the Finite Volume discretisation.
Name pair for the interface.
Pair< word >::symmHasher symmHash
interfacePair(const word &alpha1Name, const word &alpha2Name)
Pair< word >::hasher hash
interfacePair(const phaseModel &alpha1, const phaseModel &alpha2)
tmp< volScalarField > nearInterface() const
Indicator of the proximity of the interface.
PtrDictionary< phaseModel > & phases()
Return the phases.
HashPtrTable< volScalarField, interfacePair, interfacePair::symmHash > dragCoeffFields
void correct()
Dummy correct.
autoPtr< dragCoeffFields > dragCoeffs() const
Return the drag coefficients for all of the interfaces.
multiphaseSystem(const volVectorField &U, const surfaceScalarField &phi)
Construct from components.
tmp< volScalarField > nu() const
Return the mixture laminar viscosity.
const PtrDictionary< phaseModel > & phases() const
Return the phases.
tmp< surfaceScalarField > surfaceTension(const phaseModel &phase) const
tmp< volScalarField > rho() const
Return the mixture density.
tmp< volScalarField > dragCoeff(const phaseModel &phase, const dragCoeffFields &dragCoeffs) const
Return the sum of the drag coefficients for the given phase.
tmp< volScalarField > Cvm(const phaseModel &phase) const
Return the virtual-mass coefficient for the given phase.
const dragModelTable & dragModels() const
Return the table of drag models.
tmp< volVectorField > Svm(const phaseModel &phase) const
Return the virtual-mass source for the given phase.
virtual ~multiphaseSystem()=default
Destructor.
void solve()
Solve for the mixture phase-fractions.
bool read()
Read base transportProperties dictionary.
HashPtrTable< multiphaseEuler::dragModel, interfacePair, interfacePair::symmHash > dragModelTable
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const surfaceScalarField & phi() const
Return the mixture flux.
tmp< volVectorField > U() const
Return the mixture velocity.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
autoPtr< multiphaseSystem::dragCoeffFields > dragCoeffs(fluid.dragCoeffs())
GeometricField< vector, fvPatchField, volMesh > volVectorField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Symmetric hashing functor for Pair, hashes lower value first.