Description

Unilateral (contact) constraints.

#include <ChConstraintRigidRigid.h>

Collaboration diagram for chrono::ChConstraintRigidRigid:

Public Member Functions

void Setup (ChParallelDataManager *dm)
 
void Project (real *gamma)
 
void Project_Single (int index, real *gamma)
 
void host_Project_single (int index, vec2 *ids, real3 *friction, real *cohesion, real *gamma)
 
void func_Project_normal (int index, const vec2 *ids, const real *cohesion, real *gam)
 
void func_Project_sliding (int index, const vec2 *ids, const real3 *fric, const real *cohesion, real *gam)
 
void func_Project_spinning (int index, const vec2 *ids, const real3 *fric, real *gam)
 
void Dx (const DynamicVector< real > &x, DynamicVector< real > &output)
 
void D_Tx (const DynamicVector< real > &x, DynamicVector< real > &output)
 
void Build_b ()
 Compute the vector of corrections.
 
void Build_E ()
 Compute the diagonal compliance matrix.
 
void Build_D ()
 Compute the jacobian matrix, no allocation is performed here, GenerateSparsity should take care of that. More...
 
void Build_s ()
 
void GenerateSparsity ()
 Fill-in the non zero entries in the bilateral jacobian with ones. More...
 

Public Attributes

int offset
 

Protected Attributes

custom_vector< bool2 > contact_active_pairs
 
real inv_h
 reciprocal of time step, 1/h
 
real inv_hpa
 1 / (h+a)
 
real inv_hhpa
 1 / h*(h+a)
 
custom_vector< real3_int > rotated_point_a
 
custom_vector< real3_int > rotated_point_b
 
custom_vector< quaternionquat_a
 
custom_vector< quaternionquat_b
 
ChParallelDataManagerdata_manager
 Pointer to the system's data manager.
 

Member Function Documentation

void ChConstraintRigidRigid::Build_D ( )

Compute the jacobian matrix, no allocation is performed here, GenerateSparsity should take care of that.

void ChConstraintRigidRigid::GenerateSparsity ( )

Fill-in the non zero entries in the bilateral jacobian with ones.

This operation is sequential.