10#include <ipc/collision_mesh.hpp>
19 using ElasticVarForm::ElasticVarForm;
20 void init(
const std::string &formulation,
const Units &
units,
const json &
args,
const std::string &out_path)
override;
24 return args[
"contact"][
"enabled"];
29 const Eigen::MatrixXd &solution,
41 double time,
int step,
double dt,
const Eigen::MatrixXd &solution,
42 paraviewo::VTMWriter &vtm,
const std::string &block_prefix)
const;
54 const std::vector<basis::ElementBases> &bases,
55 const std::vector<basis::ElementBases> &geom_bases,
56 const std::vector<mesh::LocalBoundary> &total_local_boundary,
60 const Eigen::VectorXi &in_node_to_node,
61 ipc::CollisionMesh &collision_mesh);
64 void reset()
override;
76 const std::string &state_prefix,
81 Eigen::MatrixXd &solution,
85 int step,
double time, Eigen::VectorXd &extended_solution,
109 std::vector<std::shared_ptr<solver::Form>>
forms;
118 using NonlinearElasticVarForm::NonlinearElasticVarForm;
119 std::string
name()
const override {
return "NonlinearElasticTransient"; }
123 Eigen::MatrixXd &sol,
131 using NonlinearElasticVarForm::NonlinearElasticVarForm;
132 std::string
name()
const override {
return "NonlinearElasticStatic"; }
136 Eigen::MatrixXd &sol,
Read-only interface to a hierarchical collection of simulation resources.
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