16 BDF(
const int order = 1);
31 Eigen::VectorXd
x_tilde()
const override;
66 double dv_dx(
const unsigned prev_ti = 0)
const override;
86 static const std::vector<double> &
alphas(
const int i);
91 static double betas(
const int i);
Backward Differential Formulas.
double dv_dx(const unsigned prev_ti=0) const override
Compute the derivative of the velocity with respect to the solution.
Eigen::VectorXd compute_velocity(const Eigen::VectorXd &x) const override
Compute the current velocity given the current solution and using the stored previous solution(s).
void set_parameters(const json ¶ms) override
Set the number of steps parameters from a json object.
static double betas(const int i)
Retrieve the value of beta used for BDF with i steps.
Eigen::VectorXd weighted_sum_v_prevs() const
Compute the weighted sum of the previous velocities.
int max_steps_
The maximum number of steps to use for integration.
int max_steps() const override
Get the maximum number of steps to use for integration.
Eigen::VectorXd weighted_sum_x_prevs() const
Compute the weighted sum of the previous solutions.
static const std::vector< double > & alphas(const int i)
Retrieve the alphas used for BDF with i steps.
void update_quantities(const Eigen::VectorXd &x) override
Update the time integration quantities (i.e., , , and ).
Eigen::VectorXd compute_acceleration(const Eigen::VectorXd &v) const override
Compute the current acceleration given the current velocity and using the stored previous velocity(s)...
double acceleration_scaling() const override
Compute the acceleration scaling used to scale forces when integrating a second order ODE.
double beta_dt() const
Compute .
Eigen::VectorXd x_tilde() const override
Compute the predicted solution to be used in the inertia term .
Implicit time integrator of a second order ODE (equivently a system of coupled first order ODEs).