54 #ifndef twoPhaseSolver_H
55 #define twoPhaseSolver_H
134 void alphaSolve(
const label nAlphaSubCycles);
MULES: Multidimensional universal limiter for explicit solution.
Generic GeometricField class.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Mesh data needed to do the Finite Volume discretisation.
const fvMesh & mesh
Region mesh.
Base solver module base-class for the solution of immiscible fluids using a VOF (volume of fluid) pha...
const surfaceScalarField & phi
Reference to the mass-flux field.
Solver module base-class for 2 immiscible fluids, with optional mesh motion and mesh topology changes...
virtual void prePredictor()
Called at the start of the PIMPLE loop.
twoPhaseSolver(fvMesh &mesh, autoPtr< twoPhaseVoFMixture >)
Construct from region mesh.
bool alphaRestart
Switch indicating if this is a restart.
virtual void alphaSuSp(tmp< volScalarField::Internal > &Su, tmp< volScalarField::Internal > &Sp)=0
Calculate the alpha equation sources.
surfaceScalarField alphaPhi1
bool alphaApplyPrevCorr
Apply the compression correction from the previous iteration.
MULES::control MULEScontrols
MULES controls.
void alphaPredictor()
Solve for the phase-fractions.
label nAlphaCorr
Number of alpha correctors.
TypeName("twoPhaseSolver")
Runtime type information.
virtual tmp< surfaceScalarField > surfaceTensionForce() const =0
Return the interface surface tension force for the momentum equation.
volScalarField & alpha1
Reference to the phase1-fraction.
void operator=(const twoPhaseSolver &)=delete
Disallow default bitwise assignment.
autoPtr< Function1< scalar > > nAlphaSubCyclesPtr
Function to calculate the number of explicit MULES sub-cycles.
bool MULESCorr
Semi-implicit MULES switch.
virtual ~twoPhaseSolver()
Destructor.
surfaceScalarField alphaPhi2
tmp< surfaceScalarField > talphaPhi1Corr0
MULES Correction.
virtual void preSolve()
Called at the start of the time-step, before the PIMPLE loop.
volScalarField & alpha2
Reference to the phase2-fraction.
virtual tmp< surfaceScalarField > alphaPhi(const surfaceScalarField &phi, const volScalarField &alpha)
twoPhaseVoFMixture & mixture
Reference to the twoPhaseVoFMixture.
void incompressiblePressureCorrector(volScalarField &p)
Construct and solve the incompressible pressure equation.
virtual void correctInterface()=0
Correct the interface properties following mesh-change.
virtual bool read()
Read controls.
A class for managing temporary objects.
Class to represent a VoF mixture.
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
tmp< VolField< Type > > Su(const VolField< Type > &su, const VolField< Type > &vf)
tmp< VolField< Type > > Sp(const volScalarField &sp, const VolField< Type > &vf)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.