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,
40 double time,
int step,
double dt,
const Eigen::MatrixXd &solution,
41 paraviewo::VTMWriter &vtm,
const std::string &block_prefix)
const;
51 void reset()
override;
55 void init_solve(Eigen::MatrixXd &sol,
const double t);
56 void init_solve_data(Eigen::MatrixXd &sol,
double t,
const std::string &state_prefix);
57 void init_forms(
const json &
args,
const int dim, Eigen::MatrixXd &sol,
const double t);
66 const std::vector<basis::ElementBases> &bases,
67 const std::vector<basis::ElementBases> &geom_bases,
68 const std::vector<mesh::LocalBoundary> &total_local_boundary,
72 const Eigen::VectorXi &in_node_to_node,
83 std::vector<std::shared_ptr<solver::Form>>
forms;
92 std::string
name()
const override {
return "NonlinearElasticTransient"; }
101 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
std::vector< std::shared_ptr< solver::AugmentedLagrangianForm > > al_form
std::shared_ptr< time_integrator::ImplicitTimeIntegrator > time_integrator
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix