9#include <ipc/collisions/normal/normal_collisions.hpp>
10#include <ipc/collision_mesh.hpp>
11#include <ipc/broad_phase/broad_phase.hpp>
12#include <ipc/potentials/normal_adhesion_potential.hpp>
35 const bool is_time_dependent,
37 const ipc::BroadPhaseMethod broad_phase_method,
38 const double ccd_tolerance,
39 const int ccd_max_iterations);
42 std::string
name()
const override {
return "normal adhesion"; }
46 void init(
const Eigen::VectorXd &
x)
override;
48 virtual void force_shape_derivative(
const ipc::NormalCollisions &
collision_set,
const Eigen::MatrixXd &solution,
const Eigen::VectorXd &adjoint_sol, Eigen::VectorXd &term);
80 void line_search_begin(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
override;
92 void post_step(
const polysolve::nonlinear::PostStepData &data)
override;
104 double Y()
const {
return Y_; }
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix