Solver module for steady or transient turbulent flow of incompressible isothermal fluids with optional mesh motion and change. More...
Public Member Functions | |
TypeName ("incompressibleFluid") | |
Runtime type information. More... | |
incompressibleFluid (fvMesh &mesh) | |
Construct from region mesh. More... | |
incompressibleFluid (const incompressibleFluid &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~incompressibleFluid () |
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 incompressibleFluid &)=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 volScalarField & | p |
Reference to the pressure field. More... | |
const volVectorField & | U |
Reference to the velocity field. More... | |
const surfaceScalarField & | phi |
Reference to the volumetric-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 | |
void | setRDeltaT () |
Set rDeltaT for LTS. More... | |
void | correctCoNum () |
Correct the cached Courant numbers. More... | |
void | continuityErrors () |
Calculate and print the continuity errors. More... | |
virtual void | correctPressure () |
Construct the pressure equation. More... | |
Protected Member Functions inherited from fluidSolver | |
virtual bool | dependenciesModified () const |
Return true if the solver's dependencies have been modified. More... | |
virtual bool | read () |
Read controls. 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 | |
volScalarField | p_ |
Pressure field. More... | |
Foam::pressureReference | pressureReference |
Pressure reference. More... | |
volVectorField | U_ |
Velocity field. More... | |
surfaceScalarField | phi_ |
Volumetric-flux field. More... | |
autoPtr< viscosityModel > | viscosity |
Kinematic viscosity model. More... | |
autoPtr< incompressible::momentumTransportModel > | momentumTransport |
Pointer to the momentum transport model. More... | |
IOMRFZoneList | MRF |
MRF zone list. More... | |
autoPtr< surfaceVectorField > | Uf |
Pointer to the surface momentum field. More... | |
tmp< volScalarField > | trDeltaT |
Optional LTS reciprocal time-step field. More... | |
tmp< fvVectorMatrix > | tUEqn |
Cached momentum matrix. 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 steady or transient turbulent flow of incompressible isothermal fluids with optional mesh motion and change.
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, constraining or limiting the solution.
Reference:
Greenshields, C. J., & Weller, H. G. (2022). Notes on Computational Fluid Dynamics: General Principles. CFD Direct Ltd.: Reading, UK.
Definition at line 73 of file incompressibleFluid.H.
incompressibleFluid | ( | fvMesh & | mesh | ) |
Construct from region mesh.
Definition at line 59 of file incompressibleFluid.C.
References IOobject::AUTO_WRITE, incompressibleFluid::correctCoNum(), Foam::dimless, Foam::dimTime, Foam::endl(), Foam::Info, solver::LTS, solver::mesh, incompressibleFluid::momentumTransport, IOobject::name(), dimensioned< Type >::name(), incompressibleFluid::p, localEulerDdt::rDeltaTName, IOobject::READ_IF_PRESENT, solver::runTime, fvMesh::schemes(), fvSchemes::setFluxRequired(), and incompressibleFluid::trDeltaT.
|
delete |
Disallow default bitwise copy construction.
|
virtual |
Destructor.
Definition at line 157 of file incompressibleFluid.C.
|
protected |
Set rDeltaT for LTS.
Definition at line 32 of file setRDeltaT.C.
References GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), singleRegionSolutionControl::dict(), Foam::endl(), dictionary::found(), Foam::gMax(), Foam::gMin(), Foam::Info, GeometricField< Type, PatchField, GeoMesh >::internalFieldRef(), dictionary::lookup(), dictionary::lookupOrDefault(), Foam::mag(), GeometricField< Type, PatchField, GeoMesh >::max(), Foam::max(), maxCo, solver::mesh, GeometricField< Type, PatchField, GeoMesh >::min(), Foam::min(), incompressibleFluid::phi, solver::pimple, GeometricField< Type, PatchField, GeoMesh >::primitiveField(), solver::runTime, Foam::fvc::smooth(), Time::startTimeIndex(), Foam::fvc::surfaceSum(), TimeState::timeIndex(), incompressibleFluid::trDeltaT, and fvMesh::V().
|
protected |
Correct the cached Courant numbers.
Definition at line 45 of file incompressibleFluid.C.
References incompressibleFluid::phi.
Referenced by incompressibleFluid::incompressibleFluid().
|
protected |
Calculate and print the continuity errors.
Definition at line 51 of file incompressibleFluid.C.
References fluidSolver::continuityErrors().
Referenced by incompressibleFluid::correctPressure().
|
protectedvirtual |
Construct the pressure equation.
and correct the pressure and velocity
Definition at line 39 of file correctPressure.C.
References Foam::adjustPhi(), fluidSolutionControl::consistent(), fvConstraints::constrain(), Foam::constrainHbyA(), Foam::constrainPressure(), incompressibleFluid::continuityErrors(), GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), pimpleNoLoopControl::correctNonOrthogonal(), Foam::fvc::correctUf(), Foam::fvc::ddtCorr(), Foam::fvc::div(), nonOrthogonalSolutionControl::finalNonOrthogonalIter(), fvMatrix< Type >::flux(), Foam::fvc::flux(), solver::fvConstraints(), solver::fvModels(), Foam::fvc::grad(), HbyA, Foam::fvc::interpolate(), Foam::fvm::laplacian(), fvMesh::magSf(), Foam::fvc::makeAbsolute(), Foam::fvc::makeRelative(), MRFZoneList::makeRelative(), Foam::max(), solver::mesh, incompressibleFluid::MRF, pisoControl::nCorrPiso(), GeometricField< Type, PatchField, GeoMesh >::needReference(), incompressibleFluid::p, incompressibleFluid::p_, incompressibleFluid::phi, incompressibleFluid::phi_, phiHbyA(), solver::pimple, rAU(), pressureReference::refCell(), pressureReference::refValue(), GeometricField< Type, PatchField, GeoMesh >::relax(), fvMatrix< Type >::setReference(), Foam::fvc::snGrad(), fvMatrix< Type >::solve(), incompressibleFluid::tUEqn, incompressibleFluid::U, incompressibleFluid::U_, UEqn, and incompressibleFluid::Uf.
TypeName | ( | "incompressibleFluid" | ) |
Runtime type information.
|
virtual |
Called at the start of the time-step, before the PIMPLE loop.
Implements solver.
Definition at line 163 of file incompressibleFluid.C.
References IOobject::AUTO_WRITE, Foam::endl(), fvModels(), Foam::Info, Foam::fvc::interpolate(), MRF(), fvModels::preUpdateMesh(), IOobject::READ_IF_PRESENT, 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 pimpleNoLoopControl::firstIter(), solver::mesh_, fvMesh::move(), pimpleNoLoopControl::moveMeshOuterCorrectors(), and solver::pimple.
|
virtual |
Corrections that follow mesh motion.
Implements solver.
Definition at line 42 of file moveMesh.C.
References Foam::fv::correctPhi(), correctPhi, Foam::correctUphiBCs(), Foam::fvc::makeRelative(), MRF(), p, pimple(), and U.
|
virtual |
Called at the start of the PIMPLE loop.
Implements solver.
Definition at line 202 of file incompressibleFluid.C.
References pimple().
|
virtual |
Construct and optionally solve the momentum equation.
Implements solver.
Definition at line 32 of file momentumPredictor.C.
References fvConstraints::constrain(), Foam::fvm::ddt(), MRFZoneList::DDt(), Foam::fvm::div(), solver::fvConstraints(), solver::fvModels(), Foam::fvc::grad(), fluidSolutionControl::momentumPredictor(), incompressibleFluid::momentumTransport, incompressibleFluid::MRF, incompressibleFluid::p, incompressibleFluid::phi, solver::pimple, Foam::solve(), fvModels::source(), incompressibleFluid::tUEqn, incompressibleFluid::U, incompressibleFluid::U_, and UEqn.
|
virtual |
Construct and solve the energy equation,.
convert to temperature and update thermophysical and transport properties
Implements solver.
Definition at line 211 of file incompressibleFluid.C.
|
virtual |
Construct and solve the pressure equation in the PISO loop.
Implements solver.
Definition at line 215 of file incompressibleFluid.C.
References pimple(), and tUEqn().
|
virtual |
Correct the momentum and thermophysical transport modelling.
Implements solver.
Definition at line 226 of file incompressibleFluid.C.
References pimple().
|
virtual |
Called after the PIMPLE loop at the end of the time-step.
Implements solver.
Definition at line 236 of file incompressibleFluid.C.
|
delete |
Disallow default bitwise assignment.
|
protected |
Pressure field.
Definition at line 83 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure().
|
protected |
Pressure reference.
Definition at line 86 of file incompressibleFluid.H.
|
protected |
Velocity field.
Definition at line 92 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure(), and incompressibleFluid::momentumPredictor().
|
protected |
Volumetric-flux field.
Definition at line 95 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure().
|
protected |
Kinematic viscosity model.
Definition at line 101 of file incompressibleFluid.H.
|
protected |
Pointer to the momentum transport model.
Definition at line 104 of file incompressibleFluid.H.
Referenced by incompressibleFluid::incompressibleFluid(), and incompressibleFluid::momentumPredictor().
|
protected |
MRF zone list.
Definition at line 110 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure(), and incompressibleFluid::momentumPredictor().
|
protected |
Pointer to the surface momentum field.
used to recreate the flux after mesh-change
Definition at line 117 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure().
|
protected |
Optional LTS reciprocal time-step field.
Definition at line 120 of file incompressibleFluid.H.
Referenced by incompressibleFluid::incompressibleFluid(), and incompressibleFluid::setRDeltaT().
|
protected |
Cached momentum matrix.
shared between the momentum predictor and pressure corrector
Definition at line 124 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure(), and incompressibleFluid::momentumPredictor().
const volScalarField& p |
Reference to the pressure field.
Definition at line 148 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure(), incompressibleFluid::incompressibleFluid(), and incompressibleFluid::momentumPredictor().
const volVectorField& U |
Reference to the velocity field.
Definition at line 151 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctPressure(), and incompressibleFluid::momentumPredictor().
const surfaceScalarField& phi |
Reference to the volumetric-flux field.
Definition at line 154 of file incompressibleFluid.H.
Referenced by incompressibleFluid::correctCoNum(), incompressibleFluid::correctPressure(), incompressibleFluid::momentumPredictor(), and incompressibleFluid::setRDeltaT().