50Foam::volumetricBSplinesMotionSolver::volumetricBSplinesMotionSolver
64 controlPointsMovement_
66 volBSplinesBase_.getTotalControlPointsNumber(),
78 auto& pointMovement = tPointMovement.ref();
80 label pastControlPoints(0);
84 const label nb = boxes[iNURB].getControlPoints().
size();
87 forAll(localControlPointsMovement, iCP)
89 localControlPointsMovement[iCP] =
90 controlPointsMovement_[pastControlPoints + iCP];
96 boxes[iNURB].computeNewPoints
98 localControlPointsMovement
102 pointMovement += partialMovement() -
mesh().
points();
104 pastControlPoints += nb;
107 return tPointMovement;
134 if (controlPointsMovement_.size() != controlPointsMovement.
size())
137 <<
"Attempting to replace controlPointsMovement with a set of "
141 controlPointsMovement_ = controlPointsMovement;
150 volBSplinesBase_.boundControlPointMovement(controlPointsMovement);
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
void size(const label n)
Older name for setAddressableSize.
label size() const noexcept
The number of entries in the list.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
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.
static autoPtr< motionSolver > New(const polyMesh &)
Select constructed from polyMesh.
motionSolver(const polyMesh &mesh)
Construct from polyMesh.
Mesh consisting of general polyhedral cells.
virtual const pointField & points() const
Return raw points.
A class for managing temporary objects.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
Class constructing a number of volumetric B-Splines boxes, read from dynamicMeshDict....
A mesh motion solver based on volumetric B-Splines.
virtual tmp< pointField > curPoints() const
Return point location obtained from the current motion field.
void boundControlPointMovement(vectorField &controlPointsMovement)
Bound control points movement.
vectorField controlPointsMovement_
Movement of the control points.
virtual void movePoints(const pointField &)
Update local data for geometry changes.
virtual void updateMesh(const mapPolyMesh &)
Update the mesh corresponding to given map.
volBSplinesBase & volBSplinesBase_
Reference to the underlaying volumetric B-Splines base.
virtual void solve()
Solve for motion/ Does nothing.
void setControlPointsMovement(const vectorField &controlPointsMovement)
Set control points movement.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Field< vector > vectorField
Specialisation of Field<T> for vector.
static constexpr const zero Zero
Global zero (0).
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
vectorField pointField
pointField is a vectorField.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define forAll(list, i)
Loop across all elements in list.