MULTIBODY SIMULATION SOFTWARE - API documentation

chrono::ChLcpVariablesGeneric Class Reference

#include <CHlcpVariablesGeneric.h>

Inheritance diagram for chrono::ChLcpVariablesGeneric:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ChLcpVariablesGeneric (int m_ndof=1)
ChLcpVariablesGenericoperator= (const ChLcpVariablesGeneric &other)
ChMatrixGetMass ()
ChMatrixGetInvMass ()
virtual int Get_ndof ()
virtual void Compute_invMb_v (ChMatrix< float > &result, const ChMatrix< float > &vect)
virtual void Compute_invMb_v (ChMatrix< double > &result, const ChMatrix< double > &vect)
virtual void Compute_inc_invMb_v (ChMatrix< float > &result, const ChMatrix< float > &vect)
virtual void Compute_inc_invMb_v (ChMatrix< double > &result, const ChMatrix< double > &vect)
virtual void Compute_Mb_v (ChMatrix< float > &result, const ChMatrix< float > &vect)
virtual void Compute_Mb_v (ChMatrix< double > &result, const ChMatrix< double > &vect)
virtual void Build_M (ChSparseMatrix &storage, int insrow, int inscol)


Detailed Description

Specialized class for representing a N-DOF item for a LCP system, that is an item with mass matrix and associate variables. The main difference from the base class ChLcpVariables is that the base class does not create any mass matrix, while this minimal specialization at least creates a NxN mass matrix. Of course a generic (uncompressed) NxN matrix is used. This means that, for example, this class could be used for 3D rigid bodies if N=6, however it would be better to implement a more optimized class which does not create a full 6x6 matrix (since only few elements on the diagonal would be different from 0 in case of rigid bodies), so use the ChLcpVariablesBody in this case..

Member Function Documentation

ChLcpVariablesGeneric & chrono::ChLcpVariablesGeneric::operator= ( const ChLcpVariablesGeneric other  ) 

Assignment operator: copy from other object.

ChMatrix& chrono::ChLcpVariablesGeneric::GetMass (  ) 

Access the inertia matrix.

ChMatrix& chrono::ChLcpVariablesGeneric::GetInvMass (  ) 

Access the inverted inertia matrix.

virtual int chrono::ChLcpVariablesGeneric::Get_ndof (  )  [virtual]

The number of scalar variables in the vector qb (dof=degrees of freedom)

Reimplemented from chrono::ChLcpVariables.

virtual void chrono::ChLcpVariablesGeneric::Compute_invMb_v ( ChMatrix< float > &  result,
const ChMatrix< float > &  vect 
) [virtual]

Computes the product of the inverse mass matrix by a vector, and add to result: result = [invMb]*vect

Implements chrono::ChLcpVariables.

virtual void chrono::ChLcpVariablesGeneric::Compute_inc_invMb_v ( ChMatrix< float > &  result,
const ChMatrix< float > &  vect 
) [virtual]

Computes the product of the inverse mass matrix by a vector, and increment result: result += [invMb]*vect

Implements chrono::ChLcpVariables.

virtual void chrono::ChLcpVariablesGeneric::Compute_Mb_v ( ChMatrix< float > &  result,
const ChMatrix< float > &  vect 
) [virtual]

Computes the product of the mass matrix by a vector, and set in result: result = [Mb]*vect

Implements chrono::ChLcpVariables.

virtual void chrono::ChLcpVariablesGeneric::Build_M ( ChSparseMatrix storage,
int  insrow,
int  inscol 
) [virtual]

Build the mass matrix (for these variables) storing it in 'storage' sparse matrix, at given column/row offset. This function is used only by the ChLcpSimplex solver (iterative solvers don't need to know mass matrix explicitly).

Implements chrono::ChLcpVariables.


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