Description
Class for representing an N-DOF item with mass matrix and associated variables.
This class creates an NxN generic, dense mass matrix. While this type of variables could be used for a rigid body (with N=6), it is more efficient to create specialized classes which do not use a full 6x6 matrix, but rather manage only non-zero entries in the mass matrix of a rigid body (i.e., the mass, inertia moments, and inertia products).
#include <ChVariablesGeneric.h>


Public Member Functions | |
| ChVariablesGeneric (unsigned int dof=1) | |
| ChVariablesGeneric & | operator= (const ChVariablesGeneric &other) |
| Assignment operator: copy from other object. | |
| ChMatrixDynamic & | GetMass () |
| Access the inertia matrix. | |
| ChMatrixDynamic & | GetInvMass () |
| Access the inverted inertia matrix. | |
| virtual void | ComputeMassInverseTimesVector (ChVectorRef result, ChVectorConstRef vect) const override |
| Compute the product of the inverse mass matrix by a given vector and store in result. More... | |
| virtual void | AddMassTimesVector (ChVectorRef result, ChVectorConstRef vect) const override |
| Compute the product of the mass matrix by a given vector and increment result. More... | |
| virtual void | AddMassTimesVectorInto (ChVectorRef result, ChVectorConstRef vect, const double ca) const override |
| Add the product of the mass submatrix by a given vector, scaled by ca, to result. More... | |
| virtual void | AddMassDiagonalInto (ChVectorRef result, const double ca) const override |
| Add the diagonal of the mass matrix, as a vector scaled by ca, to result. More... | |
| virtual void | PasteMassInto (ChSparseMatrix &mat, unsigned int start_row, unsigned int start_col, const double ca) const override |
| Write the mass submatrix for these variables into the specified global matrix at the offsets of each variable. More... | |
Public Member Functions inherited from chrono::ChVariables | |
| ChVariables (unsigned int dof) | |
| ChVariables & | operator= (const ChVariables &other) |
| Assignment operator: copy from other object. | |
| void | SetDisabled (bool mdis) |
| Deactivates/freezes the variable (these variables won't be modified by the system solver). | |
| bool | IsDisabled () const |
| Check if the variables have been deactivated (these variables won't be modified by the system solver). | |
| bool | IsActive () const |
| Check if these variables are currently active. More... | |
| unsigned int | GetDOF () const |
| The number of scalar variables in the vector qb (dof=degrees of freedom). | |
| ChVectorRef | State () |
| Get a reference to the differential states encapsulated by these variables. More... | |
| ChVectorRef | Force () |
| Get a reference to the generalized force corresponding to these variables. More... | |
| void | SetOffset (unsigned int moff) |
| Set offset in the global state vector. More... | |
| unsigned int | GetOffset () const |
| Get offset in the global state vector. | |
| virtual void | ArchiveOut (ChArchiveOut &archive_out) |
| virtual void | ArchiveIn (ChArchiveIn &archive_in) |
Additional Inherited Members | |
Protected Attributes inherited from chrono::ChVariables | |
| unsigned int | offset |
| offset in global q state vector (needed by some solvers) | |
| unsigned int | ndof |
| number of degrees of freedom (number of contained scalar variables) | |
Member Function Documentation
◆ AddMassDiagonalInto()
|
overridevirtual |
Add the diagonal of the mass matrix, as a vector scaled by ca, to result.
Note: 'result' is a system-level vector of appropriate size. This function must index into this vector using the offsets of each variable.
Implements chrono::ChVariables.
◆ AddMassTimesVector()
|
overridevirtual |
Compute the product of the mass matrix by a given vector and increment result.
This function must perform the operation result += M * vect for a vector of same size as the variables state.
Implements chrono::ChVariables.
◆ AddMassTimesVectorInto()
|
overridevirtual |
Add the product of the mass submatrix by a given vector, scaled by ca, to result.
Note: 'result' and 'vect' are system-level vectors of appropriate size. This function must index into these vectors using the offsets of each variable.
Implements chrono::ChVariables.
◆ ComputeMassInverseTimesVector()
|
overridevirtual |
Compute the product of the inverse mass matrix by a given vector and store in result.
This function must calculate result = M^(-1) * vect for a vector of same size as the variables state.
Implements chrono::ChVariables.
◆ PasteMassInto()
|
overridevirtual |
Write the mass submatrix for these variables into the specified global matrix at the offsets of each variable.
The masses will be scaled by the given factor 'ca'. The (start_row, start_col) pair specifies the top-left corner of the system-level mass matrix in the provided matrix. Assembling the system-level sparse matrix is required only if using a direct sparse solver or for debugging/reporting purposes.
Implements chrono::ChVariables.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/solver/ChVariablesGeneric.h
- /builds/uwsbel/chrono/src/chrono/solver/ChVariablesGeneric.cpp
Public Member Functions inherited from