proteus
1.8.1
C/C++/Fortran libraries
|
#include </Users/cekees/proteus/proteus/mbd/ChVariablesBodyAddedMass.h>
Public Member Functions | |
ChVariablesBodyAddedMass () | |
virtual | ~ChVariablesBodyAddedMass () |
ChVariablesBodyAddedMass & | operator= (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 |
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.
chrono::ChVariablesBodyAddedMass::ChVariablesBodyAddedMass | ( | ) |
Definition at line 22 of file ChVariablesBodyAddedMass.cpp.
|
inlinevirtual |
Definition at line 42 of file ChVariablesBodyAddedMass.h.
|
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.
|
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.
|
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.
|
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.
|
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.
|
inline |
Definition at line 60 of file ChVariablesBodyAddedMass.h.
|
inline |
Definition at line 57 of file ChVariablesBodyAddedMass.h.
|
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.
ChVariablesBodyAddedMass & chrono::ChVariablesBodyAddedMass::operator= | ( | const ChVariablesBodyAddedMass & | other | ) |
Definition at line 33 of file ChVariablesBodyAddedMass.cpp.
void chrono::ChVariablesBodyAddedMass::SetMfullmass | ( | ChMatrixDynamic<> & | Mfullmass_in | ) |
Definition at line 48 of file ChVariablesBodyAddedMass.cpp.