48 void Foam::solvers::incompressibleDriftFlux::correctCoNum()
72 "surfaceTensionForce",
193 alpha1Eqn.
solve(alpha1.name() +
"Diffusion");
195 alphaPhi1 += alpha1Eqn.
flux();
197 alpha2 = scalar(1) - alpha1;
198 alphaPhi2 = phi - alphaPhi1;
200 Info<<
"Phase-1 volume fraction = "
201 << alpha1.weightedAverage(mesh.Vsc()).value()
202 <<
" Min(" << alpha1.name() <<
") = " <<
min(alpha1).value()
203 <<
" Max(" << alpha1.name() <<
") = " <<
max(alpha1).value()
213 rhoPhi = alphaPhi1*rho1 + alphaPhi2*rho2;
215 relativeVelocity->correct();
217 if (
pimple.predictTransport())
219 momentumTransport->predict();
226 incompressiblePressureCorrector(
p);
236 if (
pimple.correctTransport())
238 momentumTransport->correct();
Macros for easy insertion into run-time selection tables.
Generic GeometricField class.
static tmp< GeometricField< Type, PatchField, GeoMesh > > New(const word &name, const Internal &, const PtrList< PatchField< Type >> &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
bool restart() const
Return true if the run is a restart, i.e. startTime != beginTime.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const word & name() const
Return const reference to name.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
SolverPerformance< Type > solve(const dictionary &)
Solve segregated or coupled returning the solution statistics.
tmp< SurfaceField< Type > > flux() const
Return the face-flux field from the matrix.
Mesh data needed to do the Finite Volume discretisation.
bool topoChanging() const
Does the mesh topology change?
Class to represent a mixture of two constant density phases.
Abstract base class for turbulence models (RAS, LES and laminar).
Abstract base class for run-time selectable region solvers.
pimpleNoLoopControl pimple
PIMPLE inner-loop controls.
const Time & runTime
Time.
const fvMesh & mesh
Region mesh.
volScalarField & p_rgh
Reference to the buoyant pressure for buoyant cases.
volVectorField U_
Velocity field.
autoPtr< volScalarField > rAU
Inverse momentum equation diagonal.
const volVectorField & U
Reference to the velocity field.
surfaceScalarField phi_
Volumetric flux field.
virtual void prePredictor()=0
Called at the start of the PIMPLE loop.
virtual void correctCoNum()=0
Correct the cached Courant numbers.
Buoyancy related data for the Foam::solvers::isothermalFluid solver module when solving buoyant cases...
bool correctPhi
Switch to correct the flux after mesh change.
virtual scalar maxDeltaT() const
Return the current maximum time-step for stable solution.
Solver module for 2 incompressible fluids using the mixture approach with the drift-flux approximatio...
virtual void thermophysicalPredictor()
Construct and solve the energy equation,.
virtual tmp< surfaceScalarField > surfaceTensionForce() const
Return the interface surface tension force for the momentum equation.
virtual const Foam::pressureReference & pressureReference() const
Return the pressure reference.
virtual void prePredictor()
Called at the start of the PIMPLE loop.
virtual bool divergent() const
Is the flow divergent?
incompressibleDriftFlux(fvMesh &mesh)
Construct from region mesh.
virtual scalar maxDeltaT() const
Return the current maximum time-step for stable solution.
virtual ~incompressibleDriftFlux()
Destructor.
virtual void pressureCorrector()
Construct and solve the pressure equation in the PISO loop.
virtual void postCorrector()
Correct the momentum and thermophysical transport modelling.
virtual void setInterfaceRDeltaT(volScalarField &rDeltaT)
Adjust the rDeltaT in the vicinity of the interface.
virtual void correctInterface()
Correct the interface properties following mesh-change.
Solver module base-class for 2 immiscible fluids, with optional mesh motion and mesh topology changes...
A class for managing temporary objects.
Class to represent a VoF mixture.
pimpleControl pimple(mesh)
Flux correction functions to ensure continuity.
Calculate the first temporal derivative.
Calculate the matrix for the first temporal derivative.
void correctPhi(surfaceScalarField &phi, const volVectorField &U, const volScalarField &p, const autoPtr< volScalarField > &rAU, const autoPtr< volScalarField > &divU, const pressureReference &pressureReference, nonOrthogonalSolutionControl &pcorrControl)
tmp< VolField< Type > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
tmp< fvMatrix< Type > > laplacian(const VolField< Type > &vf, const word &name)
tmp< fvMatrix< Type > > ddt(const VolField< Type > &vf)
addToRunTimeSelectionTable(solver, compressibleMultiphaseVoF, fvMesh)
defineTypeNameAndDebug(compressibleMultiphaseVoF, 0)
To & refCast(From &r)
Reference type cast template function.
Ostream & endl(Ostream &os)
Add newline and flush stream.
word name(const bool)
Return a word representation of a bool.
const dimensionSet dimForce
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
const dimensionSet dimTime
const dimensionSet dimDensity
const dimensionSet dimVolume
VolField< scalar > volScalarField
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
void correctUphiBCs(volVectorField &U, surfaceScalarField &phi, const bool evaluateUBCs)
If the mesh is moving correct the velocity BCs on the moving walls to.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.