Solver module for a system of any number of compressible fluid phases with a common pressure, but otherwise separate properties. The type of phase model is run time selectable and can optionally represent multiple species and in-phase reactions. The phase system is also run time selectable and can optionally represent different types of momentum, heat and mass transfer. More...
Public Member Functions | |
TypeName ("multiphaseEuler") | |
Runtime type information. More... | |
multiphaseEuler (fvMesh &mesh) | |
Construct from region mesh. More... | |
multiphaseEuler (const multiphaseEuler &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~multiphaseEuler () |
Destructor. More... | |
virtual void | preSolve () |
Called at the start of the time-step, before the PIMPLE loop. More... | |
virtual void | moveMesh () |
Called at the start of the PIMPLE loop to move the mesh. More... | |
virtual void | motionCorrector () |
Corrections that follow mesh motion. More... | |
virtual void | prePredictor () |
Called at the start of the PIMPLE loop. More... | |
virtual void | momentumPredictor () |
Construct and optionally solve the momentum equation. More... | |
virtual void | thermophysicalPredictor () |
Construct and solve the energy equation,. More... | |
virtual void | pressureCorrector () |
Construct and solve the pressure equation in the PISO loop. More... | |
virtual void | postCorrector () |
Correct the momentum and thermophysical transport modelling. More... | |
virtual void | postSolve () |
Called after the PIMPLE loop at the end of the time-step. More... | |
void | operator= (const multiphaseEuler &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from fluidSolver | |
TypeName ("fluidSolver") | |
Runtime type information. More... | |
fluidSolver (fvMesh &mesh) | |
Construct from region mesh. More... | |
fluidSolver (const fluidSolver &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~fluidSolver () |
Destructor. More... | |
virtual scalar | maxDeltaT () const |
Return the current maximum time-step for stable solution. More... | |
void | operator= (const fluidSolver &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from solver | |
TypeName ("solver") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, solver, fvMesh,(fvMesh &mesh),(mesh)) | |
solver (fvMesh &mesh) | |
Construct from region mesh. More... | |
solver (const solver &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~solver () |
Destructor. More... | |
bool | transient () const |
Foam::fvModels & | fvModels () const |
Return the fvModels that are created on demand. More... | |
Foam::fvConstraints & | fvConstraints () const |
Return the fvConstraints that are created on demand. More... | |
void | operator= (const solver &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from regIOobject | |
TypeName ("regIOobject") | |
Runtime type information. More... | |
regIOobject (const IOobject &, const bool isTime=false) | |
Construct from IOobject. Optional flag for if IOobject is the. More... | |
regIOobject (const regIOobject &) | |
Copy constructor. More... | |
regIOobject (const regIOobject &&) | |
Move constructor. More... | |
regIOobject (const regIOobject &, bool registerCopy) | |
Copy constructor, transferring registry registration to copy. More... | |
regIOobject (const word &newName, const regIOobject &, bool registerCopy) | |
Copy constructor with new name, transferring registry registration. More... | |
regIOobject (const IOobject &, const regIOobject &) | |
Copy constructor with new IO parameters. More... | |
virtual | ~regIOobject () |
Destructor. More... | |
virtual bool | global () const |
Return true if object is global, i.e. same for all processors. More... | |
virtual bool | globalFile () const |
Return true if object is global, i.e. same for all processors. More... | |
const fileName & | caseName () const |
fileName | path () const |
Return complete path. More... | |
fileName | objectPath () const |
Return complete path + object name. More... | |
fileName | filePath () const |
Return complete path + object name if the file exists. More... | |
bool | checkIn () |
Add object to registry. More... | |
bool | checkOut () |
Remove object from registry. More... | |
void | addWatch () |
Add file watch on object (if registered and READ_IF_MODIFIED) More... | |
bool | registered () const |
Is this object registered with the registry? More... | |
bool | ownedByRegistry () const |
Is this object owned by the registry? More... | |
void | store () |
Transfer ownership of this object to its registry. More... | |
void | release () |
Release ownership of this object from its registry. More... | |
label | eventNo () const |
Event number at last update. More... | |
label & | eventNo () |
Event number at last update. More... | |
bool | upToDate (const regIOobject &) const |
Return true if up-to-date with respect to given object. More... | |
bool | upToDate (const regIOobject &, const regIOobject &) const |
Return true if up-to-date with respect to given objects. More... | |
bool | upToDate (const regIOobject &, const regIOobject &, const regIOobject &) const |
Return true if up-to-date with respect to given objects. More... | |
bool | upToDate (const regIOobject &, const regIOobject &, const regIOobject &, const regIOobject &) const |
Return true if up-to-date with respect to given objects. More... | |
void | setUpToDate () |
Set up to date (obviously) More... | |
virtual void | rename (const word &newName) |
Rename. More... | |
bool | headerOk () |
Read and check header info. More... | |
Istream & | readStream (const word &, const bool read=true) |
Return Istream and check object type against that given. More... | |
void | close () |
Close Istream. More... | |
virtual bool | readData (Istream &) |
Virtual readData function. More... | |
const labelList & | watchIndices () const |
Return file-monitoring handles. More... | |
labelList & | watchIndices () |
Return file-monitoring handles. More... | |
virtual bool | modified () const |
Return true if the object's file (or files for objectRegistry) More... | |
virtual bool | readIfModified () |
Read object if modified (as set by call to modified) More... | |
virtual bool | writeObject (IOstream::streamFormat, IOstream::versionNumber, IOstream::compressionType, const bool write) const |
Write using given format, version and compression. More... | |
virtual bool | write (const bool write=true) const |
Write using setting from DB. More... | |
void | operator= (const IOobject &) |
Assign to IOobject. More... | |
void | operator= (const regIOobject &)=delete |
Disallow default assignment. More... | |
const fileName & | caseName (const bool global) const |
fileName | path (const bool global) const |
Return complete path including the processor sub-directory. More... | |
fileName | objectPath (const bool global) const |
Return complete path + object name including the processor. More... | |
fileName | filePath (const word &typeName, const bool global) const |
Return complete path + object name if the file exists. More... | |
Public Member Functions inherited from IOobject | |
TypeName ("IOobject") | |
Runtime type information. More... | |
IOobject (const word &name, const fileName &instance, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from name, instance, registry, io options. More... | |
IOobject (const word &name, const fileName &instance, const fileName &local, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from name, instance, local, registry, io options. More... | |
IOobject (const fileName &path, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from path, registry, io options. More... | |
IOobject (const IOobject &io, const objectRegistry ®istry) | |
Construct from copy resetting registry. More... | |
IOobject (const IOobject &io, const word &name) | |
Construct from copy resetting name. More... | |
IOobject (const IOobject &io)=default | |
Copy constructor. More... | |
autoPtr< IOobject > | clone () const |
Clone. More... | |
autoPtr< IOobject > | clone (const objectRegistry ®istry) const |
Clone resetting registry. More... | |
virtual | ~IOobject () |
Destructor. More... | |
const Time & | time () const |
Return time. More... | |
const objectRegistry & | db () const |
Return the local objectRegistry. More... | |
const word & | name () const |
Return name. More... | |
const word & | headerClassName () const |
Return name of the class name read from header. More... | |
word & | headerClassName () |
Return name of the class name read from header. More... | |
string & | note () |
Return non-constant access to the optional note. More... | |
const string & | note () const |
Return the optional note. More... | |
bool & | registerObject () |
Register object created from this IOobject with registry if true. More... | |
bool | registerObject () const |
Register object created from this IOobject with registry if true. More... | |
readOption | readOpt () const |
readOption & | readOpt () |
writeOption | writeOpt () const |
writeOption & | writeOpt () |
word | group () const |
Return group (extension part of name) More... | |
word | member () const |
Return member (name without the extension) More... | |
const fileName & | rootPath () const |
const fileName & | caseName (const bool global) const |
fileName & | instance () const |
Return the instance directory, constant, system, <time> etc. More... | |
void | updateInstance () const |
If the instance is a time directory update to the current time. More... | |
const fileName & | local () const |
fileName | path (const bool global) const |
Return complete path including the processor sub-directory. More... | |
fileName | objectPath (const bool global) const |
Return complete path + object name including the processor. More... | |
fileName | relativePath () const |
Return the path relative to the case directory. More... | |
fileName | relativeObjectPath () const |
Return complete relativePath + object name. More... | |
fileName | filePath (const word &typeName, const bool global) const |
Return complete path + object name if the file exists. More... | |
bool | readHeader (Istream &) |
Read header. More... | |
bool | headerOk () |
Read header of local object without type-checking. More... | |
template<class Type > | |
void | warnNoRereading () const |
Helper: warn that type does not support re-reading. More... | |
bool | writeHeader (Ostream &) const |
Write header. More... | |
bool | writeHeader (Ostream &, const word &objectType) const |
Write header. Allow override of type. More... | |
bool | good () const |
bool | bad () const |
InfoProxy< IOobject > | info () const |
Return info proxy. More... | |
void | operator= (const IOobject &) |
template<class Name > | |
Foam::word | groupName (Name name, const word &group) |
Public Attributes | |
const phaseSystem & | fluid |
Reference to the multiphase fluid. More... | |
const phaseSystem::phaseModelList & | phases |
Reference to the phases. More... | |
const phaseSystem::phaseModelPartialList & | movingPhases |
Reference to the moving phases. More... | |
const volScalarField & | p |
Reference to the pressure field. More... | |
const surfaceScalarField & | phi |
Reference to the mass-flux field. More... | |
Public Attributes inherited from fluidSolver | |
const scalar & | CoNum |
Current maximum Courant number for time-step control. More... | |
Public Attributes inherited from solver | |
const fvMesh & | mesh |
Region mesh. More... | |
const Time & | runTime |
Time. More... | |
pimpleNoLoopControl | pimple |
PIMPLE inner-loop controls. More... | |
Protected Member Functions | |
virtual bool | read () |
Read controls. More... | |
Protected Member Functions inherited from fluidSolver | |
virtual bool | dependenciesModified () const |
Return true if the solver's dependencies have been modified. More... | |
void | meshCourantNo () const |
Check mesh Courant numbers for moving mesh cases. More... | |
void | correctCoNum (const surfaceScalarField &phi) |
Correct the cached Courant numbers. More... | |
void | correctCoNum (const volScalarField &rho, const surfaceScalarField &phi) |
Correct the cached Courant numbers. More... | |
void | continuityErrors (const surfaceScalarField &phi) |
Calculate and print the continuity errors. More... | |
void | continuityErrors (const volScalarField &rho, const volScalarField &thermoRho, const surfaceScalarField &phi) |
Calculate and print the continuity errors. More... | |
Protected Member Functions inherited from regIOobject | |
bool | readHeaderOk (const IOstream::streamFormat defaultFormat, const word &typeName) |
Read header, check readOpt flags and read data if necessary. More... | |
Protected Member Functions inherited from IOobject | |
void | setBad (const string &) |
Set the object state to bad. More... | |
template<class Type > | |
bool | typeHeaderOk (const bool checkType) |
Read header using typeGlobalFile to find file. More... | |
Protected Attributes | |
Switch | predictMomentum |
Momentum equation predictor switch. More... | |
Switch | faceMomentum |
Cell/face momentum equation switch. More... | |
Switch | dragCorrection |
Cell/face drag correction for cell momentum corrector. More... | |
int | nEnergyCorrectors |
Number of energy correctors. More... | |
tmp< volScalarField > | trDeltaT |
Optional LTS reciprocal time-step field. More... | |
tmp< surfaceScalarField > | trDeltaTf |
Optional LTS reciprocal face time-step field. More... | |
solvers::buoyancy | buoyancy |
Buoyancy force. More... | |
autoPtr< phaseSystem > | fluidPtr_ |
phaseSystem & | fluid_ |
phaseSystem::phaseModelList & | phases_ |
phaseSystem::phaseModelPartialList & | movingPhases_ |
surfaceScalarField & | phi_ |
volScalarField & | p_ |
volScalarField & | p_rgh |
Reference to the buoyant pressure for buoyant cases. More... | |
Foam::pressureReference | pressureReference |
Pressure reference. More... | |
const IOMRFZoneList & | MRF |
PtrList< fvVectorMatrix > | UEqns |
Temporary phase momentum matrices. More... | |
PtrList< volScalarField > | rAs |
Temporary storage for the reciprocal momentum equation diagonal. More... | |
autoPtr< volScalarField > | divU |
Stored divU from the previous mesh so that it can be. More... | |
Protected Attributes inherited from fluidSolver | |
bool | correctPhi |
Switch to correct the flux after mesh change. More... | |
scalar | CoNum_ |
Current maximum Courant number for time-step control. More... | |
Protected Attributes inherited from solver | |
fvMesh & | mesh_ |
Region mesh. More... | |
bool | steady |
Switch for steady-state. More... | |
bool | LTS |
Switch for local time step transient operation. More... | |
Additional Inherited Members | |
Public Types inherited from IOobject | |
enum | objectState { GOOD , BAD } |
Enumeration defining the valid states of an IOobject. More... | |
enum | readOption { MUST_READ , MUST_READ_IF_MODIFIED , READ_IF_PRESENT , NO_READ } |
Enumeration defining the read options. More... | |
enum | writeOption { AUTO_WRITE = 0 , NO_WRITE = 1 } |
Enumeration defining the write options. More... | |
enum | fileCheckTypes { timeStamp , timeStampMaster , inotify , inotifyMaster } |
Enumeration defining the file checking options. More... | |
Static Public Member Functions inherited from solver | |
static autoPtr< solver > | New (const word &solverName, fvMesh &mesh) |
Select, construct and return the solver. More... | |
static void | load (const word &solverName) |
Load the specified solver library. More... | |
Static Public Member Functions inherited from regIOobject | |
template<class Type > | |
static Type & | store (Type *) |
Transfer ownership of the given object pointer to its registry. More... | |
template<class Type > | |
static Type & | store (autoPtr< Type > &) |
Transfer ownership of the given object pointer to its registry. More... | |
Static Public Member Functions inherited from IOobject | |
static bool | fileNameComponents (const fileName &path, fileName &instance, fileName &local, word &name) |
Split path into instance, local, name components. More... | |
template<class Name > | |
static word | groupName (Name name, const word &group) |
static word | group (const word &name) |
Return group (extension part of name) More... | |
static word | member (const word &name) |
Return member (name without the extension) More... | |
template<class Stream > | |
static Stream & | writeBanner (Stream &os, bool noHint=false) |
Write the standard OpenFOAM file/dictionary banner. More... | |
template<class Stream > | |
static Stream & | writeDivider (Stream &os) |
Write the standard file section divider. More... | |
template<class Stream > | |
static Stream & | writeEndDivider (Stream &os) |
Write the standard end file divider. More... | |
Static Public Attributes inherited from solver | |
static scalar | deltaTFactor = 1.2 |
deltaT increase factor More... | |
Static Public Attributes inherited from regIOobject | |
static float | fileModificationSkew |
Static Public Attributes inherited from IOobject | |
static constexpr const char * | foamFile = "FoamFile" |
Keyword for the FoamFile header sub-dictionary. More... | |
static const NamedEnum< fileCheckTypes, 4 > | fileCheckTypesNames |
static fileCheckTypes | fileModificationChecking |
Type of file modification checking. More... | |
Solver module for a system of any number of compressible fluid phases with a common pressure, but otherwise separate properties. The type of phase model is run time selectable and can optionally represent multiple species and in-phase reactions. The phase system is also run time selectable and can optionally represent different types of momentum, heat and mass transfer.
Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and pseudo-transient and steady simulations.
Optional fvModels and fvConstraints are provided to enhance the simulation in many ways including adding various sources, Lagrangian particles, surface film etc. and constraining or limiting the solution.
Definition at line 70 of file multiphaseEuler.H.
multiphaseEuler | ( | fvMesh & | mesh | ) |
Construct from region mesh.
Definition at line 99 of file multiphaseEuler.C.
References solver::mesh, IOobject::name(), multiphaseEuler::p_rgh, multiphaseEuler::read(), fvMesh::schemes(), and fvSchemes::setFluxRequired().
|
delete |
Disallow default bitwise copy construction.
|
virtual |
Destructor.
Definition at line 208 of file multiphaseEuler.C.
|
protectedvirtual |
Read controls.
Reimplemented from fluidSolver.
Definition at line 48 of file multiphaseEuler.C.
References singleRegionSolutionControl::dict(), multiphaseEuler::dragCorrection, multiphaseEuler::faceMomentum, dictionary::lookupOrDefault(), multiphaseEuler::nEnergyCorrectors, solver::pimple, multiphaseEuler::predictMomentum, and fluidSolver::read().
Referenced by multiphaseEuler::multiphaseEuler().
TypeName | ( | "multiphaseEuler" | ) |
Runtime type information.
|
virtual |
Called at the start of the time-step, before the PIMPLE loop.
Implements solver.
Definition at line 214 of file multiphaseEuler.C.
References Foam::fvc::absolute(), correctPhi, Foam::fvc::div(), fvModels(), fvModels::preUpdateMesh(), and U.
|
virtual |
Called at the start of the PIMPLE loop to move the mesh.
Implements solver.
Definition at line 32 of file moveMesh.C.
References Foam::fvc::absolute(), fluidSolver::correctPhi, Foam::fvc::div(), multiphaseEuler::divU, pimpleNoLoopControl::firstIter(), fluidSolutionControl::flow(), solver::mesh, solver::mesh_, fvMesh::move(), pimpleNoLoopControl::moveMeshOuterCorrectors(), multiphaseEuler::movingPhases, multiphaseEuler::phi, solver::pimple, polyMesh::topoChanged(), and U.
|
virtual |
Corrections that follow mesh motion.
Implements solver.
Definition at line 64 of file moveMesh.C.
References correctPhi, buoyancy::moveMesh(), and pimple().
|
virtual |
Called at the start of the PIMPLE loop.
Implements solver.
Definition at line 245 of file multiphaseEuler.C.
References pimple().
|
virtual |
Construct and optionally solve the momentum equation.
Implements solver.
Definition at line 113 of file momentumPredictor.C.
References pimple().
|
virtual |
Construct and solve the energy equation,.
convert to temperature and update thermophysical and transport properties
Implements solver.
Definition at line 120 of file thermophysicalPredictor.C.
References Foam::endl(), forAll, Foam::Info, Foam::max(), Foam::min(), phaseModel::name(), pimple(), basicThermo::T(), and phaseModel::thermo().
|
virtual |
Construct and solve the pressure equation in the PISO loop.
Implements solver.
Definition at line 30 of file pressureCorrector.C.
References phaseSystem::correctKinematics(), multiphaseEuler::faceMomentum, fluidSolutionControl::flow(), multiphaseEuler::fluid_, forAll, multiphaseEuler::p_rgh, multiphaseEuler::phases_, and solver::pimple.
|
virtual |
Correct the momentum and thermophysical transport modelling.
Implements solver.
Definition at line 261 of file multiphaseEuler.C.
References pimple().
|
virtual |
Called after the PIMPLE loop at the end of the time-step.
Implements solver.
Definition at line 271 of file multiphaseEuler.C.
|
delete |
Disallow default bitwise assignment.
|
protected |
Momentum equation predictor switch.
Defaults to false
Definition at line 81 of file multiphaseEuler.H.
Referenced by multiphaseEuler::read().
|
protected |
Cell/face momentum equation switch.
Defaults to false, i.e. uses the cell momentum equation
Definition at line 85 of file multiphaseEuler.H.
Referenced by multiphaseEuler::pressureCorrector(), and multiphaseEuler::read().
|
protected |
Cell/face drag correction for cell momentum corrector.
Defaults to false
Definition at line 89 of file multiphaseEuler.H.
Referenced by multiphaseEuler::read().
|
protected |
Number of energy correctors.
Used to improve stability of phase-change sibulations Defaults to 1
Definition at line 94 of file multiphaseEuler.H.
Referenced by multiphaseEuler::read().
|
protected |
Optional LTS reciprocal time-step field.
Definition at line 98 of file multiphaseEuler.H.
|
protected |
Optional LTS reciprocal face time-step field.
Definition at line 101 of file multiphaseEuler.H.
|
protected |
Buoyancy force.
Definition at line 104 of file multiphaseEuler.H.
|
protected |
Definition at line 109 of file multiphaseEuler.H.
|
protected |
Definition at line 111 of file multiphaseEuler.H.
Referenced by multiphaseEuler::pressureCorrector().
|
protected |
Definition at line 113 of file multiphaseEuler.H.
Referenced by multiphaseEuler::pressureCorrector().
|
protected |
Definition at line 115 of file multiphaseEuler.H.
|
protected |
Definition at line 117 of file multiphaseEuler.H.
|
protected |
Definition at line 122 of file multiphaseEuler.H.
|
protected |
Reference to the buoyant pressure for buoyant cases.
otherwise to the pressure
Definition at line 126 of file multiphaseEuler.H.
Referenced by multiphaseEuler::multiphaseEuler(), and multiphaseEuler::pressureCorrector().
|
protected |
Pressure reference.
Definition at line 132 of file multiphaseEuler.H.
|
protected |
Definition at line 137 of file multiphaseEuler.H.
|
protected |
Temporary phase momentum matrices.
shared between the momentum predictor and pressure corrector
Definition at line 144 of file multiphaseEuler.H.
|
protected |
Temporary storage for the reciprocal momentum equation diagonal.
Used by the phase-fraction predictor and pressure corrector
Definition at line 148 of file multiphaseEuler.H.
|
protected |
Stored divU from the previous mesh so that it can be.
mapped and used in correctPhi to ensure the corrected phi has the same divergence
Definition at line 153 of file multiphaseEuler.H.
Referenced by multiphaseEuler::moveMesh().
const phaseSystem& fluid |
Reference to the multiphase fluid.
Definition at line 201 of file multiphaseEuler.H.
const phaseSystem::phaseModelList& phases |
Reference to the phases.
Definition at line 204 of file multiphaseEuler.H.
const phaseSystem::phaseModelPartialList& movingPhases |
Reference to the moving phases.
Definition at line 207 of file multiphaseEuler.H.
Referenced by multiphaseEuler::moveMesh().
const volScalarField& p |
Reference to the pressure field.
Definition at line 210 of file multiphaseEuler.H.
const surfaceScalarField& phi |
Reference to the mass-flux field.
Definition at line 213 of file multiphaseEuler.H.
Referenced by multiphaseEuler::moveMesh().