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