9#include <ipc/collision_mesh.hpp>
10#include <ipc/collisions/tangential/tangential_collisions.hpp>
11#include <ipc/potentials/friction_potential.hpp>
30 const ipc::CollisionMesh &collision_mesh,
31 const std::shared_ptr<time_integrator::ImplicitTimeIntegrator> time_integrator,
34 const ipc::BroadPhaseMethod broad_phase_method,
36 const int n_lagging_iters);
38 std::string
name()
const override {
return "friction"; }
40 void force_shape_derivative(
const Eigen::MatrixXd &prev_solution,
const Eigen::MatrixXd &solution,
const Eigen::MatrixXd &adjoint,
const ipc::TangentialCollisions &friction_constraints_set, Eigen::VectorXd &term);
65 void update_lagging(
const Eigen::VectorXd &
x,
const int iter_num)
override;
85 double mu()
const {
return mu_; }
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix