Class CECompoundSubhinge#

Inheritance Relationships#

Base Type#

Class Documentation#

class CECompoundSubhinge : public Karana::Dynamics::CompoundSubhinge#

Represents the articulation subhinge class for compound body subhinge with embedded constraints.

Public Functions

virtual ~CECompoundSubhinge()#

Destructor.

inline virtual const std::string &typeString() const noexcept override#

The number of generalized coords for the CompoundSubhinge.

The number of velocity coords for the CompoundSubhinge.

Returns:

the number of coordinates

Returns:

the number of velocity coordinates

virtual void setQ(const Eigen::Ref<const km::Vec> &val) override#

Check whether parameters have been set.

Set the Q coordinates.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Returns:

True if the parameters have been set. Get/set methods for buffers for the generalized coordinates for this coordinate provider.

Parameters:

val – Array of values.

virtual const km::Vec &getQ() const override#

Return the Q coordinates.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Returns:

Array of values.

virtual void setU(const Eigen::Ref<const km::Vec> &val) override#

Set the U velocity coordinates.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Parameters:

val – Array of values.

virtual const km::Vec &getU() const override#

Return the U velocity coordinates.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Returns:

Array of values.

virtual void setT(const Eigen::Ref<const km::Vec> &val) override#

Set the T generalized forces.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Parameters:

val – Array of values.

virtual const km::Vec &getT() const override#

Return the T generalized forces.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Returns:

Array of values.

virtual void setUdot(const Eigen::Ref<const km::Vec> &val) override#

Set the Udot acceleration coordinates.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Parameters:

val – Array of values.

virtual const km::Vec &getUdot() const override#

Return the Udot acceleration coordinates.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Returns:

Array of values.

virtual const km::Vec &getQdot() const override#

Return the Qdot rate coordinates.

See Generalized Q, U etc coordinates section for discussion on Q, U etc coordinates.

Returns:

Array of values.

CECompoundSubhinge(kc::ks_ptr<CompoundHinge> hge, size_t indep_nU)#

Constructs a CECompoundSubhinge.

Protected Functions

virtual const km::Mat atbiCoordMapMatrix() const override#

Callback to compute the (6nbodies + bd_nU) x (bd_nU + sh_nU) coord map matrix for the compound subhinge, where bd_nU denotes the overall deformation dofs for the embedded bodies, and sh_nU the overall subhinge generalized velocities for the embedded subhinges. This is in fact the Jacobian from the aggregated subhinges and modal coords to the pnodes and modal coords of the aggregated bodies. It is referred to as $\underbar H_{G}^* = \phi^* H_G$ as defined in Eq 18.4.

There is one block row per embedded body, with the size of the row being the number of body deformation coords plus 6, with the modal etadot coords coming first followed by the 6 rigid body spatial velocity elements. There is also one block column per embedded body, with the size of the column being the number of body deformation coords + the number of subhinge genvel coords. Again, the deformation coords come first.

Protected Attributes

kc::ks_ptr<CoordData> _indep_coord_data = nullptr#

Discard the provided CECompoundSubhinge.

Param base:

- Base pointer to the CECompoundSubhinge to discard. Method to compute the 6x6 ATBI P matrix at the physical parent body’s pnode Method to compute the ATBI z spatial vector at the physical physical parent body’s pnode Method to pull out the P ATBI matrix at a base onode from the Pplus matrix. This method is used in the callback by the base onode’s atbi_matrix cache.

mutable km::Mat _dependent_coord_map_matrix#

Callback method to compute the (6 times 6*nbodies) size E_Ph_G matrix for the compound body local variable for the intermetidate coord map matrix with columns for the dependent coordinates as well. This matrix is post multiplied by X to get the actual coord map matrix for this CE subhinge

size_t _dependents_nU = 0#

keep track of the size of the dependent coords nU

mutable km::Vec _getQ_min_cache#

Vector for storing getQ.

mutable km::Vec _getU_min_cache#

Vector for storing getQdot.

Vector for storing getU

mutable km::Vec _getUdot_min_cache#

Vector for storing getUdot.

mutable km::Vec _getT_min_cache#

Vector for storing getT.