SimplePredictor

Algorithm that will predict the next solution based on previous solutions.

The simple predictor uses the solution from the previous time step to update the solution before a non linear solve. The simple predictor update is:

ϕ=ϕ(1+sΔtΔtold)ϕoldsΔtΔtold\phi = \phi (1 + s \dfrac{\Delta t}{\Delta t_{old}}) - \phi_{old} s \dfrac{\Delta t}{\Delta t_{old}}

with ϕ\phi the solution vector, which includes all the application's non linear variables, and ss a scaling factor, specified by the "scale" parameter. That scaling factor is further scaled with the size of the current time step Δt\Delta t divided by the previous one.

Example input syntax

In this example, a SimplePredictor is specified in the executioner to use the previous time step solution to compute better initial guesses for each non linear solve.

[Executioner]
  type = Transient
  solve_type = 'PJFNK'

  nl_max_its = 15
  nl_rel_tol = 1e-14
  nl_abs_tol = 1e-14

  start_time = 0.0
  dt = 0.5
  end_time = 1.0

  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
[]
(contrib/moose/test/tests/predictors/simple/predictor_test.i)

Input Parameters

  • scaleThe scale factor for the predictor (can range from 0 to 1)

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The scale factor for the predictor (can range from 0 to 1)

Required Parameters

  • nl_sysnl0The nonlinear system that this predictor should be applied to.

    Default:nl0

    C++ Type:NonlinearSystemName

    Unit:(no unit assumed)

    Controllable:No

    Description:The nonlinear system that this predictor should be applied to.

  • skip_after_failed_timestepFalseSkip prediction in a repeated time step after a failed time step

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Skip prediction in a repeated time step after a failed time step

  • skip_timesSkip the predictor if the current solution time is in this list of times

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Skip the predictor if the current solution time is in this list of times

  • skip_times_oldSkip the predictor if the previous solution time is in this list of times

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Skip the predictor if the previous solution time is in this list of times

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters