24 if (full_name[full_name.size()-1] !=
']')
27 auto b = full_name.find(
'[');
28 std::string
basename = full_name.substr(0,
b);
29 boost::algorithm::trim_right(
basename);
32 std::string
definition = full_name.substr(
b+1, full_name.size()-
b-2);
34 for (
auto item: boost::tokenizer<boost::char_separator<char>>(
definition, boost::char_separator<char>(
" ,"))) {
35 std::string key, value;
40 }
else if (key ==
"lattC") {
42 cache.
lattC.reset(boost::lexical_cast<double>(value));
43 }
else if (key ==
"Eg") {
45 cache.
Eg.reset(boost::lexical_cast<double>(value));
46 }
else if (key ==
"CB") {
48 cache.
CB.reset(boost::lexical_cast<double>(value));
49 }
else if (key ==
"VB") {
51 cache.
VB.reset(boost::lexical_cast<double>(value));
52 }
else if (key ==
"Dso") {
54 cache.
Dso.reset(boost::lexical_cast<double>(value));
55 }
else if (key ==
"Mso") {
57 cache.
Mso.reset(boost::lexical_cast<double>(value));
58 }
else if (key ==
"Me") {
60 cache.
Me.reset(boost::lexical_cast<double>(value));
61 }
else if (key ==
"Mhh") {
63 cache.
Mhh.reset(boost::lexical_cast<double>(value));
64 }
else if (key ==
"Mlh") {
66 cache.
Mlh.reset(boost::lexical_cast<double>(value));
67 }
else if (key ==
"Mh") {
69 cache.
Mh.reset(boost::lexical_cast<double>(value));
70 }
else if (key ==
"y1") {
72 cache.
y1.reset(boost::lexical_cast<double>(value));
73 }
else if (key ==
"y2") {
75 cache.
y2.reset(boost::lexical_cast<double>(value));
76 }
else if (key ==
"y3") {
78 cache.
y3.reset(boost::lexical_cast<double>(value));
79 }
else if (key ==
"ac") {
81 cache.
ac.reset(boost::lexical_cast<double>(value));
82 }
else if (key ==
"av") {
84 cache.
av.reset(boost::lexical_cast<double>(value));
85 }
else if (key ==
"b") {
87 cache.
b.reset(boost::lexical_cast<double>(value));
88 }
else if (key ==
"d") {
90 cache.
d.reset(boost::lexical_cast<double>(value));
91 }
else if (key ==
"c11") {
93 cache.
c11.reset(boost::lexical_cast<double>(value));
94 }
else if (key ==
"c12") {
96 cache.
c12.reset(boost::lexical_cast<double>(value));
97 }
else if (key ==
"c44") {
99 cache.
c44.reset(boost::lexical_cast<double>(value));
100 }
else if (key ==
"eps") {
102 cache.
eps.reset(boost::lexical_cast<double>(value));
103 }
else if (key ==
"chi") {
105 cache.
chi.reset(boost::lexical_cast<double>(value));
106 }
else if (key ==
"Ni") {
108 cache.
Ni.reset(boost::lexical_cast<double>(value));
109 }
else if (key ==
"Nf") {
111 cache.
Nf.reset(boost::lexical_cast<double>(value));
112 }
else if (key ==
"EactD") {
114 cache.
EactD.reset(boost::lexical_cast<double>(value));
115 }
else if (key ==
"EactA") {
117 cache.
EactA.reset(boost::lexical_cast<double>(value));
118 }
else if (key ==
"mob") {
120 cache.
mob.reset(boost::lexical_cast<double>(value));
121 }
else if (key ==
"cond") {
123 cache.
cond.reset(boost::lexical_cast<double>(value));
124 }
else if (key ==
"A") {
126 cache.
A.reset(boost::lexical_cast<double>(value));
127 }
else if (key ==
"B") {
129 cache.
B.reset(boost::lexical_cast<double>(value));
130 }
else if (key ==
"C") {
132 cache.
C.reset(boost::lexical_cast<double>(value));
133 }
else if (key ==
"D") {
135 cache.
D.reset(boost::lexical_cast<double>(value));
136 }
else if (key ==
"thermk") {
138 cache.
thermk.reset(boost::lexical_cast<double>(value));
139 }
else if (key ==
"dens") {
141 cache.
dens.reset(boost::lexical_cast<double>(value));
142 }
else if (key ==
"cp") {
144 cache.
cp.reset(boost::lexical_cast<double>(value));
145 }
else if (key ==
"nr") {
147 cache.
nr.reset(boost::lexical_cast<double>(value));
148 }
else if (key ==
"absp") {
150 cache.
absp.reset(boost::lexical_cast<double>(value));
151 }
else if (key ==
"Nr") {
153 cache.
Nr.reset(boost::lexical_cast<dcomplex>(value));
154 }
else if (key ==
"mobe") {
156 cache.
mobe.reset(boost::lexical_cast<double>(value));
157 }
else if (key ==
"mobh") {
159 cache.
mobh.reset(boost::lexical_cast<double>(value));
160 }
else if (key ==
"taue") {
162 cache.
taue.reset(boost::lexical_cast<double>(value));
163 }
else if (key ==
"tauh") {
165 cache.
tauh.reset(boost::lexical_cast<double>(value));
166 }
else if (key ==
"Ce") {
168 cache.
Ce.reset(boost::lexical_cast<double>(value));
169 }
else if (key ==
"Ch") {
171 cache.
Ch.reset(boost::lexical_cast<double>(value));
172 }
else if (key ==
"e13") {
174 cache.
e13.reset(boost::lexical_cast<double>(value));
175 }
else if (key ==
"e15") {
177 cache.
e15.reset(boost::lexical_cast<double>(value));
178 }
else if (key ==
"e33") {
180 cache.
e33.reset(boost::lexical_cast<double>(value));
181 }
else if (key ==
"c13") {
183 cache.
c13.reset(boost::lexical_cast<double>(value));
184 }
else if (key ==
"c33") {
186 cache.
c33.reset(boost::lexical_cast<double>(value));
187 }
else if (key ==
"Psp") {
189 cache.
Psp.reset(boost::lexical_cast<double>(value));
190 }
else if (key ==
"Na") {
192 cache.
Na.reset(boost::lexical_cast<double>(value));
193 }
else if (key ==
"Nd") {
195 cache.
Nd.reset(boost::lexical_cast<double>(value));
197 }
catch (boost::bad_lexical_cast&) {