chrono::ChConstraintTuple_1vars< T > Class Template Reference
Description
template<class T>
class chrono::ChConstraintTuple_1vars< T >
This is a container for 'half' of a constraint, and contains a tuple of 1 or 2 or 3 differently-sized jacobian chunks.
For instance, this might happen because you want a constraint between an edge (i.e. two xyz variables, each per end nodes) and a triangle face (i.e. three xyz variables, each per corner), so the jacobian row matrix is split in 2 + 3 chunks, here as two tuples. The complete constraint, ChConstraintTwoTuples, will use two of these classes. Template T is a class of ChVariableTupleCarrier_Nvars type
#include <ChConstraintTuple.h>
Collaboration diagram for chrono::ChConstraintTuple_1vars< T >:
Public Member Functions | |
ChConstraintTuple_1vars () | |
Default constructor. | |
ChConstraintTuple_1vars (const ChConstraintTuple_1vars &other) | |
Copy constructor. | |
ChConstraintTuple_1vars & | operator= (const ChConstraintTuple_1vars &other) |
Assignment operator: copy from other object. | |
ChRowVectorRef | Get_Cq () |
ChVectorRef | Get_Eq () |
ChVariables * | GetVariables () |
void | SetVariables (T &m_tuple_carrier) |
void | Update_auxiliary (double &g_i) |
double | Compute_Cq_q () |
void | Increment_q (const double deltal) |
void | MultiplyAndAdd (double &result, const ChVectorDynamic< double > &vect) const |
void | MultiplyTandAdd (ChVectorDynamic< double > &result, double l) |
void | Build_Cq (ChSparseMatrix &storage, int insrow) |
void | Build_CqT (ChSparseMatrix &storage, int inscol) |
Protected Attributes | |
ChVariables * | variables |
The constrained object. | |
ChRowVectorN< double, T::nvars1 > | Cq |
The [Cq] jacobian of the constraint. | |
ChVectorN< double, T::nvars1 > | Eq |
The [Eq] product [Eq]=[invM]*[Cq]'. | |
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/solver/ChConstraintTuple.h