MULTIBODY SIMULATION SOFTWARE - API documentation
Public Member Functions | Protected Attributes
chrono::ChLcpConstraintThreeBBShaft Class Reference

#include <CHlcpConstraintThreeBBShaft.h>

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

List of all members.

Public Member Functions

 ChLcpConstraintThreeBBShaft ()
 ChLcpConstraintThreeBBShaft (ChLcpVariablesBody *mvariables_a, ChLcpVariablesBody *mvariables_b, ChLcpVariables *mvariables_c)
 ChLcpConstraintThreeBBShaft (const ChLcpConstraintThreeBBShaft &other)
virtual ChLcpConstraintnew_Duplicate ()
ChLcpConstraintThreeBBShaftoperator= (const ChLcpConstraintThreeBBShaft &other)
virtual ChMatrix< float > * Get_Cq_a ()
virtual ChMatrix< float > * Get_Cq_b ()
virtual ChMatrix< float > * Get_Cq_c ()
virtual ChMatrix< float > * Get_Eq_a ()
virtual ChMatrix< float > * Get_Eq_b ()
virtual ChMatrix< float > * Get_Eq_c ()
void SetVariables (ChLcpVariables *mvariables_a, ChLcpVariables *mvariables_b, ChLcpVariables *mvariables_c)
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 Build_CqT (ChSparseMatrix &storage, int inscol)
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, 1, 1 > Cq_c
ChMatrixNM< float, 6, 1 > Eq_a
ChMatrixNM< float, 6, 1 > Eq_b
ChMatrixNM< float, 1, 1 > Eq_c

Detailed Description

A class for representing a constraint between two bodies (2x6dof in space) and a 1D dof (a shaft)


Member Function Documentation

virtual void chrono::ChLcpConstraintThreeBBShaft::Build_Cq ( ChSparseMatrix storage,
int  insrow 
) [virtual]

Puts the 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. This is used only by the ChLcpSimplex solver (iterative solvers don't need to know jacobians explicitly)

Implements chrono::ChLcpConstraint.

virtual void chrono::ChLcpConstraintThreeBBShaft::Build_CqT ( ChSparseMatrix storage,
int  inscol 
) [virtual]

Same as Build_Cq, but puts the _transposed_ jacobian row as a column. This function MUST BE OVERRIDDEN by specialized inherited classes!

Implements chrono::ChLcpConstraint.

virtual double chrono::ChLcpConstraintThreeBBShaft::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::ChLcpConstraintThreeBBShaft::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.

void chrono::ChLcpConstraintThreeBBShaft::SetVariables ( ChLcpVariables mvariables_a,
ChLcpVariables mvariables_b,
ChLcpVariables mvariables_c 
) [virtual]

Set references to the constrained objects, If first two variables aren't from ChLcpVariablesBody class, an assert failure happens.

Implements chrono::ChLcpConstraintThree.

void chrono::ChLcpConstraintThreeBBShaft::StreamIN ( ChStreamInBinary mstream) [virtual]

Method to allow deserializing a persistent binary archive (ex: a file) into transient data.

Reimplemented from chrono::ChLcpConstraintThree.

void chrono::ChLcpConstraintThreeBBShaft::StreamOUT ( ChStreamOutBinary mstream) [virtual]

Method to allow serializing transient data into a persistent binary archive (ex: a file).

Reimplemented from chrono::ChLcpConstraintThree.

void chrono::ChLcpConstraintThreeBBShaft::Update_auxiliary ( ) [virtual]

This function updates the following auxiliary data:

  • the Eq_a and Eq_b and Eq_c matrices
  • the g_i product This is often called by LCP solvers at the beginning of the solution process. Most often, inherited classes won't need to override this.

Reimplemented from chrono::ChLcpConstraint.


CHRONO::ENGINE
C++ library for multibody simulation, (C) Alessandro Tasora
This API documentation has been generated on Tue Jul 10 2012 by Doxygen