36 namespace regionModels
53 void KirchhoffShell::solveDisplacement()
68 const bool f0_enabled = (f0_.
value() != scalar(0));
69 const bool f1_enabled = (f1_.
value() != scalar(0));
70 const bool f2_enabled = (f2_.
value() != scalar(0));
78 if (f0_enabled) laplaceW_.
oldTime() = laplaceW0_;
79 if (f2_enabled) laplace2W_.
oldTime() = laplace2W0_;
86 const_cast<Time&>(
time),
105 if (f0_enabled) wEqn -= f0_*
sqrt(solidD)*
fac::ddt(laplaceW_);
107 if (f2_enabled) wEqn += f2_*solidD*
fac::ddt(laplace2W_);
114 if (wSubCycle.index() >= wSubCycle.nSubCycles())
119 if (f0_enabled) laplaceW0_ = laplaceW_.
oldTime();
120 if (f2_enabled) laplace2W0_ = laplace2W_.
oldTime();
141 const word& modelType,
153 regionMesh().thisDb(),
166 regionMesh().thisDb(),
176 "laplaceW_" + regionName_,
178 regionMesh().thisDb(),
189 "laplace2W_" + regionName_,
191 regionMesh().thisDb(),
204 regionMesh().thisDb(),
215 "w00_" + regionName_,
217 regionMesh().thisDb(),
228 "laplaceW0_" + regionName_,
230 regionMesh().thisDb(),
241 "laplace2W0_" + regionName_,
243 regionMesh().thisDb(),
270 for (
int nonOrth=0; nonOrth <= nNonOrthCorr_; ++nonOrth)
const Type & value() const noexcept
Return const reference to value.
const dictionary & solution() const
Return the solution dictionary.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const tmp< areaScalarField > D() const
Return stiffness.
void constrain(faMatrix< Type > &eqn)
Apply constraints to equation.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
const word & name() const noexcept
Return the object name.
Foam::fa::options & faOptions() noexcept
Return faOptions.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const tmp< areaScalarField > rho() const
Return density [Kg/m3].
areaScalarField a_
Shell acceleration.
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)
const solidProperties & solid() const noexcept
Return solid properties.
dimensionedScalar sqrt(const dimensionedScalar &ds)
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< GeometricField< Type, faPatchField, areaMesh > > ddt(const dimensioned< Type > dt, const faMesh &mesh)
const dimensionSet dimless
Dimensionless.
areaScalarField w_
Shell displacement.
const Time & time() const
Return the top-level database.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
label getLabel(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Same as get< label >(const word&, keyType::option)
static const word & zeroGradientType() noexcept
The type name for zeroGradient patch fields.
Macros for easy insertion into run-time selection tables.
void correct(GeometricField< Type, faPatchField, areaMesh > &field)
Apply correction to field.
bool readEntry(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX, IOobjectOption::readOption readOpt=IOobjectOption::MUST_READ) const
Find entry and assign to T val. FatalIOError if it is found and the number of tokens is incorrect...
tmp< GeometricField< Type, faPatchField, areaMesh > > d2dt2(const dimensioned< Type > dt, const faMesh &mesh)
A class for handling words, derived from Foam::string.
#define DebugInFunction
Report an information message using Foam::Info.
tmp< faMatrix< Type > > d2dt2(const GeometricField< Type, faPatchField, areaMesh > &vf)
tmp< GeometricField< Type, faPatchField, areaMesh > > laplacian(const GeometricField< Type, faPatchField, areaMesh > &vf, const word &name)
virtual void preEvolveRegion()
Pre-evolve thermal baffle.
const fvMesh & primaryMesh() const noexcept
Return the reference to the primary mesh database.
const faMesh & regionMesh() const
Return the region mesh database.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
MinMax< Type > gMinMax(const FieldField< Field, Type > &f)
const iterator & end()
End of list for forward iterators.
const dimensionSet dimPressure
virtual void info()
Provide some feedback.
static tmp< GeometricField< scalar, faPatchField, areaMesh > > New(const word &name, IOobjectOption::registerOption regOpt, const Mesh &mesh, const dimensionSet &dims, const word &patchFieldType=faPatchField< scalar >::calculatedType())
Return tmp field (NO_READ, NO_WRITE) from name, mesh, dimensions and patch type. [Takes current timeN...
tmp< faMatrix< Type > > ddt(const GeometricField< Type, faPatchField, areaMesh > &vf)
const dimensionSet dimForce
const dimensionSet dimDensity
dimensionedScalar pow3(const dimensionedScalar &ds)
addToRunTimeSelectionTable(vibrationShellModel, KirchhoffShell, dictionary)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Mesh data needed to do the Finite Volume discretisation.
Template specialisation for scalar faMatrix.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
messageStream Info
Information stream (stdout output on master, null elsewhere)
const Time & time() const noexcept
Return the reference to the time database.
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
virtual void evolveRegion()
Evolve the thermal baffle.
A class for managing sub-cycling times.
defineTypeNameAndDebug(KirchhoffShell, 0)
Do not request registration (bool: false)
KirchhoffShell(const word &modelType, const fvMesh &mesh, const dictionary &dict)
Construct from components and dict.
const dimensionSet dimArea(sqr(dimLength))
static constexpr const zero Zero
Global zero (0)