Marine systems simulation
CoRiBoDynamics::Structures::ModifiableRigidElement Class Reference

#include <SupergridLineStructure.h>

+ Inheritance diagram for CoRiBoDynamics::Structures::ModifiableRigidElement:
+ Collaboration diagram for CoRiBoDynamics::Structures::ModifiableRigidElement:

Public Member Functions

 ModifiableRigidElement (int ix_P, int ix_Q, int ix_V, int ix_W)
 
void SetDiscreteElement (DiscreteElement *discrete_element)
 
DiscreteElementGetDiscreteElement ()
 
virtual void Setup (double T, const double *const X)
 
virtual const mat6 & InertialMatrix ()
 
virtual const vec6 & Forces ()
 full 6x6 Inertia Matrix More...
 
- Public Member Functions inherited from CoRiBoDynamics::RigidElement
virtual void Setup (double T, const double *const X)
 
virtual const mat6 & InertialMatrix ()=0
 
virtual const vec6 & Forces ()=0
 full 6x6 Inertia Matrix More...
 
const vec3 & P ()
 Coriolis forces and other.
 
const Quat & Q ()
 Position.
 
const vec3 & V ()
 Velocity.
 
const vec3 & W ()
 Orientation.
 
const vec3 P (const double *const X)
 Angular velocity.
 
const Quat Q (const double *const X)
 Position.
 
const vec3 V (const double *const X)
 Velocity.
 
const vec3 W (const double *const X)
 Orientation.
 
int ix_P ()
 Angular velocity.
 
int ix_Q ()
 index of Position state
 
int ix_V ()
 index of Orientation state
 
int ix_W ()
 index of Velocity state
 
int ix_N ()
 index of Angular velocity state
 
const mat3 & RotationMatrix ()
 CoRiBoDynamics element index.
 

Protected Attributes

DiscreteElementm_discrete_element
 
mat6 m_FullInertiaMatrix
 
vec6 m_Force
 
- Protected Attributes inherited from CoRiBoDynamics::RigidElement
int m_ix_N
 
int m_ix_P
 
int m_ix_Q
 
int m_ix_V
 
int m_ix_W
 
vec3 m_P
 
Quat m_Q
 
vec3 m_V
 
vec3 m_W
 
mat3 m_RotationMatrix
 

Additional Inherited Members

- Protected Member Functions inherited from CoRiBoDynamics::RigidElement
void set_element_index (int N)
 Orientation in 3x3 matrix form.
 

Detailed Description

Author
Jorgen Haavind Jensen

RigidElement implementation that can delegate its functionality to a runtime-swappable DiscreteElement unit. The specific dynamics of the ModifiableRigidElement depends on which -if any- DiscreteElement it is currently bound to

Member Function Documentation

◆ Forces()

virtual const vec6 & CoRiBoDynamics::Structures::ModifiableRigidElement::Forces ( )
virtual

◆ GetDiscreteElement()

DiscreteElement * CoRiBoDynamics::Structures::ModifiableRigidElement::GetDiscreteElement ( )

returns the currently attached discrete element, or nullptr if the rigid element is currently inactive

◆ InertialMatrix()

virtual const mat6 & CoRiBoDynamics::Structures::ModifiableRigidElement::InertialMatrix ( )
virtual

◆ Setup()

virtual void CoRiBoDynamics::Structures::ModifiableRigidElement::Setup ( double  T,
const double *const  X 
)
virtual

Update internal states (position/velocity/inertia etc.)

The basic implementation updates basic state vectors (P,V,Q,W,R) and and kinematic relations (Q_dot)

Reimplemented from CoRiBoDynamics::RigidElement.


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