52Foam::velocityDisplacementMotionSolver::pointDisplacementBoundaryTypes()
const
60 if (
isA<fixedValuePointPatchField<vector>>(pmUbf[patchI]))
72Foam::velocityDisplacementMotionSolver::velocityDisplacementMotionSolver
79 displacementMotionSolverPtr_()
87 "pointVelocityDisplacement",
88 mesh.time().timeName(),
93 pointDisplacementBoundaryTypes()
98 displacementMotionSolverPtr_.reset
110 dict.name() +
"Coeffs",
111 mesh.time().constant(),
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]
169 patchField.patchInternalField()*deltaT
170 + patchField.patchInternalField(displacementOld);
174 displacementMotionSolverPtr_->solve();
178 (displacement.primitiveField() - displacementOld)/deltaT;
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.
static const char *const typeName
Typename for Field.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field values.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
GeometricBoundaryField< vector, pointPatchField, pointMesh > Boundary
const Internal::FieldType & primitiveField() const noexcept
Return a const-reference to the internal field values.
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 Time & time() const noexcept
Return Time associated with the objectRegistry.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T. FatalIOError if not found, or if the number of tokens is incorrect.
Virtual base class for displacement motion solver.
static autoPtr< displacementMotionSolver > New(const word &solverTypeName, const polyMesh &, const IOdictionary &, const pointVectorField &pointDisplacement, const pointIOField &points0)
Select constructed from polyMesh, dictionary and components.
Class containing mesh-to-mesh mapping information after a change in polyMesh 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.
void patchInternalField(const UList< Type1 > &internalData, const labelUList &addressing, UList< Type1 > &pfld) const
Extract field using specified addressing.
static IOobject points0IO(const polyMesh &mesh)
Return IO object for points0.
Mesh consisting of general polyhedral cells.
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 movePoints(const pointField &)
Update geometry.
virtual void updateMesh(const mapPolyMesh &)
Update topology.
virtual void solve()
Solve for motion.
Virtual base class for velocity motion solver.
velocityMotionSolver(const velocityMotionSolver &)=delete
No copy construct.
virtual void movePoints(const pointField &)
Update local data for geometry changes.
virtual void updateMesh(const mapPolyMesh &)
Update local data for topology changes.
pointVectorField & pointMotionU()
Return reference to the point motion velocity field.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
List< word > wordList
List of word.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
GeometricField< vector, pointPatchField, pointMesh > pointVectorField
vectorIOField pointIOField
pointIOField is a vectorIOField.
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
Field< vector > vectorField
Specialisation of Field<T> for vector.
pointPatchField< vector > pointPatchVectorField
vectorField pointField
pointField is a vectorField.
#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, IOobject::NO_REGISTER)))