70 void Foam::solvers::multiphaseEuler::correctCoNum()
77 forAll(movingPhases, movingPhasei)
87 CoNum_ = 0.5*
gMax(sumPhi/
mesh.
V().primitiveField())*runTime.deltaTValue();
92 *runTime.deltaTValue();
122 pimple.
dict().lookupOrDefault<int>(
"nEnergyCorrectors", 1)
132 fv::localEulerDdt::rDeltaTName,
140 extrapolatedCalculatedFvPatchScalarField::typeName
152 fv::localEulerDdt::rDeltaTfName,
168 phases_(fluid_.phases()),
170 movingPhases_(fluid_.movingPhases()),
174 momentumTransferSystem_(fluid_),
176 heatTransferSystem_(fluid_),
178 populationBalanceSystem_(fluid_),
189 fluid_.incompressible()
196 movingPhases(movingPhases_),
197 momentumTransfer(momentumTransferSystem_),
198 heatTransfer(heatTransferSystem_),
258 alphaControls.correct(
CoNum);
260 fluid_.solve(alphaControls, rAs, momentumTransferSystem_);
261 populationBalanceSystem_.solve();
264 populationBalanceSystem_.correct();
266 fluid_.correctContinuityError(populationBalanceSystem_.dmdts());
273 fluid_.predictMomentumTransport();
286 fluid_.correctMomentumTransport();
292 fluid_.correctThermophysicalTransport();
#define forAll(list, i)
Loop across all elements in list.
Macros for easy insertion into run-time selection tables.
Generic GeometricField class.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const word & name() const
Return name.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
T lookupOrDefault(const word &, const T &, const bool writeDefault=writeOptionalEntries > 0) const
Find and return a T, if not found return the given default.
Base-class for fluid thermodynamic properties.
Mesh data needed to do the Finite Volume discretisation.
const DimensionedField< scalar, volMesh > & V() const
Return cell volumes.
const fvSchemes & schemes() const
Return the fvSchemes.
const fvSolution & solution() const
Return the fvSolution.
bool topoChanging() const
Does the mesh topology change?
virtual void preUpdateMesh()
Prepare for mesh update.
void setFluxRequired(const word &name) const
Provides controls for the pressure reference in closed-volume simulations.
virtual const dictionary & dict() const
Return the solution dictionary.
const dictionary & solverDict(const word &name) const
Return the solver controls dictionary for the given field.
Abstract base class for run-time selectable region solvers.
pimpleNoLoopControl pimple
PIMPLE inner-loop controls.
const fvMesh & mesh
Region mesh.
Buoyancy related data for the Foam::solvers::isothermalFluid solver module when solving buoyant cases...
Base solver module for fluid solvers.
virtual bool read()
Read controls.
Solver module for steady or transient turbulent flow of compressible fluids with heat-transfer for HV...
Solver module for a system of any number of compressible fluid phases with a common pressure,...
virtual void momentumTransportCorrector()
Correct the momentum transport.
virtual void prePredictor()
Called at the start of the PIMPLE loop.
const volScalarField & p_rgh
Reference to the buoyant pressure for buoyant cases.
virtual void postSolve()
Called after the PIMPLE loop at the end of the time-step.
virtual void momentumTransportPredictor()
Predict the momentum transport.
int nEnergyCorrectors
Number of energy correctors.
Switch predictMomentum
Momentum equation predictor switch.
virtual void thermophysicalTransportCorrector()
Correct the thermophysical transport.
Switch faceMomentum
Cell/face momentum equation switch.
Switch dragCorrection
Cell/face drag correction for cell momentum corrector.
virtual void preSolve()
Called at the start of the time-step, before the PIMPLE loop.
phaseSystem::alphaControl alphaControls
virtual ~multiphaseEuler()
Destructor.
virtual void thermophysicalTransportPredictor()
Predict thermophysical transport.
multiphaseEuler(fvMesh &mesh)
Construct from region mesh.
virtual bool read()
Read controls.
Foam::fvModels & fvModels(Foam::fvModels::New(mesh))
pimpleControl pimple(mesh)
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
Calculate the divergence of the given field.
Calculate the mesh motion flux and convert fluxes from absolute to relative and back.
Surface integrate surfaceField creating a volField. Surface sum a surfaceField creating a volField.
tmp< VolField< Type > > div(const SurfaceField< Type > &ssf)
tmp< VolInternalField< Type > > surfaceSum(const SurfaceField< Type > &ssf)
tmp< surfaceScalarField > absolute(const tmp< surfaceScalarField > &tphi, const volVectorField &U)
Return the given relative flux in absolute form.
addToRunTimeSelectionTable(solver, compressibleMultiphaseVoF, fvMesh)
defineTypeNameAndDebug(compressibleMultiphaseVoF, 0)
Type gSum(const FieldField< Field, Type > &f)
Ostream & endl(Ostream &os)
Add newline and flush stream.
const dimensionSet dimless
void mag(LagrangianPatchField< scalar > &f, const LagrangianPatchField< Type > &f1)
const dimensionSet dimTime
VolField< scalar > volScalarField
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
Type gMax(const FieldField< Field, Type > &f)
void read(const dictionary &dict)
Read the alpha and MULES controls from dict.