Abstract base-class for all rigid-body joints. More...
Classes | |
class | iNew |
class | XSvc |
Joint state returned by jcalc. More... | |
Public Member Functions | |
TypeName ("joint") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, joint, dictionary,(const rigidBodyModel &model, const dictionary &dict),(model, dict)) | |
joint (const rigidBodyModel &model, const label nDoF) | |
Construct joint setting the size of the motion sub-space. More... | |
joint (const joint &)=default | |
Copy constructor. More... | |
virtual autoPtr< joint > | clone () const =0 |
Clone this joint (needed by PtrList) More... | |
virtual | ~joint () |
Destructor. More... | |
label | nDoF () const |
Return the number of degrees of freedom in this joint. More... | |
virtual bool | unitQuaternion () const |
Return true if this joint describes rotation using a quaternion. More... | |
label | index () const |
Return the index of this joint in the model. More... | |
label | qIndex () const |
Return start index for the state variables for this joint. More... | |
const List< spatialVector > & | S () const |
Return the joint motion sub-space. More... | |
virtual void | jcalc (XSvc &J, const rigidBodyModelState &state) const =0 |
Update the rigidBodyModel state for the joint given. More... | |
virtual void | write (Ostream &) const |
Write. More... | |
void | operator= (const joint &j) |
Assignment. More... | |
quaternion | unitQuaternion (const scalarField &q) const |
Return the unit quaternion for this joint. More... | |
void | unitQuaternion (const quaternion &quat, scalarField &q) const |
Set the unit quaternion for this joint. More... | |
Static Public Member Functions | |
static autoPtr< joint > | New (joint *jointPtr) |
Simple selector to return an autoPtr<joint> of the given joint*. More... | |
static autoPtr< joint > | New (const rigidBodyModel &model, const dictionary &dict) |
Select from dictionary. More... | |
Protected Attributes | |
const rigidBodyModel & | model_ |
Reference to the model. More... | |
List< spatialVector > | S_ |
Joint motion sub-space. More... | |
label | index_ |
Index of this joint in the rigidBodyModel. More... | |
label | qIndex_ |
Index of this joints data in the rigidBodyModel state. More... | |
Friends | |
class | rigidBodyModel |
Allow the rigidBodyModel class to set the joint indices. More... | |
Ostream & | operator<< (Ostream &, const joint &) |
Abstract base-class for all rigid-body joints.
Featherstone, R. (2008). Rigid body dynamics algorithms. Springer. Chapter 4.
|
inline |
Construct joint setting the size of the motion sub-space.
to the given degrees of freedom of the joint
Definition at line 28 of file jointI.H.
Referenced by joint::XSvc::XSvc().
|
virtual |
Destructor.
Definition at line 76 of file joint.C.
Referenced by joint::iNew::iNew().
TypeName | ( | "joint" | ) |
Runtime type information.
Referenced by joint::XSvc::XSvc().
declareRunTimeSelectionTable | ( | autoPtr | , |
joint | , | ||
dictionary | , | ||
(const rigidBodyModel &model, const dictionary &dict) | , | ||
(model, dict) | |||
) |
|
static |
Simple selector to return an autoPtr<joint> of the given joint*.
Definition at line 43 of file joint.C.
Referenced by joint::iNew::iNew(), joint::iNew::operator()(), and rigidBodyModel::rigidBodyModel().
|
static |
Select from dictionary.
Definition at line 50 of file joint.C.
References dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, dictionary::lookup(), and Foam::nl.
|
inline |
Return the number of degrees of freedom in this joint.
Definition at line 39 of file jointI.H.
References joint::S_.
Referenced by rigidBodyModel::forwardDynamics(), rigidBodyModel::forwardDynamicsCorrection(), joint::iNew::iNew(), rigidBodyModel::join_(), and joint::XSvc::XSvc().
|
inlinevirtual |
Return true if this joint describes rotation using a quaternion.
Reimplemented in Rs.
Definition at line 44 of file jointI.H.
Referenced by joint::iNew::iNew(), Rs::jcalc(), rigidBodyModel::join_(), joint::operator=(), and joint::unitQuaternion().
|
inline |
Return the index of this joint in the model.
Definition at line 49 of file jointI.H.
References joint::index_.
|
inline |
Return start index for the state variables for this joint.
in the rigidBodyModel state fields
Definition at line 54 of file jointI.H.
References joint::qIndex_.
|
inline |
Return the joint motion sub-space.
Definition at line 59 of file jointI.H.
References joint::S_.
Referenced by function::jcalc(), and functionDot::jcalc().
|
pure virtual |
Update the rigidBodyModel state for the joint given.
the joint state q, w and velocity qDot
Implemented in composite, function, functionDot, rotating, Rs, null, Rxyz, Ryxz, Rzyx, Pa, Px, Pxyz, Py, Pz, Ra, rigid, Rx, Ry, and Rz.
Referenced by rigidBodyModel::forwardDynamics(), rigidBodyModel::forwardDynamicsCorrection(), and joint::iNew::iNew().
|
virtual |
Write.
Reimplemented in composite, Pa, Ra, and floating.
Definition at line 82 of file joint.C.
References Foam::type(), and Foam::writeEntry().
Referenced by joint::iNew::iNew(), Foam::RBD::operator<<(), floating::write(), Ra::write(), Pa::write(), and composite::write().
|
inline |
Assignment.
Definition at line 67 of file jointI.H.
References joint::index_, joint::qIndex_, joint::S_, and joint::unitQuaternion().
Referenced by joint::iNew::iNew().
|
inline |
Return the unit quaternion for this joint.
if it uses a quaternion representation for rotation
Definition at line 76 of file jointI.H.
References Foam::abort(), Field< Type >::block(), Foam::FatalError, FatalErrorInFunction, joint::qIndex_, quaternion::unit(), and joint::unitQuaternion().
|
inline |
Set the unit quaternion for this joint.
if it uses a quaternion representation for rotation
Definition at line 92 of file jointI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, joint::qIndex_, joint::unitQuaternion(), quaternion::v(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
|
friend |
Allow the rigidBodyModel class to set the joint indices.
Referenced by joint::iNew::iNew().
|
protected |
Reference to the model.
Definition at line 88 of file joint.H.
Referenced by joint::iNew::operator()().
|
protected |
Joint motion sub-space.
Definition at line 91 of file joint.H.
Referenced by Pa::jcalc(), Px::jcalc(), Rx::jcalc(), Py::jcalc(), Ry::jcalc(), Pz::jcalc(), Rz::jcalc(), Ra::jcalc(), joint::nDoF(), joint::operator=(), Pa::Pa(), Px::Px(), Pxyz::Pxyz(), Py::Py(), Pz::Pz(), Ra::Ra(), Rs::Rs(), Rx::Rx(), Rxyz::Rxyz(), Ry::Ry(), Ryxz::Ryxz(), Rz::Rz(), Rzyx::Rzyx(), joint::S(), Pa::write(), and Ra::write().
|
protected |
Index of this joint in the rigidBodyModel.
Definition at line 94 of file joint.H.
Referenced by joint::index(), and joint::operator=().
|
protected |
Index of this joints data in the rigidBodyModel state.
Definition at line 97 of file joint.H.
Referenced by Pa::jcalc(), Px::jcalc(), Rz::jcalc(), Pz::jcalc(), Ra::jcalc(), Rx::jcalc(), Pxyz::jcalc(), Ry::jcalc(), Py::jcalc(), Ryxz::jcalc(), Rzyx::jcalc(), Rxyz::jcalc(), Rs::jcalc(), joint::operator=(), joint::qIndex(), and joint::unitQuaternion().