PolyFEM
Loading...
Searching...
No Matches
HGOFiber.cpp
Go to the documentation of this file.
1#include "HGOFiber.hpp"
2
3namespace polyfem::assembler
4{
6 : k1_("k1"), k2_("k2")
7 {
8 }
9
10 void HGOFiber::add_multimaterial(const int index, const json &params, const Units &units)
11 {
12 assert(size() == 2 || size() == 3);
13
15
16 k1_.add_multimaterial(index, params, units.stress());
17 k2_.add_multimaterial(index, params, "");
18 }
19
20 std::map<std::string, Assembler::ParamFunc> HGOFiber::parameters() const
21 {
22 std::map<std::string, ParamFunc> res;
23 const auto &k1 = this->k1_;
24 const auto &k2 = this->k2_;
25
26 res["k1"] = [&k1](const RowVectorNd &, const RowVectorNd &p, double t, int e) {
27 return k1(p, t, e);
28 };
29
30 res["k2"] = [&k2](const RowVectorNd &, const RowVectorNd &p, double t, int e) {
31 return k2(p, t, e);
32 };
33
34 return res;
35 }
36} // namespace polyfem::assembler
std::string stress() const
Definition Units.hpp:27
virtual void add_multimaterial(const int index, const json &params, const Units &units) override
void add_multimaterial(const int index, const json &params, const std::string &unit_type)
Definition MatParams.cpp:30
void add_multimaterial(const int index, const json &params, const Units &units) override
Definition HGOFiber.cpp:10
std::map< std::string, ParamFunc > parameters() const override
Definition HGOFiber.cpp:20
Used for test only.
nlohmann::json json
Definition Common.hpp:9
Eigen::Matrix< double, 1, Eigen::Dynamic, Eigen::RowMajor, 1, 3 > RowVectorNd
Definition Types.hpp:13