52Foam::velocityDisplacementMotionSolver::pointDisplacementBoundaryTypes()
const
60 if (
isA<fixedValuePointPatchField<vector>>(pmUbf[patchI]))
62 cmUbf[patchI] = fixedValuePointPatchField<vector>::typeName;
79 displacementMotionSolverPtr_()
87 "pointVelocityDisplacement",
93 pointDisplacementBoundaryTypes()
98 displacementMotionSolverPtr_.reset
135 return displacementMotionSolverPtr_->curPoints();
143 const scalar deltaT(
mesh().time().deltaTValue());
148 displacementMotionSolverPtr_->pointDisplacement()
152 mesh().
points() - displacementMotionSolverPtr_->points0()
156 pointMotionU().correctBoundaryConditions();
161 forAll(pointMotionU().boundaryField(), patchI)
165 pointMotionU().boundaryField()[patchI]
174 displacementMotionSolverPtr_->solve();
177 pointMotionU().primitiveFieldRef() =
186 displacementMotionSolverPtr_->movePoints(
p);
197 displacementMotionSolverPtr_->updateMesh(mpm);
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
GeometricBoundaryField< vector, pointPatchField, pointMesh > Boundary
Type of boundary fields.
A primitive field of type <T> with automated input and output.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & constant() const
Return constant name.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
static word timeName(const scalar t, const int precision=precision_)
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const fileName & name() const noexcept
The dictionary name.
Virtual base class for displacement motion solver.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
void movePoints()
Update for new mesh geometry.
void updateMesh()
Update for new mesh topology.
Virtual base class for mesh motion solver.
const polyMesh & mesh() const
Return reference to mesh.
const dictionary & coeffDict() const
Const access to the coefficients dictionary.
const Time & time() const noexcept
Return time registry.
tmp< Field< Type > > patchInternalField() const
Return field created from appropriate internal field values.
static IOobject points0IO(const polyMesh &mesh)
Return IO object for points0.
Mesh consisting of general polyhedral cells.
virtual const pointField & points() const
Return raw points.
A class for managing temporary objects.
Mesh motion solver for a polyMesh. Wraps a displacement motion solver in a velocity motion solver.
virtual tmp< pointField > curPoints() const
Return point location obtained from the current motion field.
~velocityDisplacementMotionSolver()
Destructor.
virtual void solve()
Solve for motion.
Virtual base class for velocity motion solver.
pointVectorField & pointMotionU()
Return reference to the point motion velocity field.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
List< word > wordList
A List of words.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
const TargetType * isA(const Type &t)
Check if dynamic_cast to TargetType is possible.
#define forAll(list, i)
Loop across all elements in list.
pointField points0(pointIOField(IOobject("points", mesh.time().constant(), polyMesh::meshSubDir, mesh, IOobject::MUST_READ, IOobject::NO_WRITE, false)))