PolyFEM
Loading...
Searching...
No Matches
ImplicitEuler.hpp
Go to the documentation of this file.
1#pragma once
2
4
6{
14 {
15 public:
17
24 void update_quantities(const Eigen::VectorXd &x) override;
25
31 Eigen::VectorXd x_tilde() const override;
32
39 Eigen::VectorXd compute_velocity(const Eigen::VectorXd &x) const override;
40
47 Eigen::VectorXd compute_acceleration(const Eigen::VectorXd &v) const override;
48
53 double acceleration_scaling() const override;
54
66 double dv_dx(const unsigned prev_ti = 0) const override;
67 };
68} // namespace polyfem::time_integrator
int x
Implicit Euler time integrator of a second order ODE (equivently a system of coupled first order ODEs...
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 update_quantities(const Eigen::VectorXd &x) override
Update the time integration quantities (i.e., , , and ).
double dv_dx(const unsigned prev_ti=0) const override
Compute the derivative of the velocity with respect to the solution.
double acceleration_scaling() const override
Compute the acceleration scaling used to scale forces when integrating a second order ODE.
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)...
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).