chrono::ChTimestepperEulerImplicitLinearized Class Reference
Description
Euler implicit for II order systems using the Anitescu/Stewart/Trinkle single-iteration method.
This is similar to an implicit Euler where one performs only the first Newton corrector iteration. If using an underlying CCP complementarity solver, this is the typical Anitescu stabilized timestepper for DVIs.
#include <ChTimestepperImplicit.h>
Inheritance diagram for chrono::ChTimestepperEulerImplicitLinearized:

Collaboration diagram for chrono::ChTimestepperEulerImplicitLinearized:

Public Member Functions | |
| ChTimestepperEulerImplicitLinearized (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. | |
| 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. | |
Protected Attributes | |
| ChStateDelta | Vold |
| ChVectorDynamic | Dl |
| ChVectorDynamic | R |
| ChVectorDynamic | Qc |
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 |
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) | |
Member Function Documentation
◆ GetType()
|
inlineoverridevirtual |
Return type of the integration method.
Default is CUSTOM. Derived classes should override this function.
Implements chrono::ChTimestepper.
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