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


Public Member Functions | |
| ChLcpConstraintTwoGPUcontT () | |
| ChLcpConstraintTwoGPUcontT (ChLcpVariables *mvariables_a, ChLcpVariables *mvariables_b) | |
| ChLcpConstraintTwoGPUcontT (const ChLcpConstraintTwoGPUcontT &other) | |
| virtual ChLcpConstraint * | new_Duplicate () |
| ChLcpConstraintTwoGPUcontT & | operator= (const ChLcpConstraintTwoGPUcontT &other) |
| virtual bool | IsLinear () |
| virtual double | Violation (double mc_i) |
| virtual void | Project () |
| virtual ChMatrix < float > * | Get_Cq_a () |
| virtual ChMatrix < float > * | Get_Cq_b () |
| virtual ChMatrix < float > * | Get_Eq_a () |
| virtual ChMatrix < float > * | Get_Eq_b () |
| virtual double | Compute_Cq_q () |
| virtual void | Increment_q (const double deltal) |
| virtual void | Build_Cq (ChSparseMatrix &storage, int insrow) |
| virtual void | SetVariables (ChLcpVariables *mvariables_a, ChLcpVariables *mvariables_b) |
| virtual void | StreamIN (ChStreamInBinary &mstream) |
| virtual void | StreamOUT (ChStreamOutBinary &mstream) |
| chrono::ChLcpConstraintTwoGPUcontT::ChLcpConstraintTwoGPUcontT | ( | ) |
Default constructor.
| chrono::ChLcpConstraintTwoGPUcontT::ChLcpConstraintTwoGPUcontT | ( | ChLcpVariables * | mvariables_a, | |
| ChLcpVariables * | mvariables_b | |||
| ) |
Construct and immediately set references to variables, also setting the and the normal constraint other tangential constraint (the latter is mandatory only for the second of the two tangential constraints)
| chrono::ChLcpConstraintTwoGPUcontT::ChLcpConstraintTwoGPUcontT | ( | const ChLcpConstraintTwoGPUcontT & | other | ) |
Copy constructor.
| ChLcpConstraintTwoGPUcontT& chrono::ChLcpConstraintTwoGPUcontT::operator= | ( | const ChLcpConstraintTwoGPUcontT & | other | ) |
Assignment operator: copy from other object.
| virtual bool chrono::ChLcpConstraintTwoGPUcontT::IsLinear | ( | ) | [virtual] |
Tells that this constraint is not linear, that is: it cannot be solved with a plain simplex solver.
Reimplemented from chrono::ChLcpConstraint.
| double chrono::ChLcpConstraintTwoGPUcontT::Violation | ( | double | mc_i | ) | [virtual] |
| virtual void chrono::ChLcpConstraintTwoGPUcontT::Project | ( | ) | [virtual] |
The projection should be done directly on the GPU custom kernel code, so this won't be ever called.
Reimplemented from chrono::ChLcpConstraint.
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontT::Get_Cq_a | ( | ) | [virtual] |
Computations with the following data are done directly on the GPU custom kernel code, so this won't be ever called.
Implements chrono::ChLcpConstraintTwo.
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontT::Get_Cq_b | ( | ) | [virtual] |
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontT::Get_Eq_a | ( | ) | [virtual] |
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontT::Get_Eq_b | ( | ) | [virtual] |
| virtual double chrono::ChLcpConstraintTwoGPUcontT::Compute_Cq_q | ( | ) | [virtual] |
This function must computes the product between the row-jacobian of this constraint '[Cq_i]' and the vector of variables, 'q'. that is Cq_q=[Cq_i]*q This is used for some iterative LCP solvers. This function MUST BE OVERRIDDEN by specialized inherited classes! (since it will be called frequently, when iterative solvers are used, the implementation of the [Cq_i]*q product must be AS FAST AS POSSIBLE!). It returns the result of the computation.
Implements chrono::ChLcpConstraint.
| virtual void chrono::ChLcpConstraintTwoGPUcontT::Increment_q | ( | const double | deltal | ) | [virtual] |
This function must increment the vector of variables 'q' with the quantity [invM]*[Cq_i]'*deltal,that is q+=[invM]*[Cq_i]'*deltal This is used for some iterative LCP solvers. This function MUST BE OVERRIDDEN by specialized inherited classes!
Implements chrono::ChLcpConstraint.
| virtual void chrono::ChLcpConstraintTwoGPUcontT::Build_Cq | ( | ChSparseMatrix & | storage, | |
| int | insrow | |||
| ) | [virtual] |
Puts the jacobian portions into the 'insrow' row of a sparse matrix, where each portion of jacobian is 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) This function MUST BE OVERRIDDEN by specialized inherited classes!
Implements chrono::ChLcpConstraint.
| virtual void chrono::ChLcpConstraintTwoGPUcontT::SetVariables | ( | ChLcpVariables * | mvariables_a, | |
| ChLcpVariables * | mvariables_b | |||
| ) | [virtual] |
| void chrono::ChLcpConstraintTwoGPUcontT::StreamIN | ( | ChStreamInBinary & | mstream | ) | [virtual] |
Method to allow deserializing a persistent binary archive (ex: a file) into transient data.
Reimplemented from chrono::ChLcpConstraintTwo.
| void chrono::ChLcpConstraintTwoGPUcontT::StreamOUT | ( | ChStreamOutBinary & | mstream | ) | [virtual] |
Method to allow serializing transient data into a persistent binary archive (ex: a file).
Reimplemented from chrono::ChLcpConstraintTwo.
CHRONO::ENGINE