Project Chrono: chrono::ChTimestepperNewmark Class Reference

Public Member Functions | List of all members
chrono::ChTimestepperNewmark Class Reference
Chrono::Engine » Time integrators

## 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:
[legend]
Collaboration diagram for chrono::ChTimestepperNewmark:
[legend]

## Public Member Functions
| ChTimestepperNewmark (ChIntegrableIIorder *intgr=nullptr)
| Constructors (default empty).
virtual Type | GetType () const override
| Return type of the integration method.
void | SetGammaBeta (double mgamma, double mbeta)
| Set the numerical damping parameter gamma and the beta parameter.
double | GetGamma ()
double | GetBeta ()
void | SetModifiedNewton (bool val)
| Enable/disable modified Newton.
virtual void | Advance (const double dt) override
| Performs an integration timestep.
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 ChState & | GetStatePos ()
| Access the state, position part, at current time.
virtual ChStateDelta & | GetStateVel ()
| Access the state, speed part, at current time.
virtual ChStateDelta & | GetStateAcc ()
| 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 & | GetLagrangeMultipliers ()
| Access the lagrangian multipliers, if any.
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.
Public Member Functions inherited from chrono::ChImplicitIterativeTimestepper
void | SetMaxIters (int iters)
| 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.
void | SetAbsTolerances (double abs_tolS, double abs_tolL)
| Set the absolute tolerances.
void | SetAbsTolerances (double abs_tol)
| Set the absolute tolerances.
unsigned int | GetNumIterations () const
| Return the number of iterations.
unsigned int | GetNumSetupCalls () const
| Return the number of calls to the solver's Setup function.
unsigned int | GetNumSolveCalls () const
| Return the number of calls to the solver's Solve function.

## Additional Inherited Members
Public Types inherited from chrono::ChTimestepper
enum class | 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
ChIntegrable * | integrable
double | T
ChVectorDynamic | L
bool | verbose
bool | Qc_do_clamp
double | Qc_clamping
Protected Attributes inherited from chrono::ChImplicitIterativeTimestepper
unsigned int | maxiters
| maximum number of iterations
double | reltol
| relative tolerance
double | abstolS
| absolute tolerance (states)
double | abstolL
| absolute tolerance (Lagrange multipliers)
unsigned int | numiters
| number of iterations
unsigned int | numsetups
| number of calls to the solver's Setup function
unsigned int | numsolves
| number of calls to the solver's Solve function

## Member Function Documentation

## ◆ Advance()

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

Performs an integration timestep.

Parameters

  dt | timestep to advance

Implements chrono::ChTimestepper.

## ◆ ArchiveIn()

void chrono::ChTimestepperNewmark::ArchiveIn | ( | ChArchiveIn & | archive | ) |
| overridevirtual

Method to allow de-serialization of transient data from archives.

Reimplemented from chrono::ChTimestepper.

## ◆ ArchiveOut()

void chrono::ChTimestepperNewmark::ArchiveOut | ( | ChArchiveOut & | archive | ) |
| overridevirtual

Method to allow serialization of transient data to archives.

Reimplemented from chrono::ChTimestepper.

## ◆ GetType()

virtual Type chrono::ChTimestepperNewmark::GetType | ( |  | ) | const
| inlineoverridevirtual

Return type of the integration method.

Default is CUSTOM. Derived classes should override this function.

Reimplemented from chrono::ChTimestepper.

## ◆ SetGammaBeta()

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

## ◆ SetModifiedNewton()

void chrono::ChTimestepperNewmark::SetModifiedNewton | ( | bool | val | ) |
| inline

Enable/disable modified Newton.

If enabled, the Newton matrix is evaluated, assembled, and factorized only once per step. If disabled, the Newton matrix is evaluated at every iteration of the nonlinear solver. Modified Newton iteration is enabled by default.

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono/timestepper/ChTimestepper.h
- D:/W/B/src/chrono-9.0.1/src/chrono/timestepper/ChTimestepper.cpp