Description
Performs a step of Euler implicit for II order systems using a semi implicit Euler without constraint stabilization, followed by a projection.
That is: a speed problem followed by a position problem that keeps constraint drifting 'closed' by using a projection. If using an underlying CCP complementarity solver, this is the typical Tasora stabilized timestepper for DVIs.
#include <ChTimestepper.h>


Public Member Functions | |
| ChTimestepperEulerImplicitProjected (ChIntegrableIIorder *intgr=nullptr) | |
| Constructors (default empty) | |
| virtual Type | GetType () const override |
| Return type of the integration method. More... | |
| virtual void | Advance (const double dt) override |
| Performs an integration timestep. More... | |
Public Member Functions inherited from chrono::ChTimestepperIIorder | |
| ChTimestepperIIorder (ChIntegrableIIorder *intgr=nullptr) | |
| Constructor. | |
| virtual | ~ChTimestepperIIorder () |
| Destructor. | |
| virtual ChState & | get_X () |
| Access the state, position part, at current time. | |
| virtual ChStateDelta & | get_V () |
| Access the state, speed part, at current time. | |
| virtual ChStateDelta & | get_A () |
| Access the acceleration, at current time. | |
| virtual void | SetIntegrable (ChIntegrableIIorder *intgr) |
| Set the integrable object. | |
Public Member Functions inherited from chrono::ChTimestepper | |
| ChTimestepper (ChIntegrable *intgr=nullptr) | |
| Constructor. | |
| virtual | ~ChTimestepper () |
| Destructor. | |
| virtual ChVectorDynamic & | get_L () |
| Access the lagrangian multipliers, if any. | |
| virtual void | SetIntegrable (ChIntegrable *intgr) |
| Set the integrable object. | |
| ChIntegrable * | GetIntegrable () |
| Get the integrable object. | |
| 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. | |
| void | SetQcDoClamp (bool dc) |
| Turn on/off clamping on the Qcterm. | |
| void | SetQcClamping (double cl) |
| Turn on/off clamping on the Qcterm. | |
| 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. | |
Protected Attributes | |
| ChStateDelta | Vold |
| ChVectorDynamic | Dl |
| ChVectorDynamic | R |
| ChVectorDynamic | Qc |
Protected Attributes inherited from chrono::ChTimestepperIIorder | |
| ChState | X |
| ChStateDelta | V |
| ChStateDelta | A |
Protected Attributes inherited from chrono::ChTimestepper | |
| ChIntegrable * | integrable |
| double | T |
| ChVectorDynamic | L |
| bool | verbose |
| bool | Qc_do_clamp |
| double | Qc_clamping |
Additional Inherited Members | |
Public Types inherited from chrono::ChTimestepper | |
| enum | Type { EULER_IMPLICIT_LINEARIZED = 0, EULER_IMPLICIT_PROJECTED = 1, EULER_IMPLICIT = 2, TRAPEZOIDAL = 3, TRAPEZOIDAL_LINEARIZED = 4, HHT = 5, HEUN = 6, RUNGEKUTTA45 = 7, EULER_EXPLICIT = 8, LEAPFROG = 9, NEWMARK = 10, CUSTOM = 20 } |
| Available methods for time integration (time steppers). | |
Member Function Documentation
◆ Advance()
|
overridevirtual |
Performs an integration timestep.
- Parameters
-
dt timestep to advance
Implements chrono::ChTimestepper.
◆ GetType()
|
inlineoverridevirtual |
Return type of the integration method.
Default is CUSTOM. Derived classes should override this function.
Reimplemented from chrono::ChTimestepper.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/timestepper/ChTimestepper.h
- /builds/uwsbel/chrono/src/chrono/timestepper/ChTimestepper.cpp
Public Member Functions inherited from