13 #include "libmesh/numeric_vector.h" 22 "Implements an explicit Adams predictor based on two old solution vectors.");
23 params.
addParam<
int>(
"order", 2,
"The maximum reachable order of the Adams-Bashforth Predictor");
29 _order(getParam<
int>(
"order")),
30 _current_old_solution(_nl.addVector(
"AB2_current_old_solution", true,
GHOSTED)),
31 _older_solution(_nl.addVector(
"AB2_older_solution", true,
GHOSTED)),
32 _oldest_solution(_nl.addVector(
"AB2_rejected_solution", true,
GHOSTED)),
33 _tmp_previous_solution(_nl.addVector(
"tmp_previous_solution", true,
GHOSTED)),
34 _tmp_residual_old(_nl.addVector(
"tmp_residual_old", true,
GHOSTED)),
35 _tmp_third_vector(_nl.addVector(
"tmp_third_vector", true,
GHOSTED)),
36 _dt_older(declareRestartableData<
Real>(
"dt_older", 0)),
37 _dtstorage(declareRestartableData<
Real>(
"dtstorage", 0))
88 Real firstpart = (1 + .5 * commonpart);
95 vector2 *= -1. * commonpart * (firstpart + secondpart);
96 vector3 *= commonpart * secondpart;
AdamsPredictor(const InputParameters ¶meters)
NumericVector< Number > & _tmp_third_vector
virtual void apply(NumericVector< Number > &sln) override
NumericVector< Number > & _current_old_solution
Base class for predictors.
NonlinearSystemBase & _nl
Implements an explicit Adams predictor based on two old solution vectors.
static InputParameters validParams()
virtual void timestepSetup()
NumericVector< Number > & _solution_predictor
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void timestepSetup() override
NumericVector< Number > & _oldest_solution
bool & _is_repeated_timestep
NumericVector< Number > & _tmp_residual_old
NumericVector< Number > & solutionOld()
NumericVector< Number > & _older_solution
virtual bool shouldApply()
void ErrorVector unsigned int
registerMooseObject("MooseApp", AdamsPredictor)
virtual bool shouldApply() override
virtual void localize(std::vector< Number > &v_local) const =0