The goal of this document is to give a global view of the timestepping implementation in SICONOS.

Global Stack

TimeStepping::newtonSolve

TimeStepping::computeInitialResidu

TimeStepping::prepareNewtonIteration

TimeStepping::computeFreeState

-> OneStepIntegrator::computeFreeState (virtual)
compute the global free state for all OneStepIntegrators in connected DynamicalSystems in DS->workFree

Simulation::computeOneStepNSProblem

-> OneStepNonsmoothProblem::compute (virtual)
solve all OneStepNonsmoothProblems

TimeStepping::(Default)CheckSolverOutput

reaction on numerical solution method flags

TimeStepping::update

TimeStepping::newtonCheckConvergence

  • OneStepIntegrator::computeResidu (virtual)
  • compute the global free residu DS->residuFree and the global residu DS->workFree for all OneStepIntegrators to cope with nonlinearities in velocity equation
  • Relation::computeResiduY (virtual)
  • compute the local free residu for output Relations (gaps) to cope their nonlinearities if switched on
  • Relation::computeResiduR (virtual)
  • compute the local free residu for input Relations (forces) to cope their nonlinearities if switched on

    TimeStepping::saveYandLambdaInMemory

    -> Interaction::swapInMemory (virtual)
    -> Interaction::swapTimeStepInMemory (virtual)
    save local gap and force for having initial guess and possibility to calculate Jacobians in next Newton step

    Building of Numerics Matrix

    -> OneStepNonsmoothProblem::preCompute
    implemented only for LinearOSNS involving LinearOSNS::_M OSNSMatrix, LinearOSNS::_q SiconosVector

    TimeStepping::nextStep

    -> Simulation::processEvent -> EventsManager::processEvents -> EventsManager::OptimizedProcessEvent

    TimeSteppingProjectOnConstraints::newtonSolve

    projection on position only for NewtonEulerDS with kinetic metric