Base properties for explicit solvers.

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. Note that if you apply this

#include <ChTimestepper.h>

Inheritance diagram for chrono::ChExplicitTimestepper:
Collaboration diagram for chrono::ChExplicitTimestepper:

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.

Protected Attributes


Member Function Documentation

◆ SetDiagonalLumpingON()

void chrono::ChExplicitTimestepper::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 not supported because ChIntegrable::LoadLumpedMass_Md() not implemented, throw exception. If lumping introduces some approximation, you'll get nonzero in GetLumpingError(). Optionally paramters: the stiffness penalty for constraints, and damping penalty for constraints.

The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono/timestepper/ChTimestepper.h