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


| chrono::ChLcpConstraintTwoGPUcontN::ChLcpConstraintTwoGPUcontN | ( | ) |
Default constructor.
| chrono::ChLcpConstraintTwoGPUcontN::ChLcpConstraintTwoGPUcontN | ( | ChLcpVariables * | mvariables_a, | |
| ChLcpVariables * | mvariables_b, | |||
| ChLcpConstraintTwoGPUcontT * | aU = 0, |
|||
| ChLcpConstraintTwoGPUcontT * | aV = 0 | |||
| ) |
Construct and immediately set references to variables, also setting the U and V tangential friction constraints
| chrono::ChLcpConstraintTwoGPUcontN::ChLcpConstraintTwoGPUcontN | ( | const ChLcpConstraintTwoGPUcontN & | other | ) |
Copy constructor.
| ChLcpConstraintTwoGPUcontN& chrono::ChLcpConstraintTwoGPUcontN::operator= | ( | const ChLcpConstraintTwoGPUcontN & | other | ) |
Assignment operator: copy from other object.
| virtual void chrono::ChLcpConstraintTwoGPUcontN::SetVariables | ( | ChLcpVariables * | mvariables_a, | |
| ChLcpVariables * | mvariables_b | |||
| ) | [virtual] |
| double chrono::ChLcpConstraintTwoGPUcontN::GetFrictionCoefficient | ( | ) |
Get the friction coefficient.
| void chrono::ChLcpConstraintTwoGPUcontN::SetFrictionCoefficient | ( | double | mcoeff | ) |
Set the friction coefficient.
| ChLcpConstraintTwoGPUcontT* chrono::ChLcpConstraintTwoGPUcontN::GetTangentialConstraintU | ( | ) |
Get pointer to U tangential component.
| ChLcpConstraintTwoGPUcontT* chrono::ChLcpConstraintTwoGPUcontN::GetTangentialConstraintV | ( | ) |
Get pointer to V tangential component.
| void chrono::ChLcpConstraintTwoGPUcontN::SetTangentialConstraintU | ( | ChLcpConstraintTwoGPUcontT * | mconstr | ) |
Set pointer to U tangential component.
| void chrono::ChLcpConstraintTwoGPUcontN::SetTangentialConstraintV | ( | ChLcpConstraintTwoGPUcontT * | mconstr | ) |
Set pointer to V tangential component.
| virtual void chrono::ChLcpConstraintTwoGPUcontN::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::ChLcpConstraintTwoGPUcontN::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::ChLcpConstraintTwoGPUcontN::Get_Cq_b | ( | ) | [virtual] |
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontN::Get_Eq_a | ( | ) | [virtual] |
| virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontN::Get_Eq_b | ( | ) | [virtual] |
| virtual double chrono::ChLcpConstraintTwoGPUcontN::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::ChLcpConstraintTwoGPUcontN::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::ChLcpConstraintTwoGPUcontN::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.
| void chrono::ChLcpConstraintTwoGPUcontN::StreamIN | ( | ChStreamInBinary & | mstream | ) | [virtual] |
Method to allow deserializing a persistent binary archive (ex: a file) into transient data.
Reimplemented from chrono::ChLcpConstraintTwo.
| void chrono::ChLcpConstraintTwoGPUcontN::StreamOUT | ( | ChStreamOutBinary & | mstream | ) | [virtual] |
Method to allow serializing transient data into a persistent binary archive (ex: a file).
Reimplemented from chrono::ChLcpConstraintTwo.
double chrono::ChLcpConstraintTwoGPUcontN::friction [protected] |
the friction coefficient 'f', for sqrt(Tx^2+Ty^2)<f*Nz
ChVector chrono::ChLcpConstraintTwoGPUcontN::p2 [protected] |
Contact point on 1st surface, in world reference.
ChVector<float> chrono::ChLcpConstraintTwoGPUcontN::normal [protected] |
Contact point on 2nd surface, in world reference.
float* chrono::ChLcpConstraintTwoGPUcontN::contact_cache [protected] |
Normal on 1st surface, in world reference.
cache of multipliers for warm starting (persistent manifold is handled by coll.engine)
the pointer to U tangential component
the pointer to V tangential component
CHRONO::ENGINE