Utility class for calculating inertia properties of a composite body.

A composite body is a collection of sub-components, each specified through its mass, a centroidal frame, and its inertia tensor (w.r.t. the centroidal frame). New sub-components can be included in the composite body and optionally marked as "voids" (holes), by specifying:

  • the mass of the sub-component
  • a sub-component centroidal frame, relative to the composite reference frame; the location of this frame represents the sub-component COM location
  • the sub-component inertia tensor w.r.t. its centroidal frame

#include <ChCompositeInertia.h>

Public Member Functions

double GetMass () const
 Get the composite mass.
const ChVector3dGetCOM () const
 Get the location of the COM.
ChMatrix33 GetInertia () const
 Get the inertia tensor w.r.t. More...
const ChMatrix33GetInertiaReference () const
 Get the inertia tensor w.r.t. the reference frame.
void AddComponent (const ChFrame<> &frame, double mass, const ChMatrix33<> &inertia, bool is_void=false)
 Include sub-component inertia properties. More...

Static Public Member Functions

static ChMatrix33 InertiaShiftMatrix (const ChVector3d &v)
 Utility function for calculating an inertia shift matrix from a given vector. More...

Member Function Documentation

◆ AddComponent()

void chrono::utils::CompositeInertia::AddComponent ( const ChFrame<> &  frame,
double  mass,
const ChMatrix33<> &  inertia,
bool  is_void = false 

Include sub-component inertia properties.

Update the inertia properties of the composite object with the specified mass and inertia of a sub-component. A sub-component is

framecentroidal frame of sub-component (relative to reference frame)
massmass of sub-component
inertiasub-component inertia tensor w.r.t. its centroidal frame
is_voidindicate if sub-component represents a material void

◆ GetInertia()

ChMatrix33 chrono::utils::CompositeInertia::GetInertia ( ) const

Get the inertia tensor w.r.t.

a centroidal frame. The return 3x3 symmetric matrix represents the inertia tensor with respect to a centroidal frame of the composite, aligned with the axes of the reference frame.

◆ InertiaShiftMatrix()

ChMatrix33 chrono::utils::CompositeInertia::InertiaShiftMatrix ( const ChVector3d v)

Utility function for calculating an inertia shift matrix from a given vector.

This matrix is used when applying the parallel axis theorem.

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/utils/ChCompositeInertia.h
  • /builds/uwsbel/chrono/src/chrono/utils/ChCompositeInertia.cpp