42 multiSolidBodyMotionFvMesh,
50 Foam::multiSolidBodyMotionFvMesh::multiSolidBodyMotionFvMesh(
const IOobject& io)
66 ).subDict(typeName +
"Coeffs")
86 "multiSolidBodyMotionFvMesh::multiSolidBodyMotionFvMesh" 89 ) <<
"Read " << undisplacedPoints_.
size()
90 <<
" undisplaced points from " << undisplacedPoints_.
objectPath()
91 <<
" but the current mesh has " <<
nPoints()
97 SBMFs_.setSize(dynamicMeshCoeffs_.
size());
107 if (zoneIDs_[zoneI] == -1)
111 "multiSolidBodyMotionFvMesh::" 112 "multiSolidBodyMotionFvMesh(const IOobject&)",
114 ) <<
"Cannot find cellZone named " << iter().keyword()
142 movePts[pointI] =
true;
160 Info<<
"Applying solid body motion " << SBMFs_[zoneI].type()
161 <<
" to " << pointIDs_[zoneI].
size() <<
" points of cellZone " 162 << iter().keyword() <<
endl;
168 SBMFs_.setSize(zoneI);
183 static bool hasWarned =
false;
185 pointField transformedPts(undisplacedPoints_);
189 const labelList& zonePoints = pointIDs_[i];
194 SBMFs_[i].transformation(),
201 if (foundObject<volVectorField>(
"U"))
210 WarningIn(
"multiSolidBodyMotionFvMesh::update()")
211 <<
"Did not find volVectorField U." 212 <<
" Not updating U boundary conditions." <<
endl;
const cellZoneMesh & cellZones() const
Return cell zone mesh.
~multiSolidBodyMotionFvMesh()
Destructor.
void transfer(List< T > &)
Transfer the contents of the argument List into this list.
A cell is defined as a list of faces with extra functionality.
static autoPtr< solidBodyMotionFunction > New(const dictionary &SBMFCoeffs, const Time &runTime)
Select constructed from the SBMFCoeffs dictionary and Time.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void size(const label)
Override size to be inconsistent with allocated storage.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
errorManipArg< error, int > exit(error &err, const int errNo=1)
const cellList & cells() const
A list of keyword definitions, which are a keyword followed by any number of values (e...
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
label size() const
Return number of elements in list.
vectorField pointField
pointField is a vectorField.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
A face is a list of labels corresponding to mesh vertices.
void setSize(const label)
Reset size of List.
Ostream & endl(Ostream &os)
Add newline and flush stream.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
#define WarningIn(functionName)
Report a warning using Foam::Warning.
A List with indirect addressing.
dimensionSet transform(const dimensionSet &)
label k
Boltzmann constant.
Spatial transformation functions for primitive fields.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
fileName objectPath() const
Return complete path + object name.
Macros for easy insertion into run-time selection tables.
static void syncPointList(const polyMesh &, List< T > &, const CombineOp &cop, const T &nullValue, const TransformOp &top)
Synchronize values on all mesh points.
bool isDict(const word &) const
Check if entry is a sub-dictionary.
void correctBoundaryConditions()
Correct boundary field.
Constant dispersed-phase particle diameter model.
virtual bool update()
Update the mesh for both mesh motion and topology change.
const Time & time() const
Return time.
label findZoneID(const word &zoneName) const
Find zone index given a name.
const dimensionedScalar c
Speed of light in a vacuum.
virtual const faceList & faces() const
Return raw faces.
wordList names() const
Return a list of zone names.
Abstract base class for geometry and/or topology changing fvMesh.
#define FatalIOErrorIn(functionName, ios)
Report an error message using Foam::FatalIOError.
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
bool movePoints()
Do what is neccessary if the mesh has moved.
defineTypeNameAndDebug(combustionModel, 0)