63 class interfaceSurfaceTensionModel;
64 class pressureReference;
65 class nonOrthogonalSolutionControl;
338 template<
class ModelType>
342 template<
class ModelType,
class ... InterfaceTypes>
352 template<
class ModelType>
365 template<
class ModelType>
377 template<
class ValueType>
390 template<
class ValueType>
405 template<
class ModelType>
409 template<
class ModelType>
416 template<
class ModelType>
420 template<
class ModelType>
Generic GeometricField class.
A HashTable specialisation for hashing pointers.
An STL-conforming hash table.
List of MRF zones with IO functionality. MRF zones are specified by a list of dictionary entries,...
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const fileName & name() const
Return the dictionary name.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Finite volume constraints.
Mesh data needed to do the Finite Volume discretisation.
Non-orthogonal solution control class. Provides non-orthogonal-loop control methods.
Word-pair based class used for keying interface models in hash tables.
Class to represent an interface between phases. Derivations can further specify the configuration of ...
Class to represent a system of phases and model interfacial transfers between them.
phaseModelPartialList stationaryPhaseModels_
Stationary phase models.
virtual autoPtr< specieTransferTable > specieTransfer() const =0
Return the specie transfer matrices.
virtual void correctKinematics()
Correct the kinematics.
tmp< volScalarField > nearInterface() const
Indicator of the proximity of the interface.
virtual PtrList< surfaceScalarField > Ffs() const =0
Return the force fluxes for the face-based algorithm.
dictionary interfacialDict(const word &name) const
Return the dictionary containing interfacial model or value.
void correctPhi(const volScalarField &p_rgh, const autoPtr< volScalarField > &divU, const pressureReference &pressureReference, nonOrthogonalSolutionControl &pimple)
bool foundInterfacialModel(const phaseInterface &interface) const
Check availability of a sub model for a given interface.
virtual tmp< surfaceScalarField > alphaDByAf(const PtrList< volScalarField > &rAs) const =0
Return the phase diffusivity.
static const word propertiesName
Default name of the phase properties dictionary.
void validateMassTransfer(const phaseInterface &interface) const
Check that mass transfer is supported across the given interface.
void generateInterfacialModels(const dictionary &dict, const phaseInterface &interface, PtrList< phaseInterface > &interfaces, PtrList< ModelType > &models) const
Generate interfacial-model lists.
const IOMRFZoneList & MRF() const
Return MRF zones.
const phaseModel & otherPhase(const phaseModel &phase) const
Return the phase not given as an argument in a two-phase system.
virtual void correctReactions()
Correct the reactions.
const fvMesh & mesh_
Reference to the mesh.
phaseModelPartialList multicomponentPhaseModels_
Multi-component phase models.
phaseModelList phaseModels_
Phase models.
phaseModelPartialList movingPhaseModels_
Moving phase models.
void setMixtureU(const volVectorField &Um)
Re-normalise the velocity of the phases.
const dimensionedScalar & deltaN() const
Stabilisation for normalisation of the interface normal.
virtual PtrList< surfaceScalarField > ddtCorrs() const =0
Return the flux corrections for the cell-based algorithm.
virtual void correctSpecies()
Correct the species mass fractions.
const Foam::fvModels & fvModels() const
Access the fvModels.
const surfaceScalarField & phi() const
Return the mixture flux.
virtual void correctThermo()
Correct the thermodynamics.
const pimpleNoLoopControl & pimple_
Reference to pimpleNoLoopControl.
const volScalarField & dpdt() const
Return the rate of change of the pressure.
virtual void correct()
Correct the fluid properties other than those listed below.
tmp< volScalarField > sigma(const phaseInterfaceKey &key) const
Return the surface tension coefficient for an interface.
const phaseModelPartialList & multicomponentPhases() const
Return the models for phases that have multiple species.
virtual autoPtr< heatTransferTable > heatTransfer() const =0
Return the heat transfer matrices.
phaseModelPartialList anisothermalPhaseModels_
Anisothermal phase models.
const phaseModelPartialList & movingPhases() const
Return the models for phases that are moving.
virtual void predictThermophysicalTransport()
Predict the energy transport e.g. alphat.
tmp< volScalarField > K(const phaseModel &alpha1, const phaseModel &alpha2) const
Curvature of interface between two phases.
virtual void solve(const PtrList< volScalarField > &rAs)
Solve for the phase fractions.
HashTable< scalar, phaseInterfaceKey, phaseInterfaceKey::hash > cAlphaTable
tmp< volVectorField > U() const
Return the mixture velocity.
virtual void correctMomentumTransport()
Correct the momentumTransport.
void correctBoundaryFlux()
Correct fixed-flux BCs to be consistent with the velocity BCs.
static autoPtr< phaseSystem > New(const fvMesh &mesh)
const phaseModelList & phases() const
Return the phase models.
PtrListDictionary< phaseModel > phaseModelList
const phaseModelPartialList & anisothermalPhases() const
Return the models for phases that have variable temperature.
virtual void invADVs(const PtrList< volScalarField > &As, PtrList< volVectorField > &HVms, PtrList< PtrList< volScalarField >> &invADVs, PtrList< PtrList< surfaceScalarField >> &invADVfs) const =0
Return the inverse of the central + drag + virtual mass.
virtual tmp< volScalarField > dmdtf(const phaseInterfaceKey &key) const
Return the mass transfer rate for an interface.
virtual void dragCorrs(PtrList< volVectorField > &dragCorrs, PtrList< surfaceScalarField > &dragCorrf) const =0
Set the cell and faces drag correction fields.
const dimensionedScalar deltaN_
Stabilisation for normalisation of the interface normal.
interfaceSurfaceTensionModelTable interfaceSurfaceTensionModels_
Surface tension models.
const pimpleNoLoopControl & pimple() const
Return pimpleNoLoopControl.
virtual autoPtr< momentumTransferTable > momentumTransferf()=0
Return the momentum transfer matrices for the face-based.
HashPtrTable< fvScalarMatrix > specieTransferTable
virtual void correctThermophysicalTransport()
Correct the energy transport e.g. alphat.
virtual PtrList< volScalarField > dmdts() const
Return the mass transfer rates for each phase.
virtual void meshUpdate()
Update the fluid properties for mesh changes.
cAlphaTable cAlphas_
Interface compression coefficients.
virtual autoPtr< momentumTransferTable > momentumTransfer()=0
Return the momentum transfer matrices for the cell-based.
const phaseModelPartialList & stationaryPhases() const
Return the models for phases that are stationary.
word modelName() const
Return the model name. This is the same as the model's typename.
surfaceScalarField phi_
Total volumetric flux.
HashPtrTable< fvVectorMatrix > momentumTransferTable
virtual PtrList< surfaceScalarField > Fs() const =0
Return the force fluxes for the cell-based algorithm.
virtual bool implicitPhasePressure() const
Returns true if the phase pressure is treated implicitly.
tmp< surfaceScalarField > surfaceTension(const phaseModel &phase) const
Return the surface tension force.
tmp< volScalarField > sumAlphaMoving() const
Return the sum of the phase fractions of the moving phases.
HashPtrTable< fvScalarMatrix > heatTransferTable
phaseSystem(const fvMesh &mesh)
Construct from fvMesh.
void setMixturePhi(const PtrList< surfaceScalarField > &alphafs, const surfaceScalarField &phim)
Re-normalise the flux of the phases.
HashTable< autoPtr< interfaceSurfaceTensionModel >, phaseInterfaceKey, phaseInterfaceKey::hash > interfaceSurfaceTensionModelTable
virtual ~phaseSystem()
Destructor.
HashPtrTable< HashPtrTable< volScalarField >, phaseInterfaceKey, phaseInterfaceKey::hash > dmidtfTable
void generateInterfacialValues(const dictionary &dict, HashTable< ValueType, phaseInterfaceKey, phaseInterfaceKey::hash > &values) const
Generate interfacial-model tables.
const fvMesh & mesh() const
Return the mesh.
TypeName("phaseSystem")
Runtime type information.
UPtrList< phaseModel > phaseModelPartialList
tmp< surfaceScalarField > nHatf(const volScalarField &alpha1, const volScalarField &alpha2) const
Normal to interface between two phases dotted with face areas.
tmp< volScalarField > rho() const
Return the mixture density.
IOMRFZoneList MRF_
Optional MRF zones.
HashPtrTable< volScalarField, phaseInterfaceKey, phaseInterfaceKey::hash > dmdtfTable
const Foam::fvConstraints & fvConstraints() const
Access the fvConstraints.
word referencePhaseName_
Name of optional reference phase which is not solved for.
tmp< surfaceVectorField > nHatfv(const volScalarField &alpha1, const volScalarField &alpha2) const
Normal to interface between two phases.
volScalarField dpdt_
Rate of change of pressure.
virtual void predictMomentumTransport()
Predict the momentumTransport.
virtual PtrList< PtrList< surfaceScalarField > > invADVfs(const PtrList< surfaceScalarField > &Afs, PtrList< surfaceScalarField > &HVmfs) const =0
Return the inverse of the face central + drag + virtual mass.
static const dictionary & modelSubDict(const dictionary &dict)
Return the dictionary from which to construct a low-level.
declareRunTimeSelectionTable(autoPtr, phaseSystem, dictionary,(const fvMesh &mesh),(mesh))
virtual PtrList< volScalarField > d2mdtdps() const
Return the mass transfer pressure implicit coefficients.
virtual bool read()
Read base phaseProperties dictionary.
const ModelType & lookupInterfacialModel(const phaseInterface &interface) const
Return a sub model for an interface.
virtual void correctContinuityError()
Correct the continuity errors.
bool incompressible() const
Return incompressibility.
Pimple no-loop control class. Implements various option flags, but leaves loop controls to the deriva...
Provides controls for the pressure reference in closed-volume simulations.
A class for managing temporary objects.
A class for handling words, derived from string.
Forward declarations of fvMatrix specialisations.
volScalarField sf(fieldObject, mesh)
word valueName(const direction argument)
Return the name of the value entry for the given argument.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
tmp< volScalarField > byDt(const volScalarField &vf)
VolField< scalar > volScalarField