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[
"contact"][
"enabled"];
27 const Eigen::MatrixXd &solution,
39 double time,
int step,
double dt,
const Eigen::MatrixXd &solution,
40 paraviewo::VTMWriter &vtm,
const std::string &block_prefix)
const;
52 const std::vector<basis::ElementBases> &bases,
53 const std::vector<basis::ElementBases> &geom_bases,
54 const std::vector<mesh::LocalBoundary> &total_local_boundary,
58 const Eigen::VectorXi &in_node_to_node,
59 ipc::CollisionMesh &collision_mesh);
62 void reset()
override;
73 const std::string &state_prefix,
93 std::vector<std::shared_ptr<solver::Form>>
forms;
102 std::string
name()
const override {
return "NonlinearElasticTransient"; }
106 Eigen::MatrixXd &sol,
114 std::string
name()
const override {
return "NonlinearElasticStatic"; }
118 Eigen::MatrixXd &sol,
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
class to store time stepping data
std::vector< std::shared_ptr< solver::AugmentedLagrangianForm > > al_form
std::shared_ptr< time_integrator::ImplicitTimeIntegrator > time_integrator
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix