FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
rigidbody::CRigidCompositeBody Class Reference
+ Inheritance diagram for rigidbody::CRigidCompositeBody:
+ Collaboration diagram for rigidbody::CRigidCompositeBody:

Classes

struct  rbody
 

Public Member Functions

void AddComponent (CRigidBody *component, const vec6 &orientation)
 
mat6 GetInertiaMatrix (const vec3 &r, double time, const double *states, environment::EnvironmentProvider *environment)
 
vec6 GetInternalForces (const vec6 &dX, const vec3 &r, const quat &q, environment::EnvironmentProvider *environment, double time, const double *states)
 
mat64 GetGravityForceDerivative (const quat &q)
 
- Public Member Functions inherited from rigidbody::CRigidBody
vec13 GetSecondDerivative (const vec3 &r, const quat &q, const vec3 &v, const vec3 w, const vec6 &externalForces, environment::EnvironmentProvider *environment, double time, const double *states)
 
mat13 GetSecondDerivativeJacobian (const vec3 &r, const quat &q, const vec3 &v, const vec3 &w, const vec6 &externalForces, environment::EnvironmentProvider *environment, double time, const double *states)
 
void WriteStateJacobian (const double *X, int positionIndex, int quaterIndex, int velocityIndex, int omegaIndex, const vec6 &externalForces, environment::EnvironmentProvider *environment, double time, double *J, int nStates)
 

Static Protected Member Functions

static quat ComponentQuaternion (const vec3 &thetaC)
 The quaternion of a component's rotation vector thetaC.
 

Protected Attributes

list< rbody, Eigen::aligned_allocator< rbody > > clist
 
mat6 m_inertia
 

Additional Inherited Members

- Static Public Member Functions inherited from rigidbody::CRigidBody
static vec6 GetCoriolisForce (const vec6 &dX, const mat6 &Inertia)
 
static mat6 GetCoriolisForceDerivative (const vec6 &dX, const mat6 &Inertia)
 d(GetCoriolisForce)/d(dX) at a fixed inertia matrix, bodylocal.
 
static mat6 ReorientInertiaTranslateRotate (const mat6 &Inertia, const vec6 &orientation)
 
static mat3 MakeDyadic (const vec3 &vector)
 
static mat34 RotationDerivative (const quat &q, const vec3 &x)
 
static mat34 ConjugateRotationDerivative (const quat &q, const vec3 &x)
 
static mat3 GetRotation (const vec3 &angle)
 
static mat6 GetRotation6 (const vec3 &angle)
 

Member Function Documentation

◆ GetGravityForceDerivative()

mat64 rigidbody::CRigidCompositeBody::GetGravityForceDerivative ( const quat &  q)
virtual

d(gravity part of GetInternalForces)/dq, over (q.w, q.x, q.y, q.z).

q: global; return: bodylocal. The other internal forces (drag, soil) have no derivative here.

Implements rigidbody::CRigidBody.

◆ GetInertiaMatrix()

mat6 rigidbody::CRigidCompositeBody::GetInertiaMatrix ( const vec3 &  r,
double  time,
const double *  states,
environment::EnvironmentProvider *  environment 
)
virtual

Implements rigidbody::CRigidBody.

◆ GetInternalForces()

vec6 rigidbody::CRigidCompositeBody::GetInternalForces ( const vec6 &  dX,
const vec3 &  r,
const quat &  q,
environment::EnvironmentProvider *  environment,
double  time,
const double *  states 
)
virtual

Implements rigidbody::CRigidBody.


The documentation for this class was generated from the following file: