proteus  1.8.1
C/C++/Fortran libraries
Public Member Functions | List of all members
chrono::ChVariablesBodyAddedMass Class Reference

#include </Users/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. More...
 
void SetMfullmass (ChMatrixDynamic<> &Mfullmass_in)
 Set the inertia matrix. More...
 
ChMatrixDynamic & GetMfullmass ()
 Access the inertia matrix. More...
 
ChMatrixDynamic & GetInvMfullmass ()
 Access the inverted inertia matrix. More...
 
virtual void Compute_invMb_v (ChVectorRef result, const ChVectorConstRef vect) const override
 
virtual void Compute_inc_invMb_v (ChVectorRef result, const ChVectorConstRef vect) const override
 
virtual void Compute_inc_Mb_v (ChVectorRef result, const ChVectorConstRef vect) const override
 
virtual void MultiplyAndAdd (ChVectorRef result, const ChVectorConstRef vect, const double c_a) const override
 
virtual void DiagonalAdd (ChVectorRef result, const double c_a) const override
 
virtual void Build_M (ChSparseMatrix &storage, int insrow, int inscol, const double c_a) 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

◆ Build_M()

void chrono::ChVariablesBodyAddedMass::Build_M ( ChSparseMatrix &  storage,
int  insrow,
int  inscol,
const double  c_a 
)
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.

◆ Compute_inc_invMb_v()

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

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.

◆ Compute_inc_Mb_v()

void chrono::ChVariablesBodyAddedMass::Compute_inc_Mb_v ( ChVectorRef  result,
const 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.

◆ Compute_invMb_v()

void chrono::ChVariablesBodyAddedMass::Compute_invMb_v ( ChVectorRef  result,
const 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.

◆ DiagonalAdd()

void chrono::ChVariablesBodyAddedMass::DiagonalAdd ( 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.

◆ 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.

◆ MultiplyAndAdd()

void chrono::ChVariablesBodyAddedMass::MultiplyAndAdd ( ChVectorRef  result,
const ChVectorConstRef  vect,
const double  c_a 
) 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.

◆ operator=()

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

Definition at line 33 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: