chrono::ChTimestepperExplicit Class Reference
Description
Base class for explicit integrators.
Such integrators might require solution of a nonlinear problem if constraints are added, otherwise they can use penalty in constraints and lumped masses to avoid the linear system. Diagonal lumping is off by default.
#include <ChTimestepperExplicit.h>
Inheritance diagram for chrono::ChTimestepperExplicit:

Collaboration diagram for chrono::ChTimestepperExplicit:

Public Member Functions | |
| void | SetDiagonalLumpingON (double Ck=1000, double Cr=0) |
| Turn on the diagonal lumping. More... | |
| void | SetDiagonalLumpingOFF () |
| Turn off the diagonal lumping (default is off) | |
| double | GetLumpingError () |
| Gets the diagonal lumping error done last time the integrator has been called. | |
| void | ResetLumpingError () |
| Resets the diagonal lumping error. | |
| virtual void | ArchiveOut (ChArchiveOut &archive) |
| Method to allow serialization of transient data to archives. | |
| virtual void | ArchiveIn (ChArchiveIn &archive) |
| Method to allow de-serialization of transient data from archives. | |
Public Member Functions inherited from chrono::ChTimestepper | |
| virtual Type | GetType () const =0 |
| Return type of the integration method. More... | |
| virtual ChIntegrable * | GetIntegrable () const =0 |
| Return the associated integrable object. | |
| virtual void | Advance (double dt)=0 |
| Performs an integration timestep. | |
| virtual ChVectorDynamic & | GetLagrangeMultipliers () |
| Access the Lagrange multipliers, if any. | |
| virtual double | GetTime () const |
| Get the current time. | |
| virtual void | SetTime (double mt) |
| Set the current time. | |
| void | SetVerbose (bool verb) |
| Turn on/off logging of messages. | |
Protected Attributes | |
| ChLumpingParms * | lumping_parameters |
Protected Attributes inherited from chrono::ChTimestepper | |
| bool | verbose |
| double | T |
| ChVectorDynamic | L |
| bool | Qc_do_clamp |
| double | Qc_clamping |
Additional Inherited Members | |
Public Types inherited from chrono::ChTimestepper | |
| enum | Type { EULER_EXPLICIT_I, EULER_EXPLICIT_II, EULER_SEMI_IMPLICIT, RUNGE_KUTTA, HEUN, LEAPFROG, EULER_IMPLICIT, EULER_IMPLICIT_LINEARIZED, EULER_IMPLICIT_PROJECTED, TRAPEZOIDAL, TRAPEZOIDAL_LINEARIZED, NEWMARK, HHT, CUSTOM } |
| Methods for time integration. | |
Static Public Member Functions inherited from chrono::ChTimestepper | |
| static std::string | GetTypeAsString (Type type) |
| Return the integrator type as a string. | |
Protected Member Functions inherited from chrono::ChTimestepper | |
| ChTimestepper (ChIntegrable *intgr=nullptr) | |
Member Function Documentation
◆ SetDiagonalLumpingON()
| void chrono::ChTimestepperExplicit::SetDiagonalLumpingON | ( | double | Ck = 1000, |
| double | Cr = 0 |
||
| ) |
Turn on the diagonal lumping.
This can achieve a large speedup because no linear system is needeed to compute the derivative (i.e. acceleration in II order systems), but not all Chintegrable might support the diagonal lumping.
- If lumping is not supported because ChIntegrable::LoadLumpedMass_Md() not implemented, throw exception.
- If lumping introduces some approximation, you'll get nonzero in GetLumpingError(). Optionally parameters: the stiffness penalty for constraints, and damping penalty for constraints.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/timestepper/ChTimestepperExplicit.h
- /builds/uwsbel/chrono/src/chrono/timestepper/ChTimestepperExplicit.cpp
Public Member Functions inherited from