MULTIBODY SIMULATION SOFTWARE - API documentation

chrono::ChLcpConstraintTwoGPUcontT Class Reference

#include <CHlcpConstraintTwoGPUcontT.h>

Inheritance diagram for chrono::ChLcpConstraintTwoGPUcontT:

Inheritance graph
[legend]
Collaboration diagram for chrono::ChLcpConstraintTwoGPUcontT:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ChLcpConstraintTwoGPUcontT ()
 ChLcpConstraintTwoGPUcontT (ChLcpVariables *mvariables_a, ChLcpVariables *mvariables_b)
 ChLcpConstraintTwoGPUcontT (const ChLcpConstraintTwoGPUcontT &other)
virtual ChLcpConstraintnew_Duplicate ()
ChLcpConstraintTwoGPUcontToperator= (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)


Detailed Description

Base class for friction constraints (see specialized children classes for more details - this is mostly an interface)

Constructor & Destructor Documentation

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.


Member Function Documentation

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]

The constraint is satisfied?

Reimplemented from chrono::ChLcpConstraint.

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]

Access jacobian matrix.

Implements chrono::ChLcpConstraintTwo.

virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontT::Get_Eq_a (  )  [virtual]

Access auxiliary matrix (ex: used by iterative solvers).

Implements chrono::ChLcpConstraintTwo.

virtual ChMatrix<float>* chrono::ChLcpConstraintTwoGPUcontT::Get_Eq_b (  )  [virtual]

Access auxiliary matrix (ex: used by iterative solvers).

Implements chrono::ChLcpConstraintTwo.

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]

Set references to the constrained objects.

Implements chrono::ChLcpConstraintTwo.

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
C++ library for multibody simulation, (C) Alessandro Tasora
This API documentation has been generated on 17 Jul 2009 by Doxygen