| MULTIBODY SIMULATION SOFTWARE - API documentation |
#include <CHconveyor.h>


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) |
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.
| 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.
| 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