53void 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_;
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,
151 dict.getOrDefault<
word>(
"h", suffixed(
"h")),
153 regionMesh().thisDb(),
163 dict.getOrDefault<
word>(
"ps", suffixed(
"ps")),
165 regionMesh().thisDb(),
176 suffixed(
"laplaceW"),
178 regionMesh().thisDb(),
189 suffixed(
"laplace2W"),
191 regionMesh().thisDb(),
204 regionMesh().thisDb(),
217 regionMesh().thisDb(),
228 suffixed(
"laplaceW0"),
230 regionMesh().thisDb(),
241 suffixed(
"laplace2W0"),
243 regionMesh().thisDb(),
271 for (
int nonOrth=0; nonOrth <= nNonOrthCorr_; ++nonOrth)
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
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())
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
@ NO_REGISTER
Do not request registration (bool: false).
@ NO_READ
Nothing to be read.
@ READ_IF_PRESENT
Reading is optional [identical to LAZY_READ].
@ MUST_READ
Reading required.
@ NO_WRITE
Ignore writing from objectRegistry::writeObject().
@ AUTO_WRITE
Automatically write from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
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,...
T getOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T, or return the given default value. FatalIOError if it is found and the number of...
label getLabel(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Same as get<label>(const word&, keyType::option).
const Type & value() const noexcept
Return const reference to value.
SolverPerformance< Type > solve(const dictionary &)
Solve returning the solution statistics.
static const word & zeroGradientType() noexcept
The type name for zeroGradient patch fields.
Template specialisation for scalar faMatrix.
void correct(GeometricField< Type, faPatchField, areaMesh > &field)
Apply correction to field.
void constrain(faMatrix< Type > &eqn)
Apply constraints to equation.
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
Vibration-shell finite-area model.
const tmp< areaScalarField > rho() const
Return density [Kg/m3].
KirchhoffShell(const word &modelType, const fvMesh &mesh, const dictionary &dict)
Construct from components and dict.
virtual void preEvolveRegion()
Pre-evolve thermal baffle.
virtual void info()
Provide some feedback.
const tmp< areaScalarField > D() const
Return stiffness.
virtual void evolveRegion()
Evolve the thermal baffle.
const dictionary & solution() const
Return the solution dictionary.
word suffixed(const char *base) const
Return the concatenation of base and the suffix hint.
const Time & time() const noexcept
Return the reference to the time database.
const faMesh & regionMesh() const
Return the region mesh database.
const fvMesh & primaryMesh() const noexcept
Return the reference to the primary mesh database.
Intermediate class for vibration-shell finite-area models.
vibrationShellModel(const word &modelType, const fvMesh &mesh, const dictionary &dict)
Construct from type name and mesh and dict.
Foam::fa::options & faOptions() noexcept
Return faOptions.
areaScalarField w_
Shell displacement [m].
areaScalarField a_
Shell acceleration [m/s2].
const solidProperties & solid() const noexcept
Return solid properties.
A class for managing sub-cycling times.
bool end() const
Return true if the number of sub-cycles has been reached.
A class for managing temporary objects.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define DebugInFunction
Report an information message using Foam::Info.
tmp< GeometricField< Type, faPatchField, areaMesh > > laplacian(const GeometricField< Type, faPatchField, areaMesh > &vf, const word &name)
tmp< GeometricField< Type, faPatchField, areaMesh > > d2dt2(const dimensioned< Type > dt, const faMesh &mesh)
tmp< GeometricField< Type, faPatchField, areaMesh > > ddt(const dimensioned< Type > dt, const faMesh &mesh)
tmp< faMatrix< Type > > d2dt2(const GeometricField< Type, faPatchField, areaMesh > &vf)
tmp< faMatrix< Type > > ddt(const GeometricField< Type, faPatchField, areaMesh > &vf)
const dimensionSet dimPressure
const dimensionSet dimless
Dimensionless.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimArea(sqr(dimLength))
faMatrix< scalar > faScalarMatrix
messageStream Info
Information stream (stdout output on master, null elsewhere).
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar sqrt(const dimensionedScalar &ds)
GeometricField< scalar, faPatchField, areaMesh > areaScalarField
const dimensionSet dimForce
MinMax< Type > gMinMax(const FieldField< Field, Type > &f)
static constexpr const zero Zero
Global zero (0).
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimDensity