56Foam::dynamicMultiMotionSolverFvMesh::dynamicMultiMotionSolverFvMesh
92 motionPtr_.resize(dynamicMeshCoeffs.size());
93 pointIDs_.resize(dynamicMeshCoeffs.size());
99 for (
const entry& dEntry : dynamicMeshCoeffs)
106 subDict.readEntry(
"cellZone", cellZoneName);
114 <<
"No matching cellZones: " << cellZoneName <<
nl
141 for (
const label zoneID :
zoneIDs)
143 for (
const label celli : cellZones()[zoneID])
145 for (
const label facei :
cells()[celli])
147 movePts.set(faces()[facei]);
157 pointIDs_[zonei] = movePts.sortedToc();
159 Info<<
"Applying motionSolver " << motionPtr_[zonei].type()
162 <<
" points of cellZone " << cellZoneName <<
endl;
169 pointIDs_.resize(zonei);
184 const labelList& zonePoints = pointIDs_[zonei];
186 const pointField newPoints(motionPtr_[zonei].newPoints());
188 for (
const label pointi : zonePoints)
190 transformedPts[pointi] = newPoints[pointi];
196 static bool hasWarned =
false;
202 Uptr->correctBoundaryConditions();
209 <<
"Did not find volVectorField U."
210 <<
" Not updating U boundary conditions." <<
endl;
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
label size() const noexcept
The number of elements in list.
void correctBoundaryConditions()
Correct boundary field.
label size() const noexcept
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
@ NO_REGISTER
Do not request registration (bool: false).
@ NO_READ
Nothing to be read.
@ NO_WRITE
Ignore writing from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void resize(const label numElem, const unsigned int val=0u)
Reset addressable list size, does not shrink the allocated size.
void reset()
Clear all bits but do not adjust the addressable size.
bool empty() const noexcept
True if List is empty (ie, size() is zero).
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
labelList sortedToc() const
The indices of the on bits as a sorted labelList.
void set(const bitSet &bitset)
Set specified bits from another bitset.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const dictionary & subDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a sub-dictionary.
Abstract base class for geometry and/or topology changing fvMesh.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
Mesh motion described per cellZone. Individual motion solvers solve over whole domain but are only ap...
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
virtual bool update()
Update the mesh for both mesh motion and topology change.
A keyword and a list of tokens is an 'entry'.
virtual bool movePoints()
Avoid masking surfaceInterpolation method.
const Time & time() const
Return the top-level database.
static autoPtr< motionSolver > New(const polyMesh &)
Select constructed from polyMesh.
Type * getObjectPtr(const word &name, const bool recursive=false) const
Return non-const pointer to the object of the given Type, using a const-cast to have it behave like a...
virtual const faceList & faces() const
Return raw faces.
const cellZoneMesh & cellZones() const noexcept
Return cell zone mesh.
A wordRe is a Foam::word, but can contain a regular expression for matching words or strings.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
const labelIOList & zoneIDs
#define WarningInFunction
Report a warning using Foam::Warning.
Different types of constants.
GeometricField< vector, fvPatchField, volMesh > volVectorField
List< label > labelList
A List of labels.
messageStream Info
Information stream (stdout output on master, null elsewhere).
T returnReduce(const T &value, BinaryOp bop, const int tag=UPstream::msgType(), const int communicator=UPstream::worldComm)
Perform reduction on a copy, using specified binary operation.
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Ostream & endl(Ostream &os)
Add newline and flush stream.
FlatOutput::OutputAdaptor< Container, Delimiters > flatOutput(const Container &obj, Delimiters delim)
Global flatOutput() function with specified output delimiters.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...
vectorField pointField
pointField is a vectorField.
errorManipArg< error, int > exit(error &err, const int errNo=1)
constexpr char nl
The newline '\n' character (0x0a).
#define forAll(list, i)
Loop across all elements in list.