24 Eigen::Matrix<double, Eigen::Dynamic, 1, 0, 3, 1>
27 assert(pt.size() ==
size());
28 Eigen::Matrix<double, Eigen::Dynamic, 1, 0, 3, 1> res;
40 return assembler->assemble_gradient(data);
49 return assembler->assemble_hessian(data);
57 return assembler->compute_energy(data);
65 const std::function<Eigen::MatrixXd(
const Eigen::MatrixXd &)> &fun)
const
69 auto elasticity_assembler = std::dynamic_pointer_cast<assembler::ElasticityAssembler>(assembler);
70 assert(elasticity_assembler &&
"Failed to cast assembler to ElasticityAssembler.");
71 elasticity_assembler->assign_stress_tensor(data, all_size, type, all, fun);
void add_multimaterial(const int index, const json ¶ms, const Units &units)
void set_size(const int size)
std::map< std::string, Assembler::ParamFunc > parameters() const
std::shared_ptr< assembler::NLAssembler > get_assembler(const std::string &name) const
virtual void set_size(const int size)
VectorNd compute_rhs(const AutodiffHessianPt &pt) const override
std::vector< std::string > multi_material_models_
void set_size(const int size) override
void add_multimaterial(const int index, const json ¶ms, const Units &units) override
Eigen::MatrixXd assemble_hessian(const NonLinearAssemblerData &data) const override
Eigen::VectorXd assemble_gradient(const NonLinearAssemblerData &data) const override
double compute_energy(const NonLinearAssemblerData &data) const override
AllElasticMaterials all_elastic_materials_
std::map< std::string, ParamFunc > parameters() const override
void assign_stress_tensor(const OutputData &data, const int all_size, const ElasticityTensorType &type, Eigen::MatrixXd &all, const std::function< Eigen::MatrixXd(const Eigen::MatrixXd &)> &fun) const override
const ElementAssemblyValues & vals
Eigen::Matrix< AutodiffScalarHessian, Eigen::Dynamic, 1, 0, 3, 1 > AutodiffHessianPt