|
| | MilneDeviceModule (const String &name="MilneDevice") |
| | Constructor.
|
| |
| virtual void | solve (const Properties &info, const Properties &globdat) override |
| | Solve using Milne's device predictor-corrector method.
|
| |
| virtual | ~MilneDeviceModule () |
| | Destructor.
|
| |
| virtual Status | init (const Properties &conf, const Properties &props, const Properties &globdat) override |
| | Initialize the module.
|
| |
| virtual void | shutdown (const Properties &globdat) override |
| | Shutdown the module.
|
| |
| virtual void | configure (const Properties &props, const Properties &globdat) override |
| | Configure the module from properties.
|
| |
| virtual void | getConfig (const Properties &props, const Properties &globdat) const override |
| | Get current module configuration.
|
| |
| virtual void | advance (const Properties &globdat) override |
| | Advance to next time step.
|
| |
| virtual void | cancel (const Properties &globdat) override |
| | Cancel current solution attempt.
|
| |
| virtual bool | commit (const Properties &globdat) override |
| | Compute next step size and commit solution.
|
| |
| virtual void | setPrecision (double eps) override |
| | Set convergence precision.
|
| |
| virtual double | getPrecision () const override |
| | Get current convergence precision.
|
| |
|
| Vector | updForce (const Vector &fint, const Vector &fext, const Properties &globdat) |
| | Update forces for corrector step.
|
| |
| | ExplicitModule (const String &name="") |
| | Protected constructor.
|
| |
| virtual | ~ExplicitModule () |
| | Protected destructor.
|
| |
| void | updateMass_ (const Properties &globdat) |
| | Update mass matrix.
|
| |
| void | invalidate_ () |
| | invalidate_ current state
|
| |
| void | ABupdate (const Vector &delta_y, const Vector &f_cur, const Vector &f_old) const |
| | Adams-Bashforth 2-step update.
|
| |
| void | ABupdate (const Vector &delta_y, const Vector &f_cur) const |
| | Adams-Bashforth 1-step update (explicit Euler)
|
| |
| void | updateVec (const Vector &y_new, const Vector &y_old, const Vector &delta_y, const bool rot=false) |
| | Update displacement vectors with optional SO(3) handling.
|
| |
| void | getAcce (const Vector &a, const Ref< Constraints > &cons, const Vector &fres, const Properties &globdat) |
| | Get acceleration and return resulting force vector.
|
| |
| Vector | getForce (const Vector &fint, const Vector &fext, const Properties &globdat) |
| | Get force vector.
|
| |
| double | getQuality (const Vector &y_pre, const Vector &y_cor) |
| | Get solution quality measure.
|
| |
This module implements Milne's device, a predictor-corrector scheme that combines Adams-Bashforth predictor steps with Adams-Moulton corrector steps for explicit time integration. The method proceeds in three phases:
- Predictor step: Uses Adams-Bashforth method to predict state at next time
- Corrector step: Uses Adams-Moulton method to correct the prediction
- Step size adaptation: Evaluates solution quality for potential step size control
The predictor-corrector approach provides better stability and accuracy compared to simple explicit methods while maintaining computational efficiency. The module supports both first-order (Euler implicit) and second-order (trapezoidal rule) Adams-Moulton correctors.
- See also
- Milne (1926)