chrono::ChTimestepperEulerImplicitProjected Class Reference

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>

Inheritance diagram for chrono::ChTimestepperEulerImplicitProjected:
Collaboration diagram for chrono::ChTimestepperEulerImplicitProjected:

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...
 
virtual void ArchiveOut (ChArchiveOut &archive) override
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIn (ChArchiveIn &archive) override
 Method to allow de-serialization of transient data from archives.
 
- Public Member Functions inherited from chrono::ChTimestepperIIorder
 ChTimestepperIIorder (ChIntegrableIIorder *intgr=nullptr)
 Constructor.
 
virtual ~ChTimestepperIIorder ()
 Destructor.
 
virtual ChStateGetStatePos ()
 Access the state, position part, at current time.
 
virtual ChStateDeltaGetStateVel ()
 Access the state, speed part, at current time.
 
virtual ChStateDeltaGetStateAcc ()
 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 ChVectorDynamicGetLagrangeMultipliers ()
 Access the lagrangian multipliers, if any.
 
virtual void SetIntegrable (ChIntegrable *intgr)
 Set the integrable object.
 
ChIntegrableGetIntegrable ()
 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.
 

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
ChIntegrableintegrable
 
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, EULER_IMPLICIT_PROJECTED, EULER_IMPLICIT, TRAPEZOIDAL,
  TRAPEZOIDAL_LINEARIZED, HHT, HEUN, RUNGEKUTTA45,
  EULER_EXPLICIT, LEAPFROG, NEWMARK, CUSTOM
}
 Available methods for time integration (time steppers).
 
- Static Public Member Functions inherited from chrono::ChTimestepper
static std::string GetTypeAsString (Type type)
 Return the integrator type as a string.
 

Member Function Documentation

◆ Advance()

void chrono::ChTimestepperEulerImplicitProjected::Advance ( const double  dt)
overridevirtual

Performs an integration timestep.

Parameters
dttimestep to advance

Implements chrono::ChTimestepper.

◆ GetType()

virtual Type chrono::ChTimestepperEulerImplicitProjected::GetType ( ) const
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