Go to the documentation of this file.
21 #ifndef __multiRotatingAxisMotion_hpp__
22 #define __multiRotatingAxisMotion_hpp__
98 return axis_[
n].pointTangentialVel(p);
110 return axis_[
n].transferPoint(p, dt);
211 "axis name " << name <<
" does not exist. \n";
231 "out of range access to the list of axes " << i <<
endl<<
264 #endif //__multiRotatingAxisMotion_hpp__
INLINE_FUNCTION_HD realx3 pointVelocity(int32 n, const realx3 &p) const
axisVector_HD axis_
Vector of multiRotaingAxis axes.
bool readDictionary(const dictionary &dict)
Read from a dictionary.
INLINE_FUNCTION_H void syncViews()
INLINE_FUNCTION_H multiRotatingAxis * getAxisListPtrDevice()
Pointer to axis list on device.
#define fatalExit
Fatal exit.
INLINE_FUNCTION_H word indexToName(label i) const
Index of motion component to component name.
INLINE_FUNCTION_H pointer data()
INLINE_FUNCTION_HD Model & operator=(const Model &)=default
INLINE_FUNCTION_HD int32 numComponents() const
FUNCTION_H bool write(iOstream &os) const
Write to output stream os.
label numAxis_
Number of axes.
INLINE_FUNCTION_H int32 nameToIndex(const word &name) const
Name of motion component to index.
FUNCTION_H ~multiRotatingAxisMotion()=default
Destructor.
deviceViewType1D< multiRotatingAxis > axis_
iOstream & endl(iOstream &os)
Add newline and flush stream.
VectorDual< int32 > sortedIndex_
Sorted index based on number of parrents each axis ha.
INLINE_FUNCTION_H void modifyOnHost()
Kokkos::View< T * > deviceViewType1D
1D array (vector) with default device (memory space and execution space)
int32 findi(const T &val) const
Defines an axis of rotation that rotates around itself and rotates around another axis.
Interface class for any input stream
#define fatalErrorInFunction
Report a fatal error and function name and exit the application.
INLINE_FUNCTION_HD bool isMoving() const
Is moving.
bool writeDictionary(dictionary &dict) const
Write to a dictionary.
Model getModel(real t)
Retrun motion model at time t.
FUNCTION_H bool move(real t, real dt)
Move points.
Motion model class to be passed to computational units/kernels for transfing points and returning vel...
#define INLINE_FUNCTION_H
TypeInfoNV("multiRotatingAxisMotion")
Type info.
INLINE_FUNCTION_HD Model(deviceViewType1D< multiRotatingAxis > axis, int32 numAxis)
INLINE_FUNCTION_H multiRotatingAxis * getAxisListPtrHost()
Pointer to axis list on host side.
FUNCTION_H bool read(iIstream &is)
Read from input stream is.
wordList axisName_
List of axes names.
FUNCTION_H multiRotatingAxisMotion()
Empty constructor.
Rotating axis motion model for walls.
FUNCTION_H multiRotatingAxisMotion & operator=(const multiRotatingAxisMotion &)=default
Copy assignment.
#define INLINE_FUNCTION_HD
INLINE_FUNCTION_HD realx3 transferPoint(int32 n, const realx3 p, real dt) const
Interface class for any output stream.
INLINE_FUNCTION_HD realx3 operator()(int32 n, const realx3 &p) const
Dictionary holds a set of data entries or sub-dictionaries that are enclosed in a curely braces or ar...