11#include <ipc/potentials/barrier_potential.hpp>
12#include <ipc/smooth_contact/smooth_collisions.hpp>
13#include <ipc/smooth_contact/smooth_contact_potential.hpp>
36 std::string
name()
const override {
return "collision barrier"; }
38 double max_step_size(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
const override;
45 std::shared_ptr<const varform::DifferentiableVarForm>
varform_;
62 std::shared_ptr<const varform::DifferentiableVarForm> varform,
64 const std::vector<int> &boundary_ids,
66 const bool use_log_barrier =
false,
67 const double dmin = 0);
69 std::string
name()
const override {
return "layer thickness"; }
71 double max_step_size(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
const override {
return 1.; }
86 std::string
name()
const override {
return "deformed_collision_barrier"; }
96 double max_step_size(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
const override;
103 std::shared_ptr<const varform::DifferentiableVarForm>
varform_;
121 std::shared_ptr<const varform::DifferentiableVarForm> varform,
122 std::shared_ptr<const DiffCache> diff_cache,
135 std::shared_ptr<const varform::DifferentiableVarForm>
varform_;
Storage for additional data required by differntial code.
Read-only interface to a hierarchical collection of simulation resources.