PolyFEM
Loading...
Searching...
No Matches
HGODispersion.cpp
Go to the documentation of this file.
1#include "HGODispersion.hpp"
2
3namespace polyfem::assembler
4{
6 : k1_("k1"), k2_("k2"), kappa_("kappa")
7 {
8 }
9
10 void HGODispersion::add_multimaterial(const int index, const json &params, const Units &units, const std::string &root_path)
11 {
12 assert(size() == 2 || size() == 3);
13
14 GenericFiber<HGODispersion>::add_multimaterial(index, params, units, root_path);
15
16 k1_.add_multimaterial(index, params, units.stress(), root_path);
17 k2_.add_multimaterial(index, params, "", root_path);
18 kappa_.add_multimaterial(index, params, "", root_path); // dimensionless; absent => 0
19 k_chi_ = params.value("k_chi", 100.0); // absent => 100 (manuscript)
20 }
21
22 std::map<std::string, Assembler::ParamFunc> HGODispersion::parameters() const
23 {
24 std::map<std::string, ParamFunc> res = GenericFiber<HGODispersion>::parameters();
25
26 const auto &k1 = this->k1_;
27 const auto &k2 = this->k2_;
28 const auto &kappa = this->kappa_;
29
30 res["k1"] = [&k1](const RowVectorNd &, const RowVectorNd &p, double t, int e) {
31 return k1(p, t, e);
32 };
33
34 res["k2"] = [&k2](const RowVectorNd &, const RowVectorNd &p, double t, int e) {
35 return k2(p, t, e);
36 };
37
38 res["kappa"] = [&kappa](const RowVectorNd &, const RowVectorNd &p, double t, int e) {
39 return kappa(p, t, e);
40 };
41
42 return res;
43 }
44} // namespace polyfem::assembler
std::string stress() const
Definition Units.hpp:27
virtual void add_multimaterial(const int index, const json &params, const Units &units, const std::string &root_path) override
std::map< std::string, Assembler::ParamFunc > parameters() const override
void add_multimaterial(const int index, const json &params, const std::string &unit_type, const std::string &root_path)
Definition MatParams.cpp:81
std::map< std::string, ParamFunc > parameters() const override
void add_multimaterial(const int index, const json &params, const Units &units, const std::string &root_path) override
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