MULTIBODY SIMULATION SOFTWARE - API documentation
Public Member Functions
chrono::ChConveyor Class Reference

#include <CHconveyor.h>

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

List of all members.

Public Member Functions

 ChConveyor (double xlength=1, double ythick=0.1, double zwidth=0.5)
 ~ChConveyor ()
void Copy (ChConveyor *source)
void SetConveyorSpeed (double mspeed)
double GetConveyorSpeed ()
virtual int GetDOF ()
virtual void InjectVariables (ChLcpSystemDescriptor &mdescriptor)
virtual void VariablesFbReset ()
virtual void VariablesFbLoadForces (double factor=1.)
virtual void VariablesQbLoadSpeed ()
virtual void VariablesQbSetSpeed (double step=0.)
virtual void VariablesQbIncrementPosition (double step)
virtual void InjectConstraints (ChLcpSystemDescriptor &mdescriptor)
virtual void ConstraintsBiReset ()
virtual void ConstraintsBiLoad_C (double factor=1., double recovery_clamp=0.1, bool do_clamp=false)
virtual void ConstraintsBiLoad_Ct (double factor=1.)
virtual void ConstraintsBiLoad_Qc (double factor=1.)
virtual void ConstraintsLoadJacobians ()
virtual void ConstraintsLiLoadSuggestedSpeedSolution ()
virtual void ConstraintsLiLoadSuggestedPositionSolution ()
virtual void ConstraintsLiFetchSuggestedSpeedSolution ()
virtual void ConstraintsLiFetchSuggestedPositionSolution ()
virtual void ConstraintsFetch_react (double factor=1.)
virtual bool GetCollide ()
virtual void SyncCollisionModels ()
virtual void AddCollisionModelsToSystem ()
virtual void RemoveCollisionModelsFromSystem ()
virtual void Update (double mytime)
void StreamIN (ChStreamInBinary &mstream)
void StreamOUT (ChStreamOutBinary &mstream)

Detailed Description

Class for conveyor belt. A conveyor belt is approximated by a box collision shape, where the upper surface has continuous motion in X direction. No cylindrical rounding is used at the ends.


Constructor & Destructor Documentation

chrono::ChConveyor::ChConveyor ( double  xlength = 1,
double  ythick = 0.1,
double  zwidth = 0.5 
)

Build a conveyor belt, with motion along x axis.

CLASS FOR CONVEYOR.


Member Function Documentation

void chrono::ChConveyor::AddCollisionModelsToSystem ( ) [virtual]

If this physical item contains one or more collision models, add them to the system's collision engine.

Reimplemented from chrono::ChBody.

void chrono::ChConveyor::ConstraintsBiLoad_C ( double  factor = 1.,
double  recovery_clamp = 0.1,
bool  do_clamp = false 
) [virtual]

Adds the current C (constraint violation) to the known term (b_i) of encapsulated ChLcpConstraints

Reimplemented from chrono::ChPhysicsItem.

void chrono::ChConveyor::ConstraintsBiLoad_Ct ( double  factor = 1.) [virtual]

Adds the current Ct (partial t-derivative, as in C_dt=0-> [Cq]*q_dt=-Ct) to the known term (b_i) of encapsulated ChLcpConstraints

Reimplemented from chrono::ChPhysicsItem.

void chrono::ChConveyor::ConstraintsBiLoad_Qc ( double  factor = 1.) [virtual]

Adds the current Qc (the vector of C_dtdt=0 -> [Cq]*q_dtdt=Qc ) to the known term (b_i) of encapsulated ChLcpConstraints

Reimplemented from chrono::ChPhysicsItem.

void chrono::ChConveyor::ConstraintsFetch_react ( double  factor = 1.) [virtual]

Fetches the reactions from the lagrangian multiplier (l_i) of encapsulated ChLcpConstraints. Mostly used after the LCP provided the solution in ChLcpConstraints. Also, should convert the reactions obtained from dynamical simulation, from link space to intuitive react_force and react_torque.

Reimplemented from chrono::ChPhysicsItem.

void chrono::ChConveyor::ConstraintsLiFetchSuggestedSpeedSolution ( ) [virtual]

After the LCP solver has found the l_i lagangian multipliers for the SPEED problem, this function will be called to store the solutions in a cache (to be implemented in ChLink sub classes) so that it can be later retrieved with ConstraintsLiLoadSuggestedSpeedSolution(). If you do not plan to implement a l_i cache, just do not override this function in child classes and do nothing.

Reimplemented from chrono::ChPhysicsItem.

void chrono::ChConveyor::ConstraintsLiLoadSuggestedSpeedSolution ( ) [virtual]

Fills the solution of the constraint (the lagrangian multiplier l_i) with an initial guess, if any. This can be used for warm-starting the LCP solver before starting the solution of the SPEED problem, if some approximate solution of constraint impulese l_i already exist (ex. cached from a previous LCP execution) When implementing this in sub classes, if no guess is available, set l_i as 0.

Reimplemented from chrono::ChPhysicsItem.

virtual bool chrono::ChConveyor::GetCollide ( ) [virtual]

Tell if the object is subject to collision. Only for interface; child classes may override this, using internal flags.

Reimplemented from chrono::ChBody.

virtual int chrono::ChConveyor::GetDOF ( ) [virtual]

Number of coordinates of the rigid body =6 (but other 6 variables are used internally for the motion of the belt surface, as a rigid 3d plate)

Reimplemented from chrono::ChBody.

void chrono::ChConveyor::InjectConstraints ( ChLcpSystemDescriptor mdescriptor) [virtual]

Tell to a system descriptor that there are contraints of type ChLcpConstraint in this object (for further passing it to a LCP solver) Basically does nothing, but maybe that inherited classes may specialize this.

Reimplemented from chrono::ChPhysicsItem.

void chrono::ChConveyor::InjectVariables ( ChLcpSystemDescriptor mdescriptor) [virtual]

Tell to a system descriptor that there are variables of type ChLcpVariables in this object (for further passing it to a LCP solver)

Reimplemented from chrono::ChBody.

void chrono::ChConveyor::RemoveCollisionModelsFromSystem ( ) [virtual]

If this physical item contains one or more collision models, remove them from the system's collision engine.

Reimplemented from chrono::ChBody.

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

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

Reimplemented from chrono::ChBody.

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

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

Reimplemented from chrono::ChBody.

void chrono::ChConveyor::VariablesFbLoadForces ( double  factor = 1.) [virtual]

Adds the current forces applied to body (including gyroscopic torque) in encapsulated ChLcpVariablesBody, in the 'fb' part: qf+=forces*factor

Reimplemented from chrono::ChBody.

void chrono::ChConveyor::VariablesQbIncrementPosition ( double  step) [virtual]

Increment body position by the 'qb' part of the ChLcpVariablesBody, multiplied by a 'step' factor. pos+=qb*step If qb is a speed, this behaves like a single step of 1-st order numerical integration (Eulero integration). Does not automatically update markers & forces.

Reimplemented from chrono::ChBody.

void chrono::ChConveyor::VariablesQbLoadSpeed ( ) [virtual]

Initialize the 'qb' part of the ChLcpVariablesBody with the current value of body speeds. Note: since 'qb' is the unknown of the LCP, this function sems unuseful, however the LCP solver has an option 'add_Mq_to_f', that takes [M]*qb and add to the 'fb' term before starting (this is often needed in the Anitescu time stepping method, for instance); this explains the need of this method..

Reimplemented from chrono::ChBody.

void chrono::ChConveyor::VariablesQbSetSpeed ( double  step = 0.) [virtual]

Fetches the body speed (both linear and angular) from the 'qb' part of the ChLcpVariablesBody (does not updates the full body&markers state) and sets it as the current body speed. If 'step' is not 0, also computes the approximate acceleration of the body using backward differences, that is accel=(new_speed-old_speed)/step. Mostly used after the LCP provided the solution in ChLcpVariablesBody .

Reimplemented from chrono::ChBody.


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