proteus 1.9.0
C/C++/Fortran libraries
Loading...
Searching...
No Matches
chrono::ChVariablesBodyAddedMass Class Reference

#include </work/cekees/proteus/proteus/mbd/ChVariablesBodyAddedMass.h>

Inheritance diagram for chrono::ChVariablesBodyAddedMass:
[legend]
Collaboration diagram for chrono::ChVariablesBodyAddedMass:
[legend]

Public Member Functions

 ChVariablesBodyAddedMass ()
virtual ~ChVariablesBodyAddedMass ()
ChVariablesBodyAddedMassoperator= (const ChVariablesBodyAddedMass &other)
 Assignment operator: copy from other object.
void SetMfullmass (ChMatrixDynamic<> &Mfullmass_in)
 Set the inertia matrix.
ChMatrixDynamic & GetMfullmass ()
 Access the inertia matrix.
ChMatrixDynamic & GetInvMfullmass ()
 Access the inverted inertia matrix.
virtual void ComputeMassInverseTimesVector (ChVectorRef result, ChVectorConstRef vect) const override
virtual void Compute_inc_invMb_v (ChVectorRef result, ChVectorConstRef vect) const
virtual void AddMassTimesVector (ChVectorRef results, ChVectorConstRef vect) const override
virtual void AddMassTimesVectorInto (ChVectorRef result, ChVectorConstRef vect, const double ca) const override
virtual void AddMassDiagonalInto (ChVectorRef result, const double c_a) const override
virtual void PasteMassInto (ChSparseMatrix &mat, unsigned int insrow, unsigned int inscol, const double c_a) const override

Detailed Description

Specialized class for representing a 6-DOF item for a system, that is a 3D rigid body, with mass matrix and associate variables (a 6 element vector, ex.speed) A full 6x6 matrix is used for the mass matrix, but forces still computed using the "mass" variable of ChVariablesBodyOwnMass

Definition at line 28 of file ChVariablesBodyAddedMass.h.

Constructor & Destructor Documentation

◆ ChVariablesBodyAddedMass()

chrono::ChVariablesBodyAddedMass::ChVariablesBodyAddedMass ( )

Definition at line 22 of file ChVariablesBodyAddedMass.cpp.

◆ ~ChVariablesBodyAddedMass()

virtual chrono::ChVariablesBodyAddedMass::~ChVariablesBodyAddedMass ( )
inlinevirtual

Definition at line 42 of file ChVariablesBodyAddedMass.h.

Member Function Documentation

◆ AddMassDiagonalInto()

void chrono::ChVariablesBodyAddedMass::AddMassDiagonalInto ( ChVectorRef result,
const double c_a ) const
overridevirtual

Add the diagonal of the mass matrix scaled by c_a, to 'result'. NOTE: the 'result' vector must already have the size of system unknowns, ie the size of the total variables&constraints in the system; the procedure will use the ChVariable offset (that must be already updated) as index.

Definition at line 142 of file ChVariablesBodyAddedMass.cpp.

◆ AddMassTimesVector()

void chrono::ChVariablesBodyAddedMass::AddMassTimesVector ( ChVectorRef results,
ChVectorConstRef vect ) const
overridevirtual

Computes the product of the mass matrix by a vector, and set in result: result = [Mb]*vect

Definition at line 119 of file ChVariablesBodyAddedMass.cpp.

◆ AddMassTimesVectorInto()

void chrono::ChVariablesBodyAddedMass::AddMassTimesVectorInto ( ChVectorRef result,
ChVectorConstRef vect,
const double ca ) const
overridevirtual

Computes the product of the corresponding block in the system matrix (ie. the mass matrix) by 'vect', scale by c_a, and add to 'result'. NOTE: the 'vect' and 'result' vectors must already have the size of the total variables&constraints in the system; the procedure will use the ChVariable offsets (that must be already updated) to know the indexes in result and vect.

Definition at line 131 of file ChVariablesBodyAddedMass.cpp.

◆ Compute_inc_invMb_v()

void chrono::ChVariablesBodyAddedMass::Compute_inc_invMb_v ( ChVectorRef result,
ChVectorConstRef vect ) const
virtual

Computes the product of the inverse mass matrix by a vector, and increment result: result += [invMb]*vect

Definition at line 111 of file ChVariablesBodyAddedMass.cpp.

◆ ComputeMassInverseTimesVector()

void chrono::ChVariablesBodyAddedMass::ComputeMassInverseTimesVector ( ChVectorRef result,
ChVectorConstRef vect ) const
overridevirtual

Computes the product of the inverse mass matrix by a vector, and set in result: result = [invMb]*vect

Definition at line 103 of file ChVariablesBodyAddedMass.cpp.

◆ GetInvMfullmass()

ChMatrixDynamic & chrono::ChVariablesBodyAddedMass::GetInvMfullmass ( )
inline

Definition at line 60 of file ChVariablesBodyAddedMass.h.

◆ GetMfullmass()

ChMatrixDynamic & chrono::ChVariablesBodyAddedMass::GetMfullmass ( )
inline

Definition at line 57 of file ChVariablesBodyAddedMass.h.

◆ operator=()

ChVariablesBodyAddedMass & chrono::ChVariablesBodyAddedMass::operator= ( const ChVariablesBodyAddedMass & other)

Definition at line 33 of file ChVariablesBodyAddedMass.cpp.

◆ PasteMassInto()

void chrono::ChVariablesBodyAddedMass::PasteMassInto ( ChSparseMatrix & mat,
unsigned int insrow,
unsigned int inscol,
const double c_a ) const
overridevirtual

Build the mass matrix (for these variables) scaled by c_a, storing it in 'storage' sparse matrix, at given column/row offset. Note, most iterative solvers don't need to know mass matrix explicitly. Optimized: doesn't fill unneeded elements except mass and 3x3 inertia.

Definition at line 153 of file ChVariablesBodyAddedMass.cpp.

◆ SetMfullmass()

void chrono::ChVariablesBodyAddedMass::SetMfullmass ( ChMatrixDynamic<> & Mfullmass_in)

Definition at line 48 of file ChVariablesBodyAddedMass.cpp.


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