Solver module for steady or transient segregated finite-volume solution of linear-elastic, small-strain deformation of a solid body, with optional thermal diffusion and thermal stresses. More...
Public Member Functions | |
TypeName ("solidDisplacement") | |
Runtime type information. More... | |
solidDisplacement (fvMesh &mesh) | |
Construct from region mesh. More... | |
solidDisplacement (const solidDisplacement &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~solidDisplacement () |
Destructor. More... | |
virtual void | prePredictor () |
Called at the beginning of the PIMPLE loop. More... | |
virtual void | thermophysicalPredictor () |
Construct and solve the energy equation,. More... | |
virtual void | pressureCorrector () |
Construct and solve the displacement equation to obtain the stress. More... | |
virtual void | postCorrector () |
Correct the thermophysical transport modelling. More... | |
virtual void | postSolve () |
Called after the PIMPLE loop at the end of the time-step. More... | |
void | operator= (const solidDisplacement &)=delete |
Disallow default bitwise assignment. More... | |
![]() | |
TypeName ("solid") | |
Runtime type information. More... | |
solid (fvMesh &mesh, autoPtr< solidThermo >) | |
Construct from region mesh and thermophysical properties. More... | |
solid (fvMesh &mesh) | |
Construct from region mesh. More... | |
solid (const solid &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~solid () |
Destructor. More... | |
virtual scalar | maxDeltaT () const |
Return the current maximum time-step for stable solution. 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 | momentumPredictor () |
Construct and optionally solve the momentum equation. More... | |
void | operator= (const solid &)=delete |
Disallow default bitwise assignment. More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 solidDisplacementThermo & | thermo |
Reference to the solid thermophysical properties. More... | |
const volVectorField & | D |
Reference to the Displacement field. More... | |
![]() | |
const solidThermo & | thermo |
Reference to the solid thermophysical properties. More... | |
const volScalarField & | T |
Reference to the temperature field. More... | |
![]() | |
const fvMesh & | mesh |
Region mesh. More... | |
const Time & | runTime |
Time. More... | |
pimpleNoLoopControl | pimple |
PIMPLE inner-loop controls. More... | |
Protected Member Functions | |
virtual bool | dependenciesModified () const |
Return true if the solver's dependencies have been modified. More... | |
virtual bool | read () |
Read controls. More... | |
![]() | |
bool | readHeaderOk (const IOstream::streamFormat defaultFormat, const word &typeName) |
Read header, check readOpt flags and read data if necessary. More... | |
![]() | |
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 | |
solidDisplacementThermo & | thermo_ |
Switch | compactNormalStress |
Switch for normal stress discretisation (required) More... | |
int | nCorr |
Maximum number of displacement/stress correctors per time-step. More... | |
scalar | convergenceTolerance |
Convergence tolerance for the displacement/stress correctors. More... | |
scalar | accFac |
Acceleration factor for faster steady-state simulations. More... | |
volVectorField | D_ |
Displacement field. More... | |
const volScalarField & | E |
Young's modulus. More... | |
const volScalarField & | nu |
Poisson's ratio. More... | |
const volScalarField | mu |
Lame's coefficient. More... | |
const volScalarField | lambda |
Lame's coefficient. More... | |
const volScalarField | threeK |
const volScalarField | threeKalpha |
volSymmTensorField | sigmaD |
Stress field. More... | |
volVectorField | divSigmaExp |
Divergence of the explicit part of the stress. More... | |
![]() | |
scalar | maxDi |
scalar | maxDeltaT_ |
autoPtr< solidThermo > | thermoPtr_ |
solidThermo & | thermo_ |
volScalarField & | T_ |
autoPtr< solidThermophysicalTransportModel > | thermophysicalTransport |
Pointer to the solid thermophysical transport model. More... | |
scalar | DiNum |
![]() | |
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 | |
![]() | |
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 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... | |
![]() | |
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 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 scalar | deltaTFactor = 1.2 |
deltaT increase factor More... | |
![]() | |
static float | fileModificationSkew |
![]() | |
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 segregated finite-volume solution of linear-elastic, small-strain deformation of a solid body, with optional thermal diffusion and thermal stresses.
Solves for the displacement vector field D, also generating the stress tensor field sigma, including the thermal stress contribution if selected.
Definition at line 56 of file solidDisplacement.H.
solidDisplacement | ( | fvMesh & | mesh | ) |
Construct from region mesh.
Definition at line 69 of file solidDisplacement.C.
References solidDisplacement::D, solver::mesh, IOobject::name(), solidDisplacement::read(), fvMesh::schemes(), and fvSchemes::setFluxRequired().
|
delete |
Disallow default bitwise copy construction.
|
virtual |
Destructor.
Definition at line 154 of file solidDisplacement.C.
|
protectedvirtual |
Return true if the solver's dependencies have been modified.
Reimplemented from solid.
Definition at line 48 of file solidDisplacement.C.
References solid::dependenciesModified(), solver::mesh, regIOobject::modified(), and fvMesh::solution().
|
protectedvirtual |
Read controls.
Reimplemented from solid.
Definition at line 54 of file solidDisplacement.C.
References pimple(), and solid::read().
Referenced by solidDisplacement::solidDisplacement().
TypeName | ( | "solidDisplacement" | ) |
Runtime type information.
|
virtual |
Called at the beginning of the PIMPLE loop.
Reimplemented from solid.
Definition at line 160 of file solidDisplacement.C.
References solid::prePredictor(), and thermo.
|
virtual |
Construct and solve the energy equation,.
convert to temperature and update thermophysical and transport properties
Reimplemented from solid.
Definition at line 169 of file solidDisplacement.C.
References thermo, and solid::thermophysicalPredictor().
|
virtual |
Construct and solve the displacement equation to obtain the stress.
Reimplemented from solid.
Definition at line 178 of file solidDisplacement.C.
References fvConstraints::constrain(), D, Foam::fvc::d2dt2(), Foam::fvm::d2dt2(), Foam::fvc::div(), fvMatrix< Type >::flux(), fvConstraints(), fvModels(), Foam::fvc::grad(), Foam::I, lambda(), Foam::fvm::laplacian(), Foam::constant::physicoChemical::mu, rho, fvMatrix< Type >::solve(), Foam::T(), thermo, Foam::tr(), and Foam::twoSymm().
|
virtual |
Correct the thermophysical transport modelling.
Reimplemented from solid.
Definition at line 240 of file solidDisplacement.C.
References solid::postCorrector(), and thermo.
|
virtual |
Called after the PIMPLE loop at the end of the time-step.
Reimplemented from solid.
Definition at line 249 of file solidDisplacement.C.
References Foam::dev(), Foam::endl(), Foam::I, Foam::Info, Foam::magSqr(), Foam::max(), Foam::constant::physicoChemical::sigma, Foam::sqrt(), thermo, and regIOobject::write().
|
delete |
Disallow default bitwise assignment.
|
protected |
Definition at line 65 of file solidDisplacement.H.
|
protected |
Switch for normal stress discretisation (required)
The compact form uses snGrad (more convergent, less accurate) The non-compact form uses grad (less convergent, more accurate)
Definition at line 73 of file solidDisplacement.H.
|
protected |
Maximum number of displacement/stress correctors per time-step.
Defaults to 1
Definition at line 77 of file solidDisplacement.H.
|
protected |
Convergence tolerance for the displacement/stress correctors.
Defaults to 0
Definition at line 81 of file solidDisplacement.H.
|
protected |
Acceleration factor for faster steady-state simulations.
Applies over-relaxation to the displacement field after solution Typically between 1 and 2, the optimal value is case dependent and should be selected to maximise convergence rate while maintaining stability. Should be set lower for higher Poisson's ratios for stability.
Definition at line 89 of file solidDisplacement.H.
|
protected |
Displacement field.
Definition at line 95 of file solidDisplacement.H.
|
protected |
Young's modulus.
Definition at line 98 of file solidDisplacement.H.
|
protected |
Poisson's ratio.
Definition at line 101 of file solidDisplacement.H.
|
protected |
Lame's coefficient.
Definition at line 104 of file solidDisplacement.H.
|
protected |
Lame's coefficient.
Definition at line 107 of file solidDisplacement.H.
|
protected |
Definition at line 109 of file solidDisplacement.H.
|
protected |
Definition at line 111 of file solidDisplacement.H.
|
protected |
Stress field.
Definition at line 117 of file solidDisplacement.H.
|
protected |
Divergence of the explicit part of the stress.
Definition at line 120 of file solidDisplacement.H.
const solidDisplacementThermo& thermo |
Reference to the solid thermophysical properties.
Definition at line 137 of file solidDisplacement.H.
const volVectorField& D |
Reference to the Displacement field.
Definition at line 140 of file solidDisplacement.H.
Referenced by solidDisplacement::solidDisplacement().