The movement driver that describes initial point locations, the current state of the points/rotations, and forwarding to the externalFileCoupler communication coordinator. More...
Public Types | |
enum class | outputFormatType { PLAIN , DICTIONARY } |
Output format types. More... | |
enum | scalingType { LENGTH = 0 , FORCE , MOMENT } |
Output format types. More... | |
Public Member Functions | |
lumpedPointMovement () | |
Default construct. More... | |
lumpedPointMovement (const dictionary &dict, label ownerId=-1) | |
Construct from dictionary, optionally with some owner information. More... | |
virtual | ~lumpedPointMovement ()=default |
Destructor. More... | |
void | readDict (const dictionary &dict) |
Update settings from dictionary. More... | |
bool | empty () const |
If no number of lumped points (locations) were specified. More... | |
label | size () const |
The number of lumped points (number of locations) More... | |
label | ownerId () const |
An owner Id, if needed for bookkeeping purposes. More... | |
void | ownerId (label id) |
Change the owner id, if needed for bookkeeping purposes. More... | |
const externalFileCoupler & | coupler () const |
Communication control. More... | |
externalFileCoupler & | coupler () |
Communication control. More... | |
bool | couplingPending (const label timeIndex) const |
Check if coupling is pending (according to the calcFrequency) More... | |
void | couplingCompleted (const label timeIndex) const |
Register that coupling is completed at this calcFrequency. More... | |
const lumpedPointState & | state0 () const |
The initial state (positions/rotations) More... | |
const lumpedPointState & | state () const |
The current state (positions/rotations) More... | |
const point & | origin () const |
The offset for lumped points, used on input. More... | |
void | scalePoints (lumpedPointState &state) const |
Scale the lumped points (on input). More... | |
scalar | relax () const |
The relaxation factor when changing states. More... | |
scalar & | relax () |
The relaxation factor when changing states. More... | |
const word & | inputName () const |
The input (state) file name. More... | |
const word & | outputName () const |
The output (forces) file name. More... | |
const word & | logName () const |
The log file name. More... | |
lumpedPointState::inputFormatType | inputFormat () const |
The input (state) file format. More... | |
lumpedPointMovement::outputFormatType | outputFormat () const |
The output (forces) file format. More... | |
quaternion::eulerOrder | rotationOrder () const |
The Euler-angle rotation order. More... | |
bool | degrees () const |
Rotation angles in degrees. More... | |
bool | hasPatchControl (const label patchIndex) const |
Check if patch control exists for specified patch. More... | |
bool | hasPatchControl (const polyPatch &pp) const |
Check if patch control exists for specified patch. More... | |
bool | hasInterpolator (const pointPatch &fpatch) const |
Check if patch control exists for specified patch. More... | |
void | checkPatchControl (const polyPatch &pp) const |
Check if patch control exists for specified patch. More... | |
void | setPatchControl (const polyPatch &pp, const wordList &ctrlNames, const pointField &points0) |
Define pressure-zones mapping for faces in the specified patches. More... | |
void | setMapping (const polyMesh &mesh, const labelUList &patchIds, const pointField &points0) |
Define pressure-zones mapping for faces in the specified patches. More... | |
void | setInterpolator (const pointPatch &fpatch, const pointField &points0) |
Check if patch control exists for specified patch. More... | |
bool | hasMapping () const |
True if the pressure-zones mapping has already been performed. More... | |
bool | hasInterpolator (const label patchIndex) const |
Check if patch interpolator exists for specified patch. More... | |
List< scalar > | areas (const polyMesh &pmesh) const |
The areas for each pressure-zone. More... | |
bool | forcesAndMoments (const polyMesh &pmesh, List< vector > &forces, List< vector > &moments) const |
The forces and moments acting on each pressure-zone. More... | |
tmp< pointField > | pointsDisplacement (const pointPatch &fpatch, const pointField &points0) const |
Displace points according to the current state. More... | |
tmp< pointField > | pointsDisplacement (const lumpedPointState &state, const pointPatch &fpatch, const pointField &points0) const |
Displace points according to specified state. More... | |
tmp< pointField > | pointsPosition (const lumpedPointState &state, const pointPatch &fpatch, const pointField &points0) const |
The points absolute position according to specified state. More... | |
void | writeDict (Ostream &os) const |
Write axis, locations, division as a dictionary. More... | |
bool | writeData (Ostream &os, const UList< vector > &forces, const UList< vector > &moments, const outputFormatType fmt=outputFormatType::PLAIN, const Tuple2< scalar, scalar > *timesWritten=nullptr) const |
Write points, forces, moments. Only call from the master process. More... | |
bool | writeData (const UList< vector > &forces, const UList< vector > &moments=List< vector >(), const Tuple2< scalar, scalar > *timesWritten=nullptr) const |
Write points, forces, moments. More... | |
bool | readState () |
Read state from file, applying relaxation as requested. More... | |
void | writeStateVTP (const lumpedPointState &state, const fileName &file) const |
Write state as VTK PolyData format. More... | |
void | writeStateVTP (const fileName &file) const |
Write state as VTK PolyData format. More... | |
void | writeForcesAndMomentsVTP (const fileName &file, const UList< vector > &forces, const UList< vector > &moments) const |
Write forces on points as VTK PolyData format. More... | |
void | writeZonesVTP (const fileName &file, const polyMesh &mesh, const pointField &points0) const |
Write pressure-zones geometry, write as VTK PolyData format. More... | |
void | writeVTP (const fileName &file, const polyMesh &mesh, const pointField &points0) const |
Write displaced geometry according to the current state,. More... | |
void | writeVTP (const fileName &file, const lumpedPointState &state, const polyMesh &mesh, const pointField &points0) const |
Write displaced geometry according to the specified state,. More... | |
Static Public Attributes | |
static const Enum< outputFormatType > | formatNames |
Names for the output format types. More... | |
static const Enum< scalingType > | scalingNames |
Names for the scaling types. More... | |
static int | debug |
Debug switch. More... | |
static const word | canonicalName |
The canonical name ("lumpedPointMovement") for the dictionary. More... | |
The movement driver that describes initial point locations, the current state of the points/rotations, and forwarding to the externalFileCoupler communication coordinator.
The lumpedPointIOMovement class is simply a registered version of the same.
See externalFileCoupler for more information about some of the communication parameters and setup.
Dictionary parameters
Property | Description | Required | Default |
---|---|---|---|
points | Initial locations of lumped points | yes | |
pointLabels | The FEA ids for the points | no | |
origin | Shift offset when reading points | no | (0 0 0) |
rotationOrder | The Euler rotation order | no | zxz |
degrees | Input rotations in degrees | no | false |
relax | Relaxation/scaling for updating positions | no | 1 |
controllers | Motion controllers (dictionary) | yes | |
forces | Force settings (dictionary) | no | |
communication | Communication settings (dictionary) | yes |
Parameters for communication dictionary
Property | Description | Required | Default |
---|---|---|---|
inputName | Name of positions input file | yes | |
outputName | Name of forces output file | yes | |
logName | Name of log file | no | movement.log |
inputFormat | Input format: dictionary/plain | yes | |
outputFormat | Output format: dictionary/plain | yes | |
scaleInput | Input scaling parameter dictionary | no | |
scaleOutput | Output scaling parameter dictionary | no | |
calcFrequency | Calculation/coupling frequency | no | 1 |
Parameters for optional communication/scaleInput dictionary
Property | Description | Required | Default |
---|---|---|---|
length | Scaling for input positions | no | 1 |
Parameters for optional communication/scaleOutput dictionary
Property | Description | Required | Default |
---|---|---|---|
length | Scaling for output positions | no | 1 |
force | Scaling for force | no | 1 |
moment | Scaling for moment | no | 1 |
Parameters for optional forces dictionary
Property | Description | Required | Default |
---|---|---|---|
p | Name of the pressure field | no | p |
pRef | Reference pressure in Pa | no | 0 |
rhoRef | Reference density for incompressible | no | 1 |
Definition at line 269 of file lumpedPointMovement.H.
|
strong |
Output format types.
Enumerator | |
---|---|
PLAIN | "plain" is a simple ASCII format |
DICTIONARY | "dictionary" is the OpenFOAM dictionary format |
Definition at line 276 of file lumpedPointMovement.H.
enum scalingType |
Output format types.
Enumerator | |
---|---|
LENGTH | The "length" scaling. |
FORCE | The "force" scaling. |
MOMENT | The "moment" scaling. |
Definition at line 283 of file lumpedPointMovement.H.
Default construct.
|
explicit |
Construct from dictionary, optionally with some owner information.
|
virtualdefault |
Destructor.
void readDict | ( | const dictionary & | dict | ) |
Update settings from dictionary.
|
inline |
If no number of lumped points (locations) were specified.
Definition at line 28 of file lumpedPointMovementI.H.
References lumpedPointState::empty().
|
inline |
The number of lumped points (number of locations)
Definition at line 34 of file lumpedPointMovementI.H.
|
inline |
An owner Id, if needed for bookkeeping purposes.
Definition at line 40 of file lumpedPointMovementI.H.
Referenced by lumpedPointIOMovement::lumpedPointIOMovement(), and lumpedPointDisplacementPointPatchVectorField::~lumpedPointDisplacementPointPatchVectorField().
|
inline |
Change the owner id, if needed for bookkeeping purposes.
Definition at line 46 of file lumpedPointMovementI.H.
|
inline |
Communication control.
Definition at line 69 of file lumpedPointMovementI.H.
|
inline |
Communication control.
Definition at line 75 of file lumpedPointMovementI.H.
bool couplingPending | ( | const label | timeIndex | ) | const |
Check if coupling is pending (according to the calcFrequency)
void couplingCompleted | ( | const label | timeIndex | ) | const |
Register that coupling is completed at this calcFrequency.
Referenced by lumpedPointDisplacementPointPatchVectorField::updateCoeffs().
|
inline |
The initial state (positions/rotations)
Definition at line 81 of file lumpedPointMovementI.H.
|
inline |
The current state (positions/rotations)
Definition at line 87 of file lumpedPointMovementI.H.
Referenced by lumpedPointMovement::writeStateVTP().
|
inline |
The offset for lumped points, used on input.
Definition at line 93 of file lumpedPointMovementI.H.
|
inline |
Scale the lumped points (on input).
Definition at line 99 of file lumpedPointMovementI.H.
References lumpedPointState::scalePoints().
|
inline |
The relaxation factor when changing states.
Definition at line 108 of file lumpedPointMovementI.H.
|
inline |
The relaxation factor when changing states.
Definition at line 114 of file lumpedPointMovementI.H.
|
inline |
The input (state) file name.
Definition at line 120 of file lumpedPointMovementI.H.
|
inline |
The output (forces) file name.
Definition at line 126 of file lumpedPointMovementI.H.
|
inline |
The log file name.
Definition at line 132 of file lumpedPointMovementI.H.
|
inline |
The input (state) file format.
Definition at line 139 of file lumpedPointMovementI.H.
|
inline |
The output (forces) file format.
Definition at line 146 of file lumpedPointMovementI.H.
|
inline |
The Euler-angle rotation order.
Definition at line 153 of file lumpedPointMovementI.H.
|
inline |
Rotation angles in degrees.
Definition at line 159 of file lumpedPointMovementI.H.
|
inline |
Check if patch control exists for specified patch.
Definition at line 53 of file lumpedPointMovementI.H.
Check if patch control exists for specified patch.
bool hasInterpolator | ( | const pointPatch & | fpatch | ) | const |
Check if patch control exists for specified patch.
void checkPatchControl | ( | const polyPatch & | pp | ) | const |
Check if patch control exists for specified patch.
void setPatchControl | ( | const polyPatch & | pp, |
const wordList & | ctrlNames, | ||
const pointField & | points0 | ||
) |
Define pressure-zones mapping for faces in the specified patches.
The face centres are compared to the controller points,
pp | The patch with a control |
ctrlNames | The patch ids to be included in the mapping |
points0 | The initial mesh points, prior to movement |
void setMapping | ( | const polyMesh & | mesh, |
const labelUList & | patchIds, | ||
const pointField & | points0 | ||
) |
Define pressure-zones mapping for faces in the specified patches.
The face centres are compared to the controller points,
mesh | The volume mesh reference |
patchIds | The patch ids to be included in the mapping |
points0 | The initial mesh points, prior to movement |
void setInterpolator | ( | const pointPatch & | fpatch, |
const pointField & | points0 | ||
) |
Check if patch control exists for specified patch.
|
inline |
True if the pressure-zones mapping has already been performed.
Definition at line 165 of file lumpedPointMovementI.H.
|
inline |
Check if patch interpolator exists for specified patch.
Definition at line 60 of file lumpedPointMovementI.H.
bool forcesAndMoments | ( | const polyMesh & | pmesh, |
List< vector > & | forces, | ||
List< vector > & | moments | ||
) | const |
The forces and moments acting on each pressure-zone.
The zones must be previously defined via setMapping.
tmp< pointField > pointsDisplacement | ( | const pointPatch & | fpatch, |
const pointField & | points0 | ||
) | const |
Displace points according to the current state.
tmp< pointField > pointsDisplacement | ( | const lumpedPointState & | state, |
const pointPatch & | fpatch, | ||
const pointField & | points0 | ||
) | const |
Displace points according to specified state.
tmp< pointField > pointsPosition | ( | const lumpedPointState & | state, |
const pointPatch & | fpatch, | ||
const pointField & | points0 | ||
) | const |
The points absolute position according to specified state.
void writeDict | ( | Ostream & | os | ) | const |
Write axis, locations, division as a dictionary.
Referenced by Foam::operator<<().
bool writeData | ( | Ostream & | os, |
const UList< vector > & | forces, | ||
const UList< vector > & | moments, | ||
const outputFormatType | fmt = outputFormatType::PLAIN , |
||
const Tuple2< scalar, scalar > * | timesWritten = nullptr |
||
) | const |
Write points, forces, moments. Only call from the master process.
bool writeData | ( | const UList< vector > & | forces, |
const UList< vector > & | moments = List< vector >() , |
||
const Tuple2< scalar, scalar > * | timesWritten = nullptr |
||
) | const |
Write points, forces, moments.
bool readState | ( | ) |
Read state from file, applying relaxation as requested.
void writeStateVTP | ( | const lumpedPointState & | state, |
const fileName & | file | ||
) | const |
Write state as VTK PolyData format.
Definition at line 37 of file lumpedPointMovementWriter.C.
References UList< T >::first(), Foam::identity(), splitCell::master(), List< T >::resize(), lumpedPointState::size(), lumpedPointMovement::state(), and lumpedPointState::writeVTP().
void writeStateVTP | ( | const fileName & | file | ) | const |
Write state as VTK PolyData format.
Definition at line 75 of file lumpedPointMovementWriter.C.
void writeForcesAndMomentsVTP | ( | const fileName & | file, |
const UList< vector > & | forces, | ||
const UList< vector > & | moments | ||
) | const |
Write forces on points as VTK PolyData format.
Definition at line 81 of file lumpedPointMovementWriter.C.
References Foam::vtk::CONNECTIVITY, format(), Foam::vtk::INLINE_ASCII, splitCell::master(), Foam::vtk::newFormatter(), nPoints, Foam::vtk::NUMBER_OF_POINTS, Foam::vtk::NUMBER_OF_VERTS, Foam::vtk::OFFSETS, os(), Foam::vtk::PIECE, points, Foam::vtk::POINTS, Foam::vtk::POLY_DATA, UList< T >::size(), OFstream::stdStream(), Foam::vtk::VERTS, Foam::vtk::writeIdentity(), and Foam::vtk::writeList().
void writeZonesVTP | ( | const fileName & | file, |
const polyMesh & | mesh, | ||
const pointField & | points0 | ||
) | const |
Write pressure-zones geometry, write as VTK PolyData format.
Definition at line 216 of file lumpedPointMovementWriter.C.
References internalMeshWriter::beginCellData(), polyMesh::boundaryMesh(), fileWriter::endCellData(), polyMesh::faces(), Foam::vtk::INLINE_ASCII, PrimitivePatch< FaceList, PointField >::localFaces(), PrimitivePatch< FaceList, PointField >::localPoints(), mesh, patches, patchIds, points0(), polyBoundaryMesh::range(), internalMeshWriter::writeGeometry(), writer(), and internalMeshWriter::writeUniform().
void writeVTP | ( | const fileName & | file, |
const polyMesh & | mesh, | ||
const pointField & | points0 | ||
) | const |
Write displaced geometry according to the current state,.
write as VTK PolyData format.
Definition at line 258 of file lumpedPointMovementWriter.C.
References mesh, and points0().
void writeVTP | ( | const fileName & | file, |
const lumpedPointState & | state, | ||
const polyMesh & | mesh, | ||
const pointField & | points0 | ||
) | const |
Write displaced geometry according to the specified state,.
write as VTK PolyData format.
Definition at line 269 of file lumpedPointMovementWriter.C.
References internalMeshWriter::beginCellData(), internalMeshWriter::beginPointData(), pointMesh::boundary(), polyMesh::boundaryMesh(), fileWriter::endCellData(), fileWriter::endPointData(), forAll, Foam::vtk::INLINE_ASCII, PrimitivePatch< FaceList, PointField >::localFaces(), mesh, patches, patchIds, points0(), UList< T >::size(), internalMeshWriter::writeGeometry(), writer(), and internalMeshWriter::writeUniform().
|
static |
Names for the output format types.
Definition at line 294 of file lumpedPointMovement.H.
|
static |
Names for the scaling types.
Definition at line 297 of file lumpedPointMovement.H.
|
static |
Debug switch.
Definition at line 382 of file lumpedPointMovement.H.
Referenced by lumpedPointDisplacementPointPatchVectorField::updateCoeffs().
|
static |
The canonical name ("lumpedPointMovement") for the dictionary.
Definition at line 385 of file lumpedPointMovement.H.
Referenced by lumpedPointIOMovement::getMovementObject(), and lumpedPointIOMovement::New().