6#include <ipc/collisions/collisions.hpp>
7#include <ipc/friction/friction_collisions.hpp>
21 void init(
const int dimension,
const int ndof,
const int n_time_steps = 0)
26 u_.setZero(ndof, n_time_steps + 1);
27 disp_grad_.assign(n_time_steps + 1, Eigen::MatrixXd::Zero(dimension,dimension));
31 v_.setZero(ndof, n_time_steps + 1);
32 acc_.setZero(ndof, n_time_steps + 1);
41 const Eigen::MatrixXd &
u,
43 const ipc::Collisions &contact_set,
44 const ipc::FrictionCollisions &friction_constraint_set,
59 const int cur_bdf_order,
60 const Eigen::MatrixXd &
u,
61 const Eigen::MatrixXd &
v,
62 const Eigen::MatrixXd &
acc,
85 const Eigen::MatrixXd &
u,
87 const ipc::Collisions &contact_set,
104 assert(step <
size());
112 Eigen::VectorXd
u(
int step)
const
114 assert(step <
size());
119 Eigen::VectorXd
v(
int step)
const
121 assert(step <
size());
126 Eigen::VectorXd
acc(
int step)
const
128 assert(step <
size());
131 return acc_.col(step);
136 assert(step <
size());
145 assert(step <
size());
152 assert(step <
size());
std::vector< ipc::FrictionCollisions > friction_collision_set_
const StiffnessMatrix & gradu_h(int step) const
int bdf_order(int step) const
Eigen::MatrixXd adjoint_mat_
std::vector< ipc::Collisions > collision_set_
Eigen::MatrixXd disp_grad(int step=0) const
const ipc::Collisions & collision_set(int step) const
void cache_quantities_quasistatic(const int cur_step, const Eigen::MatrixXd &u, const StiffnessMatrix &gradu_h, const ipc::Collisions &contact_set, const Eigen::MatrixXd &disp_grad)
void init(const int dimension, const int ndof, const int n_time_steps=0)
std::vector< Eigen::MatrixXd > disp_grad_
const Eigen::MatrixXd & adjoint_mat() const
std::vector< StiffnessMatrix > gradu_h_
Eigen::VectorXd acc(int step) const
void cache_quantities_static(const Eigen::MatrixXd &u, const StiffnessMatrix &gradu_h, const ipc::Collisions &contact_set, const ipc::FrictionCollisions &friction_constraint_set, const Eigen::MatrixXd &disp_grad)
void cache_adjoints(const Eigen::MatrixXd &adjoint_mat)
Eigen::VectorXi bdf_order_
void cache_quantities_transient(const int cur_step, const int cur_bdf_order, const Eigen::MatrixXd &u, const Eigen::MatrixXd &v, const Eigen::MatrixXd &acc, const StiffnessMatrix &gradu_h, const ipc::Collisions &collision_set, const ipc::FrictionCollisions &friction_collision_set)
Eigen::VectorXd v(int step) const
Eigen::VectorXd u(int step) const
const ipc::FrictionCollisions & friction_collision_set(int step) const
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix