chrono::ChTimestepperNewmark Class Reference

Description

Performs a step of Newmark constrained implicit for II order DAE systems.

See Negrut et al. 2007.

#include <ChTimestepper.h>

Inheritance diagram for chrono::ChTimestepperNewmark:
Collaboration diagram for chrono::ChTimestepperNewmark:

Public Member Functions

 ChTimestepperNewmark (ChIntegrableIIorder *mintegrable=nullptr)
 Constructors (default empty)
 
virtual Type GetType () const override
 Return type of the integration method. More...
 
void SetGammaBeta (double mgamma, double mbeta)
 Set the numerical damping parameter gamma and the beta parameter. More...
 
double GetGamma ()
 
double GetBeta ()
 
virtual void Advance (const double dt) override
 Performs an integration timestep. More...
 
virtual void ArchiveOUT (ChArchiveOut &marchive) override
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIN (ChArchiveIn &marchive) override
 Method to allow de serialization of transient data from archives.
 
- Public Member Functions inherited from chrono::ChTimestepperIIorder
 ChTimestepperIIorder (ChIntegrableIIorder *mintegrable=nullptr)
 Constructor.
 
virtual ~ChTimestepperIIorder ()
 Destructor.
 
virtual ChStateget_X ()
 Access the state, position part, at current time.
 
virtual ChStateDeltaget_V ()
 Access the state, speed part, at current time.
 
virtual ChStateDeltaget_A ()
 Access the acceleration, at current time.
 
virtual void SetIntegrable (ChIntegrableIIorder *mintegrable)
 Set the integrable object.
 
- Public Member Functions inherited from chrono::ChTimestepper
 ChTimestepper (ChIntegrable *mintegrable=nullptr)
 Constructor.
 
virtual ~ChTimestepper ()
 Destructor.
 
virtual ChVectorDynamicget_L ()
 Access the lagrangian multipliers, if any.
 
virtual void SetIntegrable (ChIntegrable *mintegrable)
 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 mverbose)
 Turn on/off logging of messages.
 
void SetQcDoClamp (bool mdc)
 Turn on/off clamping on the Qcterm.
 
void SetQcClamping (double mcl)
 Turn on/off clamping on the Qcterm.
 
- Public Member Functions inherited from chrono::ChImplicitIterativeTimestepper
void SetMaxiters (int miters)
 Set the max number of iterations using the Newton Raphson procedure.
 
double GetMaxiters ()
 Get the max number of iterations using the Newton Raphson procedure.
 
void SetRelTolerance (double rel_tol)
 Set the relative tolerance. More...
 
void SetAbsTolerances (double abs_tolS, double abs_tolL)
 Set the absolute tolerances. More...
 
void SetAbsTolerances (double abs_tol)
 Set the absolute tolerances. More...
 
int GetNumIterations () const
 Return the number of iterations.
 
int GetNumSetupCalls () const
 Return the number of calls to the solver's Setup function.
 
int GetNumSolveCalls () const
 Return the number of calls to the solver's Solve function.
 

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).
 
- 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
 
- Protected Attributes inherited from chrono::ChImplicitIterativeTimestepper
int maxiters
 maximum number of iterations
 
double reltol
 relative tolerance
 
double abstolS
 absolute tolerance (states)
 
double abstolL
 absolute tolerance (Lagrange multipliers)
 
int numiters
 number of iterations
 
int numsetups
 number of calls to the solver's Setup function
 
int numsolves
 number of calls to the solver's Solve function
 

Member Function Documentation

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

Performs an integration timestep.

Parameters
dttimestep to advance

Implements chrono::ChTimestepper.

virtual Type chrono::ChTimestepperNewmark::GetType ( ) const
overridevirtual

Return type of the integration method.

Default is CUSTOM. Derived classes should override this function.

Reimplemented from chrono::ChTimestepper.

void chrono::ChTimestepperNewmark::SetGammaBeta ( double  mgamma,
double  mbeta 
)

Set the numerical damping parameter gamma and the beta parameter.

Gamma: in the [1/2, 1] interval. For gamma = 1/2, no numerical damping For gamma > 1/2, more damping Beta: in the [0, 1] interval. For beta = 1/4, gamma = 1/2 -> constant acceleration method For beta = 1/6, gamma = 1/2 -> linear acceleration method Method is second order accurate only for gamma = 1/2