9#include <ipc/collision_mesh.hpp>
18 void init(
const std::string &formulation,
const Units &
units,
const json &
args,
const std::string &out_path)
override;
22 return args.contains(
"contact") &&
args[
"contact"].contains(
"enabled") &&
args[
"contact"][
"enabled"].get<
bool>();
28 const Eigen::MatrixXd &solution,
32 void reset()
override;
36 void init_solve(Eigen::MatrixXd &sol,
const double t);
37 void init_forms(
const json &
args,
const int dim, Eigen::MatrixXd &sol,
const double t);
46 const std::vector<basis::ElementBases> &bases,
47 const std::vector<basis::ElementBases> &geom_bases,
48 const std::vector<mesh::LocalBoundary> &total_local_boundary,
52 const Eigen::VectorXi &in_node_to_node,
63 std::vector<std::shared_ptr<solver::Form>>
forms;
72 std::string
name()
const override {
return "NonlinearElasticTransient"; }
81 std::string
name()
const override {
return "NonlinearElasticStatic"; }
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
class to store time stepping data