chrono::ChTimestepperNewmark Class Reference
Description
Newmark constrained implicit for II order DAE systems.
#include <ChTimestepperImplicit.h>
Inheritance diagram for chrono::ChTimestepperNewmark:

Collaboration diagram for chrono::ChTimestepperNewmark:

Public Member Functions | |
| ChTimestepperNewmark (ChIntegrableIIorder *intgr=nullptr) | |
| virtual Type | GetType () const override |
| Return type of the integration method. More... | |
| virtual ChIntegrable * | GetIntegrable () const override |
| Return the associated integrable object. | |
| void | SetGammaBeta (double gamma_val, double beta_val) |
| Set the numerical damping parameter gamma and the beta parameter. More... | |
| double | GetGamma () const |
| double | GetBeta () const |
| virtual void | OnAdvance (double dt) override |
| Perform an integration step. | |
| 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 | |
| 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. | |
| ChIntegrableIIorder * | GetIntegrableIIorder () const |
| Get the integrable object. | |
Public Member Functions inherited from chrono::ChTimestepperImplicit | |
| void | SetMaxIters (int iters) |
| Set the max number of Newton iterations. | |
| 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... | |
| void | SetJacobianUpdateMethod (JacobianUpdate method) |
| Set the strategy for Jacobian update (default: EVERY_STEP). | |
| double | GetMaxIters () const |
| Get the max number of iterations using the Newton Raphson procedure. | |
| JacobianUpdate | GetJacobianUpdateMethod () const |
| Get the current Jacobian update startegy. | |
| unsigned int | GetNumStepIterations () const |
| Return the number of Newton iterations over the last step. | |
| unsigned int | GetNumStepSetupCalls () const |
| Return the number of calls to the solver's Setup function made during the last step. | |
| unsigned int | GetNumStepSolveCalls () const |
| Return the number of calls to the solver's Solve function made over the last step. | |
| double | GetEstimatedConvergenceRate () const |
| Get the last estimated convergence rate for the internal Newton solver. More... | |
| unsigned int | GetNumIterations () const |
| Return the cumulative number of Newton iterations. | |
| unsigned int | GetNumSetupCalls () const |
| Return the cummulative number of calls to the solver's Setup function. | |
| unsigned int | GetNumSolveCalls () const |
| Return the cumulative number of calls to the solver's Solve function. | |
| void | AcceptTerminatedStep (bool accept) |
| Accept step after a non-converged Newton solve (default: true). More... | |
| unsigned int | GetNumTerminated () const |
| Return the number of terminated Newton solves. More... | |
| void | SetStepControl (bool enable) |
| Turn on/off the internal step size control. More... | |
| void | SetMinStepSize (double step) |
| Set the minimum step size. More... | |
| void | SetMaxItersSuccess (int iters) |
| Set the maximum allowable number of iterations for counting a step towards a stepsize increase. More... | |
| void | SetRequiredSuccessfulSteps (int num_steps) |
| Set the minimum number of (internal) steps that use at most maxiters_success before considering a stepsize increase. More... | |
| void | SetStepIncreaseFactor (double factor) |
| Set the multiplicative factor for a stepsize increase (must be larger than 1). More... | |
| void | SetStepDecreaseFactor (double factor) |
| Set the multiplicative factor for a stepsize decrease (must be smaller than 1). More... | |
| virtual void | Advance (double dt) override final |
| Perform an integration step. More... | |
Public Member Functions inherited from chrono::ChTimestepper | |
| virtual ChVectorDynamic & | GetLagrangeMultipliers () |
| Access the Lagrange multipliers, if any. | |
| 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. | |
Additional Inherited Members | |
Public Types inherited from chrono::ChTimestepperImplicit | |
| enum | JacobianUpdate { JacobianUpdate::EVERY_ITERATION, JacobianUpdate::EVERY_STEP, JacobianUpdate::NEVER, JacobianUpdate::AUTOMATIC } |
| Newton Jacobian update strategies. More... | |
Public Types inherited from chrono::ChTimestepper | |
| enum | Type { EULER_EXPLICIT_I, EULER_EXPLICIT_II, EULER_SEMI_IMPLICIT, RUNGE_KUTTA, HEUN, LEAPFROG, EULER_IMPLICIT, EULER_IMPLICIT_LINEARIZED, EULER_IMPLICIT_PROJECTED, TRAPEZOIDAL, TRAPEZOIDAL_LINEARIZED, NEWMARK, HHT, CUSTOM } |
| Methods for time integration. | |
Static Public Member Functions inherited from chrono::ChTimestepperImplicit | |
| static std::string | GetJacobianUpdateMethodAsString (JacobianUpdate jacobian_update) |
| Return Jacobian update method as a string. | |
Static Public Member Functions inherited from chrono::ChTimestepper | |
| static std::string | GetTypeAsString (Type type) |
| Return the integrator type as a string. | |
Protected Member Functions inherited from chrono::ChTimestepperIIorder | |
| ChTimestepperIIorder (ChIntegrableIIorder *intgr=nullptr) | |
Protected Member Functions inherited from chrono::ChTimestepperImplicit | |
| virtual void | InitializeStep () |
| Initialize integrator at beginning of a new step. More... | |
| virtual void | PrepareStep () |
| Prepare integrator for attempting a new step. More... | |
| virtual void | Increment () |
| Calculate new state increment for a Newton iteration. More... | |
| virtual void | ResetStep () |
| Reset step data for re-attempting step (with new Jacobian or reduced step size). More... | |
| virtual void | AcceptStep () |
| Accept attempted step (if Newton converged or was terminated). More... | |
| virtual void | FinalizeStep () |
| Finalize step and update solution at end of step. More... | |
| bool | CheckConvergence (int iteration) |
| Check convergence of Newton process. | |
| void | CalcErrorWeights (const ChVectorDynamic<> &x, double rtol, double atol, ChVectorDynamic<> &ewt) |
| Calculate error weights based on the given state and tolerances. | |
Protected Member Functions inherited from chrono::ChTimestepper | |
| ChTimestepper (ChIntegrable *intgr=nullptr) | |
Protected Attributes inherited from chrono::ChTimestepperIIorder | |
| ChIntegrableIIorder * | integrable |
| ChState | X |
| ChStateDelta | V |
| ChStateDelta | A |
Protected Attributes inherited from chrono::ChTimestepperImplicit | |
| JacobianUpdate | jacobian_update_method |
| Jacobian update strategy. | |
| bool | call_setup |
| should the solver's Setup function be called? | |
| bool | call_analyze |
| should the solver's Setup analyze phase be called? | |
| bool | jacobian_is_current |
| was the Jacobian evaluated at current Newton iteration? | |
| unsigned int | max_iters |
| maximum number of iterations | |
| double | reltol |
| relative tolerance | |
| double | abstolS |
| absolute tolerance (states) | |
| double | abstolL |
| absolute tolerance (Lagrange multipliers) | |
| unsigned int | num_step_iters |
| number of iterations during last step | |
| unsigned int | num_step_setups |
| number of calls to the solver Setup() function during last step | |
| unsigned int | num_step_solves |
| number of calls to the solver Solve() function during last step | |
| unsigned int | num_iters |
| current cumulative number of Newton iterations | |
| unsigned int | num_setups |
| current cumulative number of Setup() calls | |
| unsigned int | num_solves |
| current cummulative number of Solve() calls | |
| unsigned int | num_terminated |
| number of terminated NEwton iterations | |
| double | convergence_rate |
| estimated Newton rate of convergence | |
| ChStateDelta | Ds |
| state update | |
| ChVectorDynamic | Dl |
| Lagrange multiplier update. | |
| ChVectorDynamic | R |
| residual of nonlinear system (dynamics portion) | |
| ChVectorDynamic | Qc |
| residual of nonlinear system (constraints portion) | |
| std::array< double, 3 > | Ds_nrm_hist |
| last 3 update norms | |
| std::array< double, 3 > | Dl_nrm_hist |
| last 3 update norms | |
| ChVectorDynamic | ewtS |
| vector of error weights (states) | |
| ChVectorDynamic | ewtL |
| vector of error weights (Lagrange multipliers) | |
| bool | accept_terminated |
| accept or reject steps after a non-converged Newton solve | |
| bool | step_control |
| step size control enabled? | |
| unsigned int | maxiters_success |
| maximum number of NR iterations to declare a step successful | |
| unsigned int | req_successful_steps |
| required number of successive successful steps for a stepsize increase | |
| double | step_increase_factor |
| factor used in increasing stepsize (>1) | |
| double | step_decrease_factor |
| factor used in decreasing stepsize (<1) | |
| double | h_min |
| minimum allowable stepsize | |
| double | h |
| internal stepsize | |
| unsigned int | num_successful_steps |
| number of successful steps | |
Protected Attributes inherited from chrono::ChTimestepper | |
| bool | verbose |
| double | T |
| ChVectorDynamic | L |
| bool | Qc_do_clamp |
| double | Qc_clamping |
Member Function Documentation
◆ GetType()
|
inlineoverridevirtual |
Return type of the integration method.
Default is CUSTOM. Derived classes should override this function.
Implements chrono::ChTimestepper.
◆ SetGammaBeta()
| void chrono::ChTimestepperNewmark::SetGammaBeta | ( | double | gamma_val, |
| double | beta_val | ||
| ) |
Set the numerical damping parameter gamma and the beta parameter.
- gamma: in the [1/2, 1] interval. gamma = 1/2, no numerical damping gamma > 1/2, more damping
- beta: in the [0, 1] interval. beta = 1/4, gamma = 1/2 -> constant acceleration method beta = 1/6, gamma = 1/2 -> linear acceleration method Method is second order accurate only for gamma = 1/2.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/timestepper/ChTimestepperImplicit.h
- /builds/uwsbel/chrono/src/chrono/timestepper/ChTimestepperImplicit.cpp
Public Member Functions inherited from