6#include <ipc/collisions/normal/normal_collisions.hpp>
7#include <ipc/collisions/tangential/tangential_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);
21 void init(
const int dimension,
const int ndof,
const int n_time_steps = 0) {
…}
43 const Eigen::MatrixXd &
u,
45 const ipc::NormalCollisions &contact_set,
46 const ipc::TangentialCollisions &friction_constraint_set,
47 const ipc::NormalCollisions &normal_adhesion_set,
48 const ipc::TangentialCollisions &tangential_adhesion_set,
65 const int cur_bdf_order,
66 const Eigen::MatrixXd &
u,
67 const Eigen::MatrixXd &
v,
68 const Eigen::MatrixXd &
acc,
91 const Eigen::MatrixXd &
u,
93 const ipc::NormalCollisions &contact_set,
94 const ipc::NormalCollisions &normal_adhesion_set,
112 assert(step <
size());
120 Eigen::VectorXd
u(
int step)
const
122 assert(step <
size());
120 Eigen::VectorXd
u(
int step)
const {
…}
127 Eigen::VectorXd
v(
int step)
const
129 assert(step <
size());
127 Eigen::VectorXd
v(
int step)
const {
…}
134 Eigen::VectorXd
acc(
int step)
const
136 assert(step <
size());
139 return acc_.col(step);
134 Eigen::VectorXd
acc(
int step)
const {
…}
144 assert(step <
size());
153 assert(step <
size());
160 assert(step <
size());
167 assert(step <
size());
174 assert(step <
size());
const ipc::NormalCollisions & collision_set(int step) const
const StiffnessMatrix & gradu_h(int step) const
int bdf_order(int step) const
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::NormalCollisions &collision_set, const ipc::TangentialCollisions &friction_collision_set)
std::vector< ipc::TangentialCollisions > tangential_adhesion_collision_set_
Eigen::MatrixXd adjoint_mat_
const ipc::TangentialCollisions & friction_collision_set(int step) const
Eigen::MatrixXd disp_grad(int step=0) const
const ipc::TangentialCollisions & tangential_adhesion_collision_set(int step) const
void init(const int dimension, const int ndof, const int n_time_steps=0)
std::vector< Eigen::MatrixXd > disp_grad_
std::vector< ipc::NormalCollisions > normal_adhesion_collision_set_
void cache_quantities_quasistatic(const int cur_step, const Eigen::MatrixXd &u, const StiffnessMatrix &gradu_h, const ipc::NormalCollisions &contact_set, const ipc::NormalCollisions &normal_adhesion_set, const Eigen::MatrixXd &disp_grad)
const Eigen::MatrixXd & adjoint_mat() const
const ipc::NormalCollisions & normal_adhesion_collision_set(int step) const
std::vector< StiffnessMatrix > gradu_h_
Eigen::VectorXd acc(int step) const
void cache_adjoints(const Eigen::MatrixXd &adjoint_mat)
std::vector< ipc::TangentialCollisions > friction_collision_set_
void cache_quantities_static(const Eigen::MatrixXd &u, const StiffnessMatrix &gradu_h, const ipc::NormalCollisions &contact_set, const ipc::TangentialCollisions &friction_constraint_set, const ipc::NormalCollisions &normal_adhesion_set, const ipc::TangentialCollisions &tangential_adhesion_set, const Eigen::MatrixXd &disp_grad)
std::vector< ipc::NormalCollisions > collision_set_
Eigen::VectorXi bdf_order_
Eigen::VectorXd v(int step) const
Eigen::VectorXd u(int step) const
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix