17 std::string
name()
const override {
return "spatial_integral"; }
42 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
43 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
46 std::string
name()
const override {
return "elastic_energy"; }
61 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
62 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
64 if (args[
"power"] > 0)
68 std::string
name()
const override {
return "stress_norm"; }
86 if (!(formulation ==
"Laplacian" || formulation ==
"Electrostatics"))
91 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
92 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
95 std::string
name()
const override {
return "dirichlet_energy"; }
110 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
111 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
114 std::string
name()
const override {
return "compliance"; }
129 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
130 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
151 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
152 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
154 set_dim(args[
"dim"].get<int>());
173 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
174 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
188 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
189 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
191 dimensions_ = args[
"dimensions"].get<std::vector<int>>();
194 std::string
name()
const override {
return "stress"; }
211 auto tmp_ids = args[
"volume_selection"].get<std::vector<int>>();
212 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
main class that contains the polyfem solver and all its state
std::string formulation() const
return the formulation (checks if the problem is scalar or not and deals with multiphysics)
A collection of VariableToSimulation.
void log_and_throw_adjoint_error(const std::string &msg)