58 nCorr =
pimple.dict().lookupOrDefault<
int>(
"nCorrectors", 1);
59 convergenceTolerance =
pimple.dict().lookupOrDefault<scalar>(
"D", 0);
60 pimple.dict().lookup(
"compactNormalStress") >> compactNormalStress;
61 accFac =
pimple.dict().lookupOrDefault<scalar>(
"accelerationFactor", 1);
79 compactNormalStress(
pimple.
dict().lookup(
"compactNormalStress")),
101 thermo_.planeStress()
102 ? nu*E/((1 + nu)*(1 - nu))
103 : nu*E/((1 + nu)*(1 - 2*nu))
108 thermo_.planeStress()
113 threeKalpha(
"threeKalpha", threeK*thermo_.alphav()),
162 if (
thermo.thermalStress())
171 if (
thermo.thermalStress())
185 scalar initialResidual = 0;
198 if (
thermo.thermalStress())
205 initialResidual = DEqn.
solve().max().initialResidual();
209 if (mesh.schemes().steady() && accFac > 1)
211 D += (accFac - 1)*(
D -
D.oldTime());
214 if (!compactNormalStress)
223 if (compactNormalStress)
236 }
while (initialResidual > convergenceTolerance && ++iCorr < nCorr);
242 if (
thermo.thermalStress())
251 if (runTime.writeTime())
264 if (
thermo.thermalStress())
280 Info<<
"Max sigmaEq = " <<
max(sigmaEq).value()
static const Foam::dimensionedScalar D("D", Foam::dimTemperature, 257.14)
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.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
bool constrain(fvMatrix< Type > &eqn) const
Apply constraints to an equation.
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.
const fvSchemes & schemes() const
Return the fvSchemes.
const fvSolution & solution() const
Return the fvSolution.
void setFluxRequired(const word &name) const
virtual bool modified() const
Return true if the object's file (or files for objectRegistry)
virtual bool write(const bool write=true) const
Write using setting from DB.
Fundamental solid thermodynamic properties.
Base-class for solid thermodynamic properties.
Abstract base class for run-time selectable region solvers.
const fvMesh & mesh
Region mesh.
Solver module for steady or transient segregated finite-volume solution of linear-elastic,...
virtual void thermophysicalPredictor()
Construct and solve the energy equation,.
virtual ~solidDisplacement()
Destructor.
virtual void prePredictor()
Called at the beginning of the PIMPLE loop.
virtual void postSolve()
Called after the PIMPLE loop at the end of the time-step.
virtual bool dependenciesModified() const
Return true if the solver's dependencies have been modified.
solidDisplacement(fvMesh &mesh)
Construct from region mesh.
const volVectorField & D
Reference to the Displacement field.
virtual void pressureCorrector()
Construct and solve the displacement equation to obtain the stress.
virtual void postCorrector()
Correct the thermophysical transport modelling.
virtual bool read()
Read controls.
Solver module for thermal transport in solid domains and regions for conjugate heat transfer,...
virtual void thermophysicalPredictor()
Construct and solve the energy equation,.
virtual void prePredictor()
Called at the beginning of the PIMPLE loop.
virtual bool dependenciesModified() const
Return true if the solver's dependencies have been modified.
virtual void postCorrector()
Correct the thermophysical transport modelling.
virtual bool read()
Read controls.
Foam::fvConstraints & fvConstraints(Foam::fvConstraints::New(mesh))
Foam::fvModels & fvModels(Foam::fvModels::New(mesh))
pimpleControl pimple(mesh)
Calculate the divergence of the given field.
Calculate the gradient of the given field.
Calculate the laplacian of the given field.
Calculate the matrix for the second-order temporal derivative.
Calculate the matrix for the laplacian of the field.
dimensionedScalar lambda(viscosity->lookup("lambda"))
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m^2/K^4].
const dimensionedScalar mu
Atomic mass unit.
tmp< VolField< Type > > laplacian(const VolField< Type > &vf, const word &name)
tmp< VolField< typename outerProduct< vector, Type >::type > > grad(const SurfaceField< Type > &ssf)
tmp< VolField< Type > > div(const SurfaceField< Type > &ssf)
tmp< VolField< Type > > d2dt2(const VolField< Type > &vf)
tmp< fvMatrix< Type > > laplacian(const VolField< Type > &vf, const word &name)
tmp< fvMatrix< Type > > d2dt2(const VolField< Type > &vf)
addToRunTimeSelectionTable(solver, compressibleMultiphaseVoF, fvMesh)
defineTypeNameAndDebug(compressibleMultiphaseVoF, 0)
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
dimensionedScalar tr(const dimensionedSphericalTensor &dt)
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.
dimensionedSymmTensor twoSymm(const dimensionedSymmTensor &dt)
static const Identity< scalar > I
dimensionedScalar sqrt(const dimensionedScalar &ds)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
dimensioned< scalar > magSqr(const dimensioned< Type > &)
fluidMulticomponentThermo & thermo