|
MULTIBODY SIMULATION SOFTWARE - API documentation |
#include <CHlcpConstraintTwoBodies.h>


Public Member Functions | |
| ChLcpConstraintTwoBodies () | |
| ChLcpConstraintTwoBodies (ChLcpVariablesBody *mvariables_a, ChLcpVariablesBody *mvariables_b) | |
| ChLcpConstraintTwoBodies (const ChLcpConstraintTwoBodies &other) | |
| virtual ChLcpConstraint * | new_Duplicate () |
| ChLcpConstraintTwoBodies & | operator= (const ChLcpConstraintTwoBodies &other) |
| virtual bool | IsGPUcompatible () |
| virtual ChMatrix < float > * | Get_Cq_a () |
| virtual ChMatrix < float > * | Get_Cq_b () |
| virtual ChMatrix < float > * | Get_Eq_a () |
| virtual ChMatrix < float > * | Get_Eq_b () |
| void | SetVariables (ChLcpVariables *mvariables_a, ChLcpVariables *mvariables_b) |
| virtual void | Update_auxiliary () |
| virtual double | Compute_Cq_q () |
| virtual void | Increment_q (const double deltal) |
| virtual void | Build_Cq (ChSparseMatrix &storage, int insrow) |
| virtual void | StreamIN (ChStreamInBinary &mstream) |
| virtual void | StreamOUT (ChStreamOutBinary &mstream) |
Protected Attributes | |
| ChMatrixNM< float, 1, 6 > | Cq_a |
| ChMatrixNM< float, 1, 6 > | Cq_b |
| ChMatrixNM< float, 6, 1 > | Eq_a |
| ChMatrixNM< float, 6, 1 > | Eq_b |
| chrono::ChLcpConstraintTwoBodies::ChLcpConstraintTwoBodies | ( | ) |
Default constructor.
| chrono::ChLcpConstraintTwoBodies::ChLcpConstraintTwoBodies | ( | ChLcpVariablesBody * | mvariables_a, | |
| ChLcpVariablesBody * | mvariables_b | |||
| ) |
Construct and immediately set references to variables.
| chrono::ChLcpConstraintTwoBodies::ChLcpConstraintTwoBodies | ( | const ChLcpConstraintTwoBodies & | other | ) |
Copy constructor.
| ChLcpConstraintTwoBodies & chrono::ChLcpConstraintTwoBodies::operator= | ( | const ChLcpConstraintTwoBodies & | other | ) |
Assignment operator: copy from other object.
| virtual bool chrono::ChLcpConstraintTwoBodies::IsGPUcompatible | ( | ) | [virtual] |
Return true because this is the constraint type supported by GPU solver.
Reimplemented from chrono::ChLcpConstraint.
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoBodies::Get_Cq_a | ( | ) | [virtual] |
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoBodies::Get_Cq_b | ( | ) | [virtual] |
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoBodies::Get_Eq_a | ( | ) | [virtual] |
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoBodies::Get_Eq_b | ( | ) | [virtual] |
| void chrono::ChLcpConstraintTwoBodies::SetVariables | ( | ChLcpVariables * | mvariables_a, | |
| ChLcpVariables * | mvariables_b | |||
| ) | [virtual] |
Set references to the constrained objects, each of ChLcpVariablesBody type, automatically creating/resizing jacobians if needed. If variables aren't from ChLcpVariablesBody class, an assert failure happens.
Implements chrono::ChLcpConstraintTwo.
| void chrono::ChLcpConstraintTwoBodies::Update_auxiliary | ( | ) | [virtual] |
This function updates the following auxiliary data:
Reimplemented from chrono::ChLcpConstraint.
| virtual double chrono::ChLcpConstraintTwoBodies::Compute_Cq_q | ( | ) | [virtual] |
This function must computes the product between the row-jacobian of this constraint '[Cq_i]' and the vector of variables, 'v'. that is CV=[Cq_i]*v This is used for some iterative LCP solvers.
Implements chrono::ChLcpConstraint.
| virtual void chrono::ChLcpConstraintTwoBodies::Increment_q | ( | const double | deltal | ) | [virtual] |
This function must increment the vector of variables 'v' with the quantity [invM]*[Cq_i]'*deltal,that is v+=[invM]*[Cq_i]'*deltal or better: v+=[Eq_i]*deltal This is used for some iterative LCP solvers.
Implements chrono::ChLcpConstraint.
| virtual void chrono::ChLcpConstraintTwoBodies::Build_Cq | ( | ChSparseMatrix & | storage, | |
| int | insrow | |||
| ) | [virtual] |
Puts the two jacobian parts into the 'insrow' row of a sparse matrix, where both portions of the jacobian are shifted in order to match the offset of the corresponding ChLcpVariable.The same is done on the 'insrow' column, so that the sparse matrix is kept symmetric. This is used only by the ChLcpSimplex solver (iterative solvers don't need to know jacobians explicitly)
Implements chrono::ChLcpConstraint.
| void chrono::ChLcpConstraintTwoBodies::StreamIN | ( | ChStreamInBinary & | mstream | ) | [virtual] |
Method to allow deserializing a persistent binary archive (ex: a file) into transient data.
Reimplemented from chrono::ChLcpConstraintTwo.
Reimplemented in chrono::ChLcpConstraintTwoContact, chrono::ChLcpConstraintTwoContactN, chrono::ChLcpConstraintTwoFriction, chrono::ChLcpConstraintTwoFrictionApprox, chrono::ChLcpConstraintTwoFrictionT, chrono::ChLcpConstraintTwoRollingN, and chrono::ChLcpConstraintTwoRollingT.
| void chrono::ChLcpConstraintTwoBodies::StreamOUT | ( | ChStreamOutBinary & | mstream | ) | [virtual] |
Method to allow serializing transient data into a persistent binary archive (ex: a file).
Reimplemented from chrono::ChLcpConstraintTwo.
Reimplemented in chrono::ChLcpConstraintTwoContact, chrono::ChLcpConstraintTwoContactN, chrono::ChLcpConstraintTwoFriction, chrono::ChLcpConstraintTwoFrictionApprox, chrono::ChLcpConstraintTwoFrictionT, chrono::ChLcpConstraintTwoRollingN, and chrono::ChLcpConstraintTwoRollingT.
ChMatrixNM<float,1,6> chrono::ChLcpConstraintTwoBodies::Cq_a [protected] |
The [Cq_a] jacobian of the constraint.
ChMatrixNM<float,1,6> chrono::ChLcpConstraintTwoBodies::Cq_b [protected] |
The [Cq_b] jacobian of the constraint.
ChMatrixNM<float,6,1> chrono::ChLcpConstraintTwoBodies::Eq_a [protected] |
The [Eq_a] product [Eq_a]=[invM_a]*[Cq_a]'.
ChMatrixNM<float,6,1> chrono::ChLcpConstraintTwoBodies::Eq_b [protected] |
The [Eq_a] product [Eq_b]=[invM_b]*[Cq_b]'.
CHRONO::ENGINE