63 class surfaceTensionCoefficientModel;
64 class momentumTransferSystem;
65 class pressureReference;
66 class nonOrthogonalSolutionControl;
341 template<
class ModelType>
348 template<
class ModelType>
MULES: Multidimensional universal limiter for explicit solution.
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...
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Finite volume constraints.
Mesh data needed to do the Finite Volume discretisation.
Class which provides interfacial momentum transfer between a number of phases. Drag,...
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.
phaseModelPartialList stationaryPhaseModels_
Stationary phase models.
void correctKinematics()
Correct the kinematics.
tmp< volScalarField > nearInterface() const
Indicator of the proximity of the interface.
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.
HashTable< scalar, phaseInterfaceKey, phaseInterfaceKey::hash > cAlphaTable
Table of interface compression coefficients.
static const word propertiesName
Default name of the phase properties dictionary.
const cAlphaTable cAlphas_
Interface compression coefficients.
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.
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.
void correctSpecies()
Correct the species mass fractions.
const Foam::fvModels & fvModels() const
Access the fvModels.
tmp< surfaceScalarField > surfaceTension(const phaseModel &) const
Return the surface tension force.
const surfaceScalarField & phi() const
Return the mixture flux.
void correctThermo()
Correct the thermodynamics.
const pimpleNoLoopControl & pimple_
Reference to pimpleNoLoopControl.
const volScalarField & dpdt() const
Return the rate of change of the pressure.
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.
void correctContinuityError(const PtrList< volScalarField::Internal > &dmdts)
Correct the continuity errors.
const phaseModelPartialList & movingPhases() const
Return the models for phases that are moving.
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.
tmp< volVectorField > U() const
Return the mixture velocity.
HashPtrTable< surfaceTensionCoefficientModel, phaseInterfaceKey, phaseInterfaceKey::hash > surfaceTensionCoefficientModelTable
Table of surface tension models.
void correctMomentumTransport()
Correct the momentumTransport.
void correctBoundaryFlux()
Correct fixed-flux BCs to be consistent with the velocity BCs.
const phaseModelList & phases() const
Return the phase models.
PtrListDictionary< phaseModel > phaseModelList
List of phase models.
const surfaceTensionCoefficientModelTable surfaceTensionCoefficientModels_
Surface tension models.
const dimensionedScalar deltaN_
Stabilisation for normalisation of the interface normal.
const pimpleNoLoopControl & pimple() const
Return pimpleNoLoopControl.
void correctThermophysicalTransport()
Correct the energy transport e.g. alphat.
phaseModelPartialList thermalPhaseModels_
Thermal phase models.
void meshUpdate()
Update the fluid properties for mesh changes.
const phaseModelPartialList & stationaryPhases() const
Return the models for phases that are stationary.
surfaceScalarField phi_
Total volumetric flux.
bool implicitPhasePressure() const
Returns true if the phase pressure is treated implicitly.
tmp< volScalarField > sumAlphaMoving() const
Return the sum of the phase fractions of the moving phases.
phaseSystem(const fvMesh &mesh)
Construct from fvMesh.
void setMixturePhi(const PtrList< surfaceScalarField > &alphafs, const surfaceScalarField &phim)
Re-normalise the flux of the phases.
const phaseModelPartialList & thermalPhases() const
Return the models for phases that have variable temperature.
virtual ~phaseSystem()
Destructor.
const fvMesh & mesh() const
Return the mesh.
TypeName("phaseSystem")
Runtime type information.
UPtrList< phaseModel > phaseModelPartialList
Partial list of phase models.
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.
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.
void predictMomentumTransport()
Predict the momentumTransport.
virtual bool read()
Read base phaseProperties dictionary.
const ModelType & lookupInterfacialModel(const phaseInterface &interface) const
Return a sub model for an interface.
void solve(const alphaControl &alphaControls, const PtrList< volScalarField > &rAs, const momentumTransferSystem &mts)
Solve for the phase fractions.
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.
Abstract base-class for interface surface-tension models which can be used when interface compression...
A class for managing temporary objects.
A class for handling words, derived from string.
Forward declarations of fvMatrix specialisations.
volScalarField sf(fieldObject, mesh)
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)
alpha solution control structure
void correct(const scalar CoNum)
Correct nAlphaSubCycles for the current Courant number.
Switch clip
Optionally clip the phase-fractions.
void read(const dictionary &dict)
Read the alpha and MULES controls from dict.
label nAlphaCorr
Number of alpha correctors.
scalar vDotResidualAlpha
Compressibility source stabilisation tolerance.
MULES::control MULES
MULES controls.
autoPtr< Function1< scalar > > nAlphaSubCyclesPtr
Function to calculate the number of explicit MULES sub-cycles.
bool MULESCorr
Semi-implicit MULES switch.
scalar MULESCorrRelax
Explicit correction relaxation factor (defaults to 0.5)
label nAlphaSubCycles
Number of alpha equation sub-cycles.