Mantid
Loading...
Searching...
No Matches
MagneticIon.cpp
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
8
9#include <algorithm>
10#include <cmath>
11#include <memory>
12#include <sstream>
13#include <stdexcept>
14#include <unordered_map>
15#include <utility>
16
19MagneticIon::MagneticIon() : symbol(""), charge(0), j0(8, 0.0), j2(8, 0.0), j4(8, 0.0), j6(8, 0.0), g(0.) {}
20
31MagneticIon::MagneticIon(const char *symbol, const uint16_t charge, const double j0i[8], const double j2i[8],
32 const double j4i[8], const double j6i[8], const double gi)
33 : symbol(symbol), charge(charge), j0(j0i, j0i + 8), j2(j2i, j2i + 8), j4(j4i, j4i + 8), j6(j6i, j6i + 8), g(gi) {}
34
44MagneticIon::MagneticIon(const char *symbol, const uint16_t charge, const double j0i[9], const double j2i[9],
45 const double j4i[9], const double gi)
46 : symbol(symbol), charge(charge), j0(j0i, j0i + 9), j2(j2i, j2i + 9), j4(j4i, j4i + 9), g(gi) {}
47
56double MagneticIon::getJLofQsqr(const double qsqr, const uint16_t l) const {
57 if (l > 6 || (l % 2) == 1) {
58 throw std::out_of_range("MagneticIon::analyticalFormFactor - j must be 0, 2, 4, or 6.");
59 }
60 int l2 = l / 2;
61 const double q2 = qsqr / (16.0 * M_PI * M_PI);
62 std::vector<std::vector<double>> pars = {j0, j2, j4, j6};
63 if ((int)pars[l2].size() == 0) {
64 return 0.;
65 }
66 bool is5d = pars[l2].size() > 8;
67 double A = pars[l2][0], alpha = pars[l2][1];
68 double B = pars[l2][2], beta = pars[l2][3];
69 double C = pars[l2][4], gamma = pars[l2][5];
70 double D = is5d ? pars[l2][6] : 0.;
71 double delta = is5d ? pars[l2][7] : 0.;
72 double E = is5d ? pars[l2][8] : pars[l2][6];
73 double retval = 0.;
74 if (qsqr < MagneticIon::formFactorCutOff()) {
75 retval = A * std::exp(-alpha * q2) + B * std::exp(-beta * q2) + C * std::exp(-gamma * q2) + E;
76 if (is5d)
77 retval += D * std::exp(-delta * q2);
78 if (l > 0)
79 retval *= q2;
80 }
81 return retval;
82}
83
90double MagneticIon::analyticalFormFactor(const double qsqr) const {
91 if (qsqr < MagneticIon::formFactorCutOff()) {
92 const double q2 = qsqr / (16.0 * M_PI * M_PI);
93 double j0exp, j2exp = 0.;
94 j0exp = j0[0] * std::exp(-j0[1] * q2) + j0[2] * std::exp(-j0[3] * q2) + j0[4] * std::exp(-j0[5] * q2);
95 if (fabs(g - 2.) > 0.01) {
96 j2exp = (j2[0] * std::exp(-j2[1] * q2) + j2[2] * std::exp(-j2[3] * q2) + j2[4] * std::exp(-j2[5] * q2)) * q2;
97 }
98 // Handles the case of 5d where we need an extra Dexp(-delta*Q^2) term
99 if (j0.size() > 8) {
100 j0exp += j0[6] * std::exp(-j0[7] * q2) + j0[8];
101 j2exp += (j2[6] * std::exp(-j2[7] * q2) + j2[8]) * q2;
102 } else {
103 j0exp += j0[6];
104 j2exp += j2[6] * q2;
105 }
106 // We want equation 11.110 of Lovesey 1984 (Theory of Neutron Scattering
107 // from Condensed Matter) not eq. 11.120. The "g" in eq 11.120 is an
108 // effective g-factor indicating an experimentally determined orbital
109 // angular momentum contribution.
110 // The "g" here is the Lande g-factor which is a theoretically determined
111 // value of the coupling between spin and orbital angular momenta in
112 // isolated rare earth ions.
113 // So in substituting the Lande g-factor into equation 11.110, we get
114 // a minus sign instead of the plus sign in equation 11.120.
115 // Both equations are also reproduced in:
116 // http://www.neutron.ethz.ch/research/resources/magnetic-form-factors.html
117 // Equation 11.110 is that given for transition metal ions, and eq 11.120
118 // that for rare earth ions.
119 return j0exp - (1 - (2. / g)) * j2exp;
120 } else
121 return 0.; // Outside simple model range
122}
123
129 // Cutoff is approximately 19 Ang^-1
130 static double cutoff(36.0 * M_PI * M_PI);
131 return cutoff;
132}
133
134namespace {
135// Windows will not accept array initializer syntax within a constructor so put
136// the various j_i definitions here
137// The format is { j0, j2, j4, j6 }
138constexpr double j_Sc0[4][8] = {{0.2512, 90.03, 0.329, 39.402, 0.4235, 14.322, -0.0043, 0.2029}, // <j0>
139 {10.8172, 54.327, 4.7353, 14.847, 0.6071, 4.218, 0.0011, 0.1212}, // <j2>
140 {1.342, 10.2, 0.3837, 3.079, 0.0468, 0.118, -0.0328, 0.1343}, // <j4>
141 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
142constexpr double j_Sc1[4][8] = {{0.4889, 51.16, 0.5203, 14.076, -0.0286, 0.179, 0.0185, 0.1217}, // <j0>
143 {8.5021, 34.285, 3.2116, 10.994, 0.4244, 3.605, 0.0009, 0.1037}, // <j2>
144 {7.1167, 15.487, -6.6671, 18.269, 0.49, 2.992, 0.0047, 0.1624}, // <j4>
145 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
146constexpr double j_Sc2[4][8] = {{0.5048, 31.403, 0.5186, 10.99, -0.0241, 1.183, 0, 0.0578}, // <j0>
147 {4.3683, 28.654, 3.7231, 10.823, 0.6074, 3.668, 0.0014, 0.0681}, // <j2>
148 {-1.6684, 15.648, 1.7742, 9.062, 0.4075, 2.412, 0.0042, 0.1105}, // <j4>
149 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
150constexpr double j_Ti0[4][8] = {{0.4657, 33.59, 0.549, 9.879, -0.0291, 0.323, 0.0123, 0.1088}, // <j0>
151 {4.3583, 36.056, 3.823, 11.133, 0.6855, 3.469, 0.002, 0.0967}, // <j2>
152 {-2.1515, 11.271, 2.5149, 8.859, 0.3555, 2.149, 0.0045, 0.1244}, // <j4>
153 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
154constexpr double j_Ti1[4][8] = {{0.5093, 36.703, 0.5032, 10.371, -0.0263, 0.311, 0.0116, 0.1125}, // <j0>
155 {6.1567, 27.275, 2.6833, 8.983, 0.407, 3.052, 0.0011, 0.0902}, // <j2>
156 {-1.0383, 16.19, 1.4699, 8.924, 0.3631, 2.283, 0.0044, 0.127}, // <j4>
157 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
158constexpr double j_Ti2[4][8] = {{0.5091, 24.976, 0.5162, 8.757, -0.0281, 0.916, 0.0015, 0.0589}, // <j0>
159 {4.3107, 18.348, 2.096, 6.797, 0.2984, 2.548, 0.0007, 0.064}, // <j2>
160 {-1.3242, 15.31, 1.2042, 7.899, 0.3976, 2.156, 0.0051, 0.082}, // <j4>
161 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
162constexpr double j_Ti3[4][8] = {{0.3571, 22.841, 0.6688, 8.931, -0.0354, 0.483, 0.0099, 0.0575}, // <j0>
163 {3.3717, 14.444, 1.8258, 5.713, 0.247, 2.265, 0.0005, 0.0491}, // <j2>
164 {-1.1117, 14.635, 0.7689, 6.927, 0.4385, 2.089, 0.006, 0.0572}, // <j4>
165 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
166constexpr double j_V0[4][8] = {{0.4086, 28.811, 0.6077, 8.544, -0.0295, 0.277, 0.0123, 0.097}, // <j0>
167 {3.76, 21.831, 2.4026, 7.546, 0.4464, 2.663, 0.0017, 0.0556}, // <j2>
168 {-0.9633, 15.273, 0.9274, 7.732, 0.3891, 2.053, 0.0063, 0.084}, // <j4>
169 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
170constexpr double j_V1[4][8] = {{0.4444, 32.648, 0.5683, 9.097, -0.2285, 0.022, 0.215, 0.1111}, // <j0>
171 {4.7474, 23.323, 2.3609, 7.808, 0.4105, 2.706, 0.0014, 0.08}, // <j2>
172 {-0.9606, 15.545, 1.1278, 8.118, 0.3653, 2.097, 0.0056, 0.1027}, // <j4>
173 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
174constexpr double j_V2[4][8] = {{0.4085, 23.853, 0.6091, 8.246, -0.1676, 0.041, 0.1496, 0.0593}, // <j0>
175 {3.4386, 16.53, 1.9638, 6.141, 0.2997, 2.267, 0.0009, 0.0565}, // <j2>
176 {-1.1729, 14.973, 0.9092, 7.613, 0.4105, 2.039, 0.0067, 0.0719}, // <j4>
177 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
178constexpr double j_V3[4][8] = {{0.3598, 19.336, 0.6632, 7.617, -0.3064, 0.03, 0.2835, 0.0515}, // <j0>
179 {2.3005, 14.682, 2.0364, 6.13, 0.4099, 2.382, 0.0014, 0.0252}, // <j2>
180 {-0.9417, 14.205, 0.5284, 6.607, 0.4411, 1.967, 0.0076, 0.0569}, // <j4>
181 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
182constexpr double j_V4[4][8] = {{0.3106, 16.816, 0.7198, 7.049, -0.0521, 0.302, 0.0221, 0.0433}, // <j0>
183 {1.8377, 12.267, 1.8247, 5.458, 0.3979, 2.248, 0.0012, 0.0399}, // <j2>
184 {-0.7654, 13.097, 0.3071, 5.674, 0.4476, 1.871, 0.0081, 0.0518}, // <j4>
185 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
186constexpr double j_Cr0[4][8] = {{0.1135, 45.199, 0.3481, 19.493, 0.5477, 7.354, -0.0092, 0.1975}, // <j0>
187 {3.4085, 20.127, 2.1006, 6.802, 0.4266, 2.394, 0.0019, 0.0662}, // <j2>
188 {-0.667, 19.613, 0.5342, 6.478, 0.3641, 1.905, 0.0073, 0.0628}, // <j4>
189 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
190constexpr double j_Cr1[4][8] = {{-0.0977, 0.047, 0.4544, 26.005, 0.5579, 7.489, 0.0831, 0.1114}, // <j0>
191 {3.7768, 20.346, 2.1028, 6.893, 0.401, 2.411, 0.0017, 0.0686}, // <j2>
192 {-0.8309, 18.043, 0.7252, 7.531, 0.3828, 2.003, 0.0073, 0.0781}, // <j4>
193 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
194constexpr double j_Cr2[4][8] = {{1.2024, -0.005, 0.4158, 20.548, 0.6032, 6.956, -1.2218, 0.0572}, // <j0>
195 {2.6422, 16.06, 1.9198, 6.253, 0.4446, 2.372, 0.002, 0.048}, // <j2>
196 {-0.893, 15.664, 0.559, 7.033, 0.4093, 1.924, 0.0081, 0.0631}, // <j4>
197 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
198constexpr double j_Cr3[4][8] = {{-0.3094, 0.027, 0.368, 17.035, 0.6559, 6.524, 0.2856, 0.0436}, // <j0>
199 {1.6262, 15.066, 2.0618, 6.284, 0.5281, 2.368, 0.0023, 0.0263}, // <j2>
200 {-0.7327, 14.073, 0.3268, 5.674, 0.4114, 1.81, 0.0085, 0.0505}, // <j4>
201 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
202constexpr double j_Cr4[4][8] = {{-0.232, 0.043, 0.3101, 14.952, 0.7182, 6.173, 0.2042, 0.0419}, // <j0>
203 {1.0293, 13.95, 1.9933, 6.059, 0.5974, 2.346, 0.0027, 0.0366}, // <j2>
204 {-0.6748, 12.946, 0.1805, 6.753, 0.4526, 1.8, 0.0098, 0.0644}, // <j4>
205 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
206constexpr double j_Mn0[4][8] = {{0.2438, 24.963, 0.1472, 15.673, 0.6189, 6.54, -0.0105, 0.1748}, // <j0>
207 {2.6681, 16.06, 1.7561, 5.64, 0.3675, 2.049, 0.0017, 0.0595}, // <j2>
208 {-0.5452, 15.471, 0.4406, 4.902, 0.2884, 1.543, 0.0059, 0.0488}, // <j4>
209 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
210constexpr double j_Mn1[4][8] = {{-0.0138, 0.421, 0.4231, 24.668, 0.5905, 6.655, -0.001, 0.1242}, // <j0>
211 {3.2953, 18.695, 1.8792, 6.24, 0.3927, 2.201, 0.0022, 0.0659}, // <j2>
212 {-0.7947, 17.867, 0.6078, 7.704, 0.3798, 1.905, 0.0087, 0.0737}, // <j4>
213 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
214constexpr double j_Mn2[4][8] = {{0.422, 17.684, 0.5948, 6.005, 0.0043, -0.609, -0.0219, 0.0589}, // <j0>
215 {2.0515, 15.556, 1.8841, 6.063, 0.4787, 2.232, 0.0027, 0.0306}, // <j2>
216 {-0.7416, 15.255, 0.3831, 6.469, 0.3935, 1.8, 0.0093, 0.0577}, // <j4>
217 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
218constexpr double j_Mn3[4][8] = {{0.4198, 14.283, 0.6054, 5.469, 0.9241, -0.009, -0.9498, 0.0392}, // <j0>
219 {1.2427, 14.997, 1.9567, 6.118, 0.5732, 2.258, 0.0031, 0.0336}, // <j2>
220 {-0.6603, 13.607, 0.2322, 6.218, 0.4104, 1.74, 0.0101, 0.0579}, // <j4>
221 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
222constexpr double j_Mn4[4][8] = {{0.376, 12.566, 0.6602, 5.133, -0.0372, 0.563, 0.0011, 0.0393}, // <j0>
223 {0.7879, 13.886, 1.8717, 5.743, 0.5981, 2.182, 0.0034, 0.0434}, // <j2>
224 {-0.5127, 13.461, 0.0313, 7.763, 0.4282, 1.701, 0.0113, 0.0693}, // <j4>
225 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
226constexpr double j_Fe0[4][8] = {{0.0706, 35.008, 0.3589, 15.358, 0.5819, 5.561, -0.0114, 0.1398}, // <j0>
227 {1.9405, 18.473, 1.9566, 6.323, 0.5166, 2.161, 0.0036, 0.0394}, // <j2>
228 {-0.5029, 19.677, 0.2999, 3.776, 0.2576, 1.424, 0.0071, 0.0292}, // <j4>
229 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
230constexpr double j_Fe1[4][8] = {{0.1251, 34.963, 0.3629, 15.514, 0.5223, 5.591, -0.0105, 0.1301}, // <j0>
231 {2.629, 18.66, 1.8704, 6.331, 0.469, 2.163, 0.0031, 0.0491}, // <j2>
232 {-0.5109, 19.25, 0.3896, 4.891, 0.281, 1.526, 0.0069, 0.0375}, // <j4>
233 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
234constexpr double j_Fe2[4][8] = {{0.0263, 34.96, 0.3668, 15.943, 0.6188, 5.594, -0.0119, 0.1437}, // <j0>
235 {1.649, 16.559, 1.9064, 6.133, 0.5206, 2.137, 0.0035, 0.0335}, // <j2>
236 {-0.5401, 17.227, 0.2865, 3.742, 0.2658, 1.424, 0.0076, 0.0278}, // <j4>
237 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
238constexpr double j_Fe3[4][8] = {{0.3972, 13.244, 0.6295, 4.903, -0.0314, 0.35, 0.0044, 0.0441}, // <j0>
239 {1.3602, 11.998, 1.5188, 5.003, 0.4705, 1.991, 0.0038, 0.0374}, // <j2>
240 {-0.5507, 11.493, 0.2153, 4.906, 0.3468, 1.523, 0.0095, 0.0314}, // <j4>
241 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
242constexpr double j_Fe4[4][8] = {{0.3782, 11.38, 0.6556, 4.592, -0.0346, 0.483, 0.0005, 0.0362}, // <j0>
243 {1.5582, 8.275, 1.1863, 3.279, 0.1366, 1.107, -0.0022, 0.0327}, // <j2>
244 {-0.5352, 9.507, 0.1783, 5.175, 0.3584, 1.469, 0.0097, 0.036}, // <j4>
245 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
246constexpr double j_Co0[4][8] = {{0.4139, 16.162, 0.6013, 4.78, -0.1518, 0.021, 0.1345, 0.1033}, // <j0>
247 {1.9678, 14.17, 1.4911, 4.948, 0.3844, 1.797, 0.0027, 0.0452}, // <j2>
248 {-0.4221, 14.195, 0.29, 3.979, 0.2469, 1.286, 0.0063, 0.04}, // <j4>
249 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
250constexpr double j_Co1[4][8] = {{0.099, 33.125, 0.3645, 15.177, 0.547, 5.008, -0.0109, 0.0983}, // <j0>
251 {2.4097, 16.161, 1.578, 5.46, 0.4095, 1.914, 0.0031, 0.0581}, // <j2>
252 {-0.4115, 14.561, 0.358, 4.717, 0.2644, 1.418, 0.0074, 0.0541}, // <j4>
253 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
254constexpr double j_Co2[4][8] = {{0.4332, 14.355, 0.5857, 4.608, -0.0382, 0.134, 0.0179, 0.0711}, // <j0>
255 {1.9049, 11.644, 1.3159, 4.357, 0.3146, 1.645, 0.0017, 0.0459}, // <j2>
256 {0.4759, 14.046, 0.2747, 3.731, 0.2458, 1.25, 0.0057, 0.0282}, // <j4>
257 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
258constexpr double j_Co3[4][8] = {{0.3902, 12.508, 0.6324, 4.457, -0.15, 0.034, 0.1272, 0.0515}, // <j0>
259 {1.7058, 8.859, 1.1409, 3.309, 0.1474, 1.09, -0.0025, 0.0462}, // <j2>
260 {-0.4466, 13.391, 0.1419, 3.011, 0.2773, 1.335, 0.0093, 0.0341}, // <j4>
261 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
262constexpr double j_Co4[4][8] = {{0.3515, 10.778, 0.6778, 4.234, -0.0389, 0.241, 0.0098, 0.039}, // <j0>
263 {1.311, 8.025, 1.1551, 3.179, 0.1608, 1.13, -0.0011, 0.0374}, // <j2>
264 {-0.4091, 13.194, -0.0194, 3.417, 0.3534, 1.421, 0.0112, 0.0622}, // <j4>
265 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
266constexpr double j_Ni0[4][8] = {{-0.0172, 35.739, 0.3174, 14.269, 0.7136, 4.566, -0.0143, 0.1072}, // <j0>
267 {1.0302, 12.252, 1.4669, 4.745, 0.4521, 1.744, 0.0036, 0.0338}, // <j2>
268 {-0.4428, 14.485, 0.087, 3.234, 0.2932, 1.331, 0.0096, 0.0554}, // <j4>
269 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
270constexpr double j_Ni1[4][8] = {{0.0705, 35.856, 0.3984, 13.804, 0.5427, 4.397, -0.0118, 0.0738}, // <j0>
271 {2.104, 14.866, 1.4302, 5.071, 0.4031, 1.778, 0.0034, 0.0561}, // <j2>
272 {-0.3836, 13.425, 0.3116, 4.462, 0.2471, 1.309, 0.0079, 0.0515}, // <j4>
273 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
274constexpr double j_Ni2[4][8] = {{0.0163, 35.883, 0.3916, 13.223, 0.6052, 4.339, -0.0133, 0.0817}, // <j0>
275 {1.708, 11.016, 1.2147, 4.103, 0.315, 1.533, 0.0018, 0.0446}, // <j2>
276 {-0.3803, 10.403, 0.2838, 3.378, 0.2108, 1.104, 0.005, 0.0474}, // <j4>
277 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
278constexpr double j_Ni3[4][8] = {{0.0012, 35, 0.3468, 11.987, 0.6667, 4.252, -0.0148, 0.0883}, // <j0>
279 {1.4683, 8.671, 0.1794, 1.106, 1.1068, 3.257, -0.0023, 0.0373}, // <j2>
280 {-0.4014, 9.046, 0.2314, 3.075, 0.2192, 1.084, 0.006, 0.0323}, // <j4>
281 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
282constexpr double j_Ni4[4][8] = {{-0.009, 35.861, 0.2776, 11.79, 0.7474, 4.201, -0.0163, 0.0966}, // <j0>
283 {1.1612, 7.7, 1.0027, 3.263, 0.2719, 1.378, 0.0025, 0.0326}, // <j2>
284 {-0.3509, 8.157, 0.222, 2.106, 0.1567, 0.925, 0.0065, 0.0352}, // <j4>
285 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
286constexpr double j_Cu0[4][8] = {{0.0909, 34.984, 0.4088, 11.443, 0.5128, 3.825, -0.0124, 0.0513}, // <j0>
287 {1.9182, 14.49, 1.3329, 4.73, 0.3842, 1.639, 0.0035, 0.0617}, // <j2>
288 {-0.3204, 15.132, 0.2335, 4.021, 0.2312, 1.196, 0.0068, 0.0457}, // <j4>
289 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
290constexpr double j_Cu1[4][8] = {{0.0749, 34.966, 0.4147, 11.764, 0.5238, 3.85, -0.0127, 0.0591}, // <j0>
291 {1.8814, 13.433, 1.2809, 4.545, 0.3646, 1.602, 0.0033, 0.059}, // <j2>
292 {-0.3572, 15.125, 0.2336, 3.966, 0.2315, 1.197, 0.007, 0.0397}, // <j4>
293 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
294constexpr double j_Cu2[4][8] = {{0.0232, 34.969, 0.4023, 11.564, 0.5882, 3.843, -0.0137, 0.0532}, // <j0>
295 {1.5189, 10.478, 1.1512, 3.813, 0.2918, 1.398, 0.0017, 0.0429}, // <j2>
296 {-0.3914, 14.74, 0.1275, 3.384, 0.2548, 1.255, 0.0103, 0.0394}, // <j4>
297 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
298constexpr double j_Cu3[4][8] = {{0.0031, 34.907, 0.3582, 10.914, 0.6531, 3.828, -0.0147, 0.0665}, // <j0>
299 {1.2797, 8.45, 1.0315, 3.28, 0.2401, 1.25, 0.0015, 0.0389}, // <j2>
300 {-0.3671, 14.082, -0.0078, 3.315, 0.3154, 1.377, 0.0132, 0.0534}, // <j4>
301 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
302constexpr double j_Cu4[4][8] = {{-0.0132, 30.682, 0.2801, 11.163, 0.749, 3.817, -0.0165, 0.0767}, // <j0>
303 {0.9568, 7.448, 0.9099, 3.396, 0.3729, 1.494, 0.0049, 0.033}, // <j2>
304 {-0.2915, 14.124, -0.1065, 4.201, 0.3247, 1.352, 0.0148, 0.0579}, // <j4>
305 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
306constexpr double j_Y0[4][8] = {{0.5915, 67.608, 1.5123, 17.9, -1.113, 14.136, 0.008, 0.3272}, // <j0>
307 {14.4084, 44.658, 5.1045, 14.904, -0.0535, 3.319, 0.0028, 0.1093}, // <j2>
308 {-8.0767, 32.201, 7.9197, 25.156, 1.4067, 6.827, -0.0001, 0.1031}, // <j4>
309 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
310constexpr double j_Zr0[4][8] = {{0.4106, 59.996, 1.0543, 18.648, -0.4751, 10.54, 0.0106, 0.3667}, // <j0>
311 {10.1378, 35.337, 4.7734, 12.545, -0.0489, 2.672, 0.0036, 0.0912}, // <j2>
312 {-5.2697, 32.868, 4.193, 24.183, 1.5202, 6.048, -0.0002, 0.0855}, // <j4>
313 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
314constexpr double j_Zr1[4][8] = {{0.4532, 59.595, 0.7834, 21.436, -0.2451, 9.036, 0.0098, 0.3639}, // <j0>
315 {11.8722, 34.92, 4.0502, 12.127, -0.0632, 2.828, 0.0034, 0.0737}, // <j2>
316 {-5.6384, 33.607, 4.6729, 22.338, 1.3258, 5.924, -0.0003, 0.0674}, // <j4>
317 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
318constexpr double j_Nb0[4][8] = {{0.3946, 49.23, 1.3197, 14.822, -0.7269, 9.616, 0.0129, 0.3659}, // <j0>
319 {7.4796, 33.179, 5.0884, 11.571, -0.0281, 1.564, 0.0047, 0.0944}, // <j2>
320 {-3.1377, 25.595, 2.3411, 16.569, 1.2304, 4.99, -0.0005, 0.0615}, // <j4>
321 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
322constexpr double j_Nb1[4][8] = {{0.4572, 49.918, 1.0274, 15.726, -0.4962, 9.157, 0.0118, 0.3403}, // <j0>
323 {8.7735, 33.285, 4.6556, 11.605, -0.0268, 1.539, 0.0044, 0.0855}, // <j2>
324 {-3.3598, 25.82, 2.8297, 16.427, 1.1203, 4.982, -0.0005, 0.0724}, // <j4>
325 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
326constexpr double j_Mo0[4][8] = {{0.1806, 49.057, 1.2306, 14.786, -0.4268, 6.987, 0.0171, 0.4135}, // <j0>
327 {5.118, 23.422, 4.1809, 9.208, -0.0505, 1.743, 0.0053, 0.0655}, // <j2>
328 {-2.886, 20.572, 1.813, 14.628, 1.1899, 4.264, -0.0008, 0.041}, // <j4>
329 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
330constexpr double j_Mo1[4][8] = {{0.35, 48.035, 1.0305, 15.06, -0.3929, 7.479, 0.0139, 0.351}, // <j0>
331 {7.2367, 28.128, 4.0705, 9.923, -0.0317, 1.455, 0.0049, 0.0798}, // <j2>
332 {-3.2618, 25.486, 2.3596, 16.462, 1.1164, 4.491, -0.0007, 0.0592}, // <j4>
333 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
334constexpr double j_Tc0[4][8] = {{0.1298, 49.661, 1.1656, 14.131, -0.3134, 5.513, 0.0195, 0.3869}, // <j0>
335 {4.2441, 21.397, 3.9439, 8.375, -0.0371, 1.187, 0.0066, 0.0645}, // <j2>
336 {-2.7975, 20.159, 1.652, 16.261, 1.1726, 3.943, -0.0008, 0.0657}, // <j4>
337 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
338constexpr double j_Tc1[4][8] = {{0.2674, 48.957, 0.9569, 15.141, -0.2387, 5.458, 0.016, 0.3412}, // <j0>
339 {6.4056, 24.824, 3.54, 8.611, -0.0366, 1.485, 0.0044, 0.0806}, // <j2>
340 {-2.047, 19.683, 1.6306, 11.592, 0.8698, 3.769, -0.001, 0.0723}, // <j4>
341 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
342constexpr double j_Ru0[4][8] = {{0.1069, 49.424, 1.1912, 12.742, -0.3176, 4.912, 0.0213, 0.3597}, // <j0>
343 {3.7445, 18.613, 3.4749, 7.42, -0.0363, 1.007, 0.0073, 0.0533}, // <j2>
344 {-1.5042, 17.949, 0.6027, 9.961, 0.97, 3.393, -0.001, 0.0338}, // <j4>
345 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
346constexpr double j_Ru1[4][8] = {{0.441, 33.309, 1.4775, 9.553, -0.9361, 6.722, 0.0176, 0.2608}, // <j0>
347 {5.2826, 23.683, 3.5813, 8.152, -0.0257, 0.426, 0.0131, 0.083}, // <j2>
348 {1.6278, 18.506, 1.1828, 10.189, 0.8138, 3.418, -0.0009, 0.0673}, // <j4>
349 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
350constexpr double j_Rh0[4][8] = {{0.0976, 49.882, 1.1601, 11.831, -0.2789, 4.127, 0.0234, 0.3263}, // <j0>
351 {3.3651, 17.344, 3.2121, 6.804, -0.035, 0.503, 0.0146, 0.0545}, // <j2>
352 {-1.3492, 17.577, 0.4527, 10.507, 0.9285, 3.155, -0.0009, 0.0483}, // <j4>
353 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
354constexpr double j_Rh1[4][8] = {{0.3342, 29.756, 1.2209, 9.438, -0.5755, 5.332, 0.021, 0.2574}, // <j0>
355 {4.026, 18.95, 3.1663, 7, -0.0296, 0.486, 0.0127, 0.0629}, // <j2>
356 {-1.4673, 17.957, 0.7381, 9.944, 0.8485, 3.126, -0.0012, 0.0487}, // <j4>
357 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
358constexpr double j_Pd0[4][8] = {{0.2003, 29.363, 1.1446, 9.599, -0.3689, 4.042, 0.0251, 0.2453}, // <j0>
359 {3.3105, 14.726, 2.6332, 5.862, -0.0437, 1.13, 0.0053, 0.0492}, // <j2>
360 {-1.1955, 17.628, 0.3183, 11.309, 0.8696, 2.909, -0.0006, 0.0555}, // <j4>
361 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
362constexpr double j_Pd1[4][8] = {{0.5033, 24.504, 1.9982, 6.908, -1.524, 5.513, 0.0213, 0.1909}, // <j0>
363 {4.2749, 17.9, 2.7021, 6.354, -0.0258, 0.7, 0.0071, 0.0768}, // <j2>
364 {-1.4098, 17.765, 0.7927, 9.999, 0.771, 2.93, -0.0006, 0.053}, // <j4>
365 {0, 0, 0, 0, 0, 0, 0, 0}}; // <j6>
366constexpr double j_Ce2[4][8] = {{0.2953, 17.685, 0.2923, 6.733, 0.4313, 5.383, -0.0194, 0.0845}, // <j0>
367 {0.9809, 18.063, 1.8413, 7.769, 0.9905, 2.845, 0.012, 0.0448}, // <j2>
368 {-0.6468, 10.533, 0.4052, 5.624, 0.3412, 1.535, 0.008, 0.0522}, // <j4>
369 {-0.1212, 7.994, -0.0639, 4.024, 0.1519, 1.096, 0.0078, 0.0388}}; // <j6>
370constexpr double j_Nd2[4][8] = {{0.1645, 25.045, 0.2522, 11.978, 0.6012, 4.946, -0.018, 0.0668}, // <j0>
371 {1.453, 18.34, 1.6196, 7.285, 0.8752, 2.622, 0.0126, 0.0461}, // <j2>
372 {-0.5416, 12.204, 0.3571, 6.169, 0.3154, 1.485, 0.0098, 0.0519}, // <j4>
373 {-0.16, 8.009, 0.0272, 4.028, 0.1104, 1.068, 0.0139, 0.0363}}; // <j6>
374constexpr double j_Nd3[4][8] = {{0.054, 25.029, 0.3101, 12.102, 0.6575, 4.722, -0.0216, 0.0478}, // <j0>
375 {0.6751, 18.342, 1.6272, 7.26, 0.9644, 2.602, 0.015, 0.045}, // <j2>
376 {-0.4053, 14.014, 0.0329, 7.005, 0.3759, 1.707, 0.0209, 0.0372}, // <j4>
377 {0.0416, 8.014, -0.1261, 4.04, 0.14, 1.087, 0.0102, 0.0367}}; // <j6>
378constexpr double j_Sm2[4][8] = {{0.0909, 25.203, 0.3037, 11.856, 0.625, 4.237, -0.02, 0.0408}, // <j0>
379 {1.036, 18.425, 1.4769, 7.032, 0.881, 2.437, 0.0152, 0.0345}, // <j2>
380 {-0.415, 14.057, 0.1368, 7.032, 0.3272, 1.582, 0.0192, 0.0319}, // <j4>
381 {0.1428, 6.041, 0.0723, 2.033, 0.055, 0.513, 0.0081, 0.045}}; // <j6>
382constexpr double j_Sm3[4][8] = {{0.0288, 25.207, 0.2973, 11.831, 0.6954, 4.212, -0.0213, 0.051}, // <j0>
383 {0.4707, 18.43, 1.4261, 7.034, 0.9574, 2.439, 0.0182, 0.051}, // <j2>
384 {-0.4288, 10.052, 0.1782, 5.019, 0.2833, 1.236, 0.0088, 0.0328}, // <j4>
385 {-0.0944, 6.03, -0.0498, 2.074, 0.1372, 0.645, -0.0132, 0.0387}}; // <j6>
386constexpr double j_Eu2[4][8] = {{0.0755, 25.296, 0.3001, 11.599, 0.6438, 4.025, -0.0196, 0.0488}, // <j0>
387 {0.897, 18.443, 1.3769, 7.005, 0.906, 2.421, 0.019, 0.0511}, // <j2>
388 {-0.4145, 10.193, 0.2447, 5.164, 0.2661, 1.205, 0.0065, 0.0516}, // <j4>
389 {-0.1252, 6.049, 0.0507, 2.085, 0.0572, 0.646, 0.0132, 0.0403}}; // <j6>
390constexpr double j_Eu3[4][8] = {{0.0204, 25.308, 0.301, 11.474, 0.7005, 3.942, -0.022, 0.0356}, // <j0>
391 {0.3985, 18.451, 1.3307, 6.956, 0.9603, 2.378, 0.0197, 0.0447}, // <j2>
392 {-0.4095, 10.211, 0.1485, 5.175, 0.272, 1.237, 0.0131, 0.0494}, // <j4>
393 {-0.0817, 6.039, -0.0596, 2.12, 0.1243, 0.764, -0.0001, 0.0206}}; // <j6>
394constexpr double j_Gd2[4][8] = {{0.0636, 25.382, 0.3033, 11.212, 0.6528, 3.788, -0.0199, 0.0486}, // <j0>
395 {0.7756, 18.469, 1.3124, 6.899, 0.8956, 2.338, 0.0199, 0.0441}, // <j2>
396 {-0.3824, 10.344, 0.1955, 5.306, 0.2622, 1.203, 0.0097, 0.0363}, // <j4>
397 {-0.1351, 5.03, 0.0828, 2.025, 0.0315, 0.503, 0.0187, 0.0453}}; // <j6>
398constexpr double j_Gd3[4][8] = {{0.0186, 25.387, 0.2895, 11.142, 0.7135, 3.752, -0.0217, 0.0489}, // <j0>
399 {0.3347, 18.476, 1.2465, 6.877, 0.9537, 2.318, 0.0217, 0.0484}, // <j2>
400 {-0.3621, 10.353, 0.1016, 5.31, 0.2649, 1.219, 0.0147, 0.0494}, // <j4>
401 {-0.0662, 6.031, -0.085, 2.154, 0.1323, 0.891, 0.0048, 0.0371}}; // <j6>
402constexpr double j_Tb2[4][8] = {{0.0547, 25.509, 0.3171, 10.591, 0.649, 3.517, -0.0212, 0.0342}, // <j0>
403 {0.6688, 18.491, 1.2487, 6.822, 0.8888, 2.275, 0.0215, 0.0439}, // <j2>
404 {-0.3443, 10.469, 0.1481, 5.416, 0.2575, 1.182, 0.0104, 0.028}, // <j4>
405 {-0.0758, 6.032, -0.054, 2.158, 0.1199, 0.89, 0.0051, 0.0488}}; // <j6>
406constexpr double j_Tb3[4][8] = {{0.0177, 25.51, 0.2921, 10.577, 0.7133, 3.512, -0.0231, 0.0512}, // <j0>
407 {0.2892, 18.497, 1.1678, 6.797, 0.9437, 2.257, 0.0232, 0.0458}, // <j2>
408 {-0.3228, 10.476, 0.0638, 5.419, 0.2566, 1.196, 0.0159, 0.0439}, // <j4>
409 {-0.0559, 6.031, -0.102, 2.237, 0.1264, 1.107, 0.0167, 0.017}}; // <j6>
410constexpr double j_Dy2[4][8] = {{0.1308, 18.316, 0.3118, 7.665, 0.5795, 3.147, -0.0226, 0.0315}, // <j0>
411 {0.5917, 18.511, 1.1828, 6.747, 0.8801, 2.214, 0.0229, 0.0439}, // <j2>
412 {-0.3206, 12.071, 0.0904, 8.026, 0.2616, 1.23, 0.0143, 0.0767}, // <j4>
413 {-0.0568, 6.032, -0.1003, 2.24, 0.1401, 1.106, 0.0109, 0.0463}}; // <j6>
414constexpr double j_Dy3[4][8] = {{0.1157, 15.073, 0.327, 6.799, 0.5821, 3.02, -0.0249, 0.0146}, // <j0>
415 {0.2523, 18.517, 1.0914, 6.736, 0.9345, 2.208, 0.025, 0.0476}, // <j2>
416 {-0.2829, 9.525, 0.0565, 4.429, 0.2437, 1.066, 0.0092, 0.0181}, // <j4>
417 {-0.0423, 6.038, -0.1248, 2.244, 0.1359, 1.2, 0.0188, 0.035}}; // <j6>
418constexpr double j_Ho2[4][8] = {{0.0995, 18.176, 0.3305, 7.856, 0.5921, 2.98, -0.023, 0.124}, // <j0>
419 {0.5094, 18.515, 1.1234, 6.706, 0.8727, 2.159, 0.0242, 0.056}, // <j2>
420 {-0.2976, 9.719, 0.1224, 4.635, 0.2279, 1.005, 0.0063, 0.0452}, // <j4>
421 {-0.0725, 6.045, -0.0318, 2.243, 0.0738, 1.202, 0.0252, 0.0634}}; // <j6>
422constexpr double j_Ho3[4][8] = {{0.0566, 18.318, 0.3365, 7.688, 0.6317, 2.943, -0.0248, 0.0068}, // <j0>
423 {0.2188, 18.516, 1.024, 6.707, 0.9251, 2.161, 0.0268, 0.0503}, // <j2>
424 {-0.2717, 9.731, 0.0474, 4.638, 0.2292, 1.047, 0.0124, 0.031}, // <j4>
425 {-0.0289, 6.05, -0.1545, 2.23, 0.155, 1.26, 0.0177, 0.0351}}; // <j6>
426constexpr double j_Er2[4][8] = {{0.1122, 18.122, 0.3462, 6.911, 0.5649, 2.761, -0.0235, 0.0207}, // <j0>
427 {0.4693, 18.528, 1.0545, 6.649, 0.8679, 2.12, 0.0261, 0.0413}, // <j2>
428 {-0.2975, 9.829, 0.1189, 4.741, 0.2116, 1.004, 0.0117, 0.0524}, // <j4>
429 {0.0648, 6.056, -0.0515, 2.23, 0.0825, 1.264, 0.025, 0.0409}}; // <j6>
430constexpr double j_Er3[4][8] = {{0.0586, 17.98, 0.354, 7.096, 0.6126, 2.748, -0.0251, 0.0171}, // <j0>
431 {0.171, 18.534, 0.9879, 6.625, 0.9044, 2.1, 0.0278, 0.0489}, // <j2>
432 {-0.2568, 9.834, 0.0356, 4.741, 0.2172, 1.028, 0.0148, 0.0434}, // <j4>
433 {-0.011, 6.061, -0.1954, 2.224, 0.1818, 1.296, 0.0149, 0.0455}}; // <j6>
434constexpr double j_Tm2[4][8] = {{0.0983, 18.324, 0.338, 6.918, 0.5875, 2.662, -0.0241, 0.0404}, // <j0>
435 {0.4198, 18.542, 0.9959, 6.6, 0.8593, 2.082, 0.0284, 0.0457}, // <j2>
436 {-0.2677, 9.888, 0.0925, 4.784, 0.2056, 0.99, 0.0124, 0.0396}, // <j4>
437 {0.0842, 4.07, 0.0807, 0.849, -0.2087, 0.039, 0.2095, 0.036}}; // <j6>
438constexpr double j_Tm3[4][8] = {{0.0581, 15.092, 0.2787, 7.801, 0.6854, 2.793, -0.0224, 0.0351}, // <j0>
439 {0.176, 18.542, 0.9105, 6.579, 0.897, 2.062, 0.0294, 0.0468}, // <j2>
440 {-0.2292, 9.895, 0.0124, 4.785, 0.2108, 1.007, 0.0151, 0.0334}, // <j4>
441 {0.0727, 4.073, 0.0243, 0.689, 3.9459, 0.002, -3.9076, 0.0502}}; // <j6>
442constexpr double j_Yb2[4][8] = {{0.0855, 18.512, 0.2943, 7.373, 0.6412, 2.678, -0.0213, 0.0421}, // <j0>
443 {0.3852, 18.55, 0.9415, 6.551, 0.8492, 2.043, 0.0301, 0.0478}, // <j2>
444 {-0.2393, 9.947, 0.0663, 4.823, 0.2009, 0.965, 0.0122, 0.0311}, // <j4>
445 {-0.0739, 5.031, 0.014, 2.03, 0.0351, 0.508, 0.0174, 0.0434}}; // <j6>
446constexpr double j_Yb3[4][8] = {{0.0416, 16.095, 0.2849, 7.834, 0.6961, 2.672, -0.0229, 0.0344}, // <j0>
447 {0.157, 18.555, 0.8484, 6.54, 0.888, 2.037, 0.0318, 0.0498}, // <j2>
448 {-0.2121, 8.197, 0.0325, 3.153, 0.1975, 0.884, 0.0093, 0.0435}, // <j4>
449 {-0.0345, 5.007, -0.0677, 2.02, 0.0985, 0.549, -0.0076, 0.0359}}; // <j6>
451constexpr double j_Pr3[4][8] = {{0.0504, 24.9989, 0.2572, 12.0377, 0.7142, 5.0039, -0.0219, -1.}, // <j0>
452 {0.8734, 18.9876, 1.5594, 6.0872, 0.8142, 2.4150, 0.0111, -1.}, // <j2>
453 {-0.3970, 10.9919, 0.0818, 5.9897, 0.3656, 1.5021, 0.0110, -1.}, // <j4>
454 {-0.0224, 7.9931, -0.1202, 3.9406, 0.1299, 0.8938, 0.0051, -1.}}; // <j6>
455constexpr double j_U3[4][8] = {{0.5058, 23.288, 1.3464, 7.003, -0.8724, 4.868, 0.0192, 0.1507}, // <j0>
456 {4.1582, 16.534, 2.4675, 5.952, -0.0252, 0.765, 0.0057, 0.0822}, // <j2>
457 {-0.9859, 16.601, 0.6116, 6.515, 0.602, 2.597, -0.001, 0.0599}, // <j4>
458 {-0.3797, 9.953, 0.0459, 5.038, 0.2748, 1.607, 0.0016, 0.0345}}; // <j6>
459constexpr double j_U4[4][8] = {{0.3291, 23.548, 1.0836, 8.454, -0.434, 4.12, 0.0214, 0.1757}, // <j0>
460 {3.7449, 13.894, 2.6453, 4.863, -0.5218, 3.192, 0.0009, 0.0928}, // <j2>
461 {-1.054, 16.605, 0.4339, 6.512, 0.6746, 2.599, -0.0011, 0.0471}, // <j4>
462 {-0.1793, 11.896, -0.2269, 5.428, 0.3291, 1.701, 0.003, 0.0472}}; // <j6>
463constexpr double j_U5[4][8] = {{0.365, 19.804, 3.2199, 6.282, -2.6077, 5.301, 0.0233, 0.175}, // <j0>
464 {3.0724, 12.546, 2.3076, 5.231, -0.0644, 1.474, 0.0035, 0.0477}, // <j2>
465 {-0.9588, 16.485, 0.1576, 6.44, 0.7785, 2.64, -0.001, 0.0493}, // <j4>
466 {-0.0399, 11.891, -0.3458, 5.58, 0.334, 1.645, 0.0029, 0.0444}}; // <j6>
467constexpr double j_Np3[4][8] = {{0.5157, 20.865, 2.2784, 5.893, -1.8163, 4.846, 0.0211, 0.1378}, // <j0>
468 {3.717, 15.133, 2.3216, 5.503, -0.0275, 0.8, 0.0052, 0.0948}, // <j2>
469 {0.9029, 16.586, 0.4006, 6.47, 0.6545, 2.563, -0.0004, 0.047}, // <j4>
470 {-0.2427, 11.844, -0.1129, 5.377, 0.2848, 1.568, 0.0022, 0.0368}}; // <j6>
471constexpr double j_Np4[4][8] = {{0.4206, 19.805, 2.8004, 5.978, -2.2436, 4.985, 0.0228, 0.1408}, // <j0>
472 {2.9203, 14.646, 2.5979, 5.559, -0.0301, 0.367, 0.0141, 0.0532}, // <j2>
473 {-0.9887, 12.441, 0.5918, 5.294, 0.5306, 2.263, -0.0021, 0.0583}, // <j4>
474 {-0.2436, 9.599, -0.1317, 4.101, 0.3029, 1.545, 0.0019, 0.05}}; // <j6>
475constexpr double j_Np5[4][8] = {{0.3692, 18.19, 3.151, 5.85, -2.5446, 4.916, 0.0248, 0.1515}, // <j0>
476 {2.3308, 13.654, 2.7219, 5.494, -0.1357, 0.049, 0.1224, 0.0553}, // <j2>
477 {-0.8146, 16.581, -0.0055, 6.475, 0.7956, 2.562, -0.0004, 0.06}, // <j4>
478 {-0.1157, 9.565, -0.2654, 4.26, 0.3298, 1.549, 0.0025, 0.0495}}; // <j6>
479constexpr double j_Np6[4][8] = {{0.2929, 17.561, 3.4866, 5.785, -2.8066, 4.871, 0.0267, 0.1698}, // <j0>
480 {1.8245, 13.18, 2.8508, 5.407, -0.1579, 0.044, 0.1438, 0.0585}, // <j2>
481 {0.6738, 16.553, -0.2297, 6.505, 0.8513, 2.553, -0.0003, 0.0623}, // <j4>
482 {-0.0128, 9.569, -0.3611, 4.304, 0.3419, 1.541, 0.0032, 0.052}}; // <j6>
483constexpr double j_Pu3[4][8] = {{0.384, 16.679, 3.1049, 5.421, -2.5148, 4.551, 0.0263, 0.128}, // <j0>
484 {2.0885, 12.871, 2.5961, 5.19, -0.1465, 0.039, 0.1343, 0.0866}, // <j2>
485 {-0.7014, 16.369, -0.1162, 6.697, 0.7778, 2.45, 0, 0.0546}, // <j4>
486 {-0.0364, 9.572, -0.3181, 4.342, 0.321, 1.523, 0.0041, 0.0496}}; // <j6>
487constexpr double j_Pu4[4][8] = {{0.4934, 16.836, 1.6394, 5.638, -1.1581, 4.14, 0.0248, 0.1242}, // <j0>
488 {2.7244, 12.926, 2.3387, 5.163, -0.13, 0.046, 0.1177, 0.049}, // <j2>
489 {-0.916, 12.203, 0.4891, 5.127, 0.529, 2.149, -0.0022, 0.052}, // <j4>
490 {-0.2394, 7.837, -0.0785, 4.024, 0.2643, 1.378, 0.0012, 0.0414}}; // <j6>
491constexpr double j_Pu5[4][8] = {{0.3888, 16.559, 2.0362, 5.657, -1.4515, 4.255, 0.0267, 0.1287}, // <j0>
492 {2.1409, 12.832, 2.5664, 5.152, -0.1338, 0.046, 0.121, 0.0491}, // <j2>
493 {-0.7035, 16.36, -0.0979, 6.706, 0.7726, 2.447, 0, 0.061}, // <j4>
494 {-0.109, 7.819, -0.2243, 4.1, 0.2947, 1.404, 0.0015, 0.0477}}; // <j6>
495constexpr double j_Pu6[4][8] = {{0.3172, 16.051, 3.4654, 5.351, -2.8102, 4.513, 0.0281, 0.1382}, // <j0>
496 {1.7262, 12.324, 2.6652, 5.066, -0.1695, 0.041, 0.155, 0.0502}, // <j2>
497 {-0.556, 16.322, -0.3046, 6.768, 0.8146, 2.426, 0.0001, 0.0596}, // <j4>
498 {-0.0001, 7.82, -0.3354, 4.144, 0.3097, 1.403, 0.002, 0.0513}}; // <j6>
499constexpr double j_Am2[4][8] = {{0.4743, 21.776, 1.58, 5.69, -1.0779, 4.145, 0.0218, 0.1253}, // <j0>
500 {3.5237, 15.955, 2.2855, 5.195, -0.0142, 0.585, 0.0033, 0.112}, // <j2>
501 {-0.7433, 16.416, 0.3481, 6.788, 0.6014, 2.346, 0, 0.0566}, // <j4>
502 {-0.3176, 7.864, 0.0771, 4.161, 0.2194, 1.339, 0.0018, 0.0374}}; // <j6>
503constexpr double j_Am3[4][8] = {{0.4239, 19.574, 1.4573, 5.872, -0.9052, 3.968, 0.0238, 0.1054}, // <j0>
504 {2.8622, 14.733, 2.4099, 5.144, -0.1326, 0.031, 0.1233, 0.0727}, // <j2>
505 {0.8092, 12.854, 0.4161, 5.459, 0.5476, 2.172, -0.0011, 0.053}, // <j4>
506 {-0.3159, 6.982, 0.0682, 3.995, 0.2141, 1.188, -0.0015, 0.0281}}; // <j6>
507constexpr double j_Am4[4][8] = {{0.3737, 17.862, 1.3521, 6.043, -0.7514, 3.72, 0.0258, 0.1113}, // <j0>
508 {2.4141, 12.948, 2.3687, 4.945, -0.249, 0.022, 0.2371, 0.0502}, // <j2>
509 {-0.8548, 12.226, 0.3037, 5.909, 0.6173, 2.188, -0.0016, 0.0456}, // <j4>
510 {-0.1787, 7.88, -0.1274, 4.09, 0.2565, 1.315, 0.0017, 0.0419}}; // <j6>
511constexpr double j_Am5[4][8] = {{0.2956, 17.372, 1.4525, 6.073, -0.7755, 3.662, 0.0277, 0.1202}, // <j0>
512 {2.0109, 12.053, 2.4155, 4.836, -0.2264, 0.027, 0.2128, 0.0414}, // <j2>
513 {-0.6538, 15.462, -0.0948, 5.997, 0.7295, 2.297, 0, 0.0594}, // <j4>
514 {-0.0927, 6.073, -0.2227, 3.784, 0.2916, 1.372, 0.0026, 0.0485}}; // <j6>
515constexpr double j_Am6[4][8] = {{0.2302, 16.953, 1.4864, 6.116, -0.7457, 3.543, 0.0294, 0.1323}, // <j0>
516 {1.6778, 11.337, 2.4531, 4.725, -0.2043, 0.034, 0.1892, 0.0387}, // <j2>
517 {-0.539, 15.449, -0.2689, 6.017, 0.7711, 2.297, 0.0002, 0.0729}, // <j4>
518 {0.0152, 6.079, -0.3549, 3.861, 0.3125, 1.403, 0.0036, 0.0732}}; // <j6>
519constexpr double j_Am7[4][8] = {{0.3601, 12.73, 1.964, 5.12, -1.356, 3.714, 0.0316, 0.1232}, // <j0>
520 {1.8845, 9.161, 2.0746, 4.042, -0.1318, 1.723, 0.002, 0.0379}, // <j2>
521 {-0.4688, 12.019, -0.2692, 7.042, 0.7297, 2.164, -0.0011, 0.0262}, // <j4>
522 {0.1292, 6.082, -0.4689, 3.879, 0.3234, 1.393, 0.0042, 0.0475}}; // <j6>
529constexpr double j_Hf2[3][9] = {{0.4229, 50.465, 0.7333, 23.865, -0.3798, 4.051, 0.2252, 2.497, -0.0018},
530 {9.667, 33.435, 5.2429, 13.529, -0.5533, 1.402, 0.4934, 1.254, -0.0033},
531 {-2.5342, 43.826, 1.8466, 10.393, 0.7761, 4.888, -0.0327, 1.589, 0.0017}};
532constexpr double j_Hf3[3][9] = {{0.3555, 40.954, 0.8483, 21.726, -0.4116, 4.305, 0.2101, 2.349, -0.0023},
533 {7.5646, 27.367, 5.0743, 12.402, -0.4133, 1.742, 0.3163, 1.437, -0.0012},
534 {-2.3574, 32.651, 1.8717, 8.476, 0.6367, 3.953, -0.1133, 2.169, 0.0017}};
535constexpr double j_Ta2[3][9] = {{0.3976, 45.095, 0.7746, 21.028, -0.6098, 3.471, 0.4395, 2.57, -0.002},
536 {8.1746, 29.871, 4.9405, 12.188, -1.1294, 1.254, 1.0658, 1.181, -0.0046},
537 {-2.1974, 38.294, 1.622, 8.838, 0.6836, 4.212, -0.0539, 1.746, 0.0016}};
538constexpr double j_Ta3[3][9] = {{0.3611, 36.921, 0.8579, 19.195, -0.4945, 3.857, 0.2781, 2.303, -0.0026},
539 {6.5998, 25.026, 4.7913, 11.303, -0.7801, 1.529, 0.682, 1.382, -0.0019},
540 {-2.0884, 29.531, 1.7145, 7.385, 1.1809, 2.994, -0.7705, 2.577, 0.0016}};
541constexpr double j_Ta4[3][9] = {{0.3065, 31.817, 0.9611, 17.749, -0.5463, 3.979, 0.2816, 2.232, -0.003},
542 {5.5048, 21.62, 4.6734, 10.556, -0.2181, 2.1, 0.081, 1.049, -0.0016},
543 {-2.0226, 24.035, 1.7084, 6.594, 1.1799, 2.775, -0.8384, 2.43, 0.002}};
544constexpr double j_W0[3][9] = { // configuration 6s2 5d4
545 {0.3653, 53.965, 0.7926, 20.078, -0.8142, 3.03, 0.6581, 2.476, -0.0023},
546 {5.4017, 47.11, 6.9113, 18.76, 7.0586, 6.363, -5.4525, 5.802, 0.004},
547 {-1.8575, 47.554, 1.3868, 8.437, 0.6537, 3.939, -0.057, 1.722, 0.0015}};
548constexpr double j_W1[3][9] = { // configuration 6s1 5d4
549 {0.3834, 46.233, 0.789, 19.278, -1.465, 2.947, 1.2945, 2.628, -0.0022},
550 {4.5118, 41.281, 6.7136, 17.964, 7.6331, 6.269, -6.0365, 5.758, 0.0042},
551 {-1.9122, 39.952, 1.4385, 8.019, 0.6336, 3.725, -0.0819, 1.868, 0.0015}};
552constexpr double j_W2[3][9] = {{0.3876, 40.34, 0.8008, 18.621, -1.3911, 2.995, 1.2048, 2.627, -0.0023},
553 {7.0301, 26.99, 4.6604, 11.083, -0.822, 1.145, 0.7581, 1.042, -0.0068},
554 {-1.9355, 33.935, 1.502, 7.541, 0.6453, 3.375, -0.1601, 2.11, 0.0015}};
555constexpr double j_W3[3][9] = {{0.361, 33.519, 0.8717, 17.176, -0.6183, 3.445, 0.3883, 2.276, -0.0028},
556 {5.8036, 22.969, 4.5243, 10.361, -0.7897, 1.388, 0.6927, 1.248, -0.0031},
557 {-1.8752, 26.706, 1.544, 6.585, 5.9785, 2.575, -5.6111, 2.516, 0.0018}};
558constexpr double j_W4[3][9] = {{0.3221, 29.047, 0.9574, 15.979, -0.6287, 3.597, 0.3525, 2.174, -0.0033},
559 {4.9006, 20.117, 4.436, 9.765, -2.0009, 1.497, 1.8714, 1.431, -0.0014},
560 {-1.8309, 22.142, 1.5605, 5.935, 1.4898, 2.482, -1.193, 2.266, 0.0022}};
561constexpr double j_W5[3][9] = {{0.2725, 25.966, 1.0558, 14.954, -0.699, 3.643, 0.3745, 2.145, -0.0037},
562 {4.1973, 17.967, 4.3791, 9.255, -1.883, 1.603, 1.7205, 1.518, -0.0004},
563 {-1.7958, 18.987, 1.5913, 5.419, 2.0498, 2.278, -1.8262, 2.156, 0.0026}};
564constexpr double j_Re0[3][9] = { // configuration 6s2 5d5
565 {0.3548, 47.108, 0.821, 17.769, -9.8674, 2.599, 9.6938, 2.556, -0.0027},
566 {4.4322, 41.798, 6.2063, 16.844, 9.8763, 5.751, -8.3294, 5.406, 0.0043},
567 {-1.6402, 40.319, 1.3192, 7.064, 0.8659, 2.901, -0.4299, 2.306, 0.0013}};
568constexpr double j_Re1[3][9] = { // configuration 6s1 5d5
569 {0.3736, 41.151, 0.816, 17.158, -7.0396, 2.642, 6.8523, 2.577, -0.0026},
570 {3.7875, 37.254, 6.0587, 16.264, 6.9896, 5.786, -5.4457, 5.279, 0.0045},
571 {-1.6968, 34.939, 1.3535, 6.851, 1.7292, 2.681, -1.3118, 2.445, 0.0014}};
572constexpr double j_Re2[3][9] = {{0.3825, 36.336, 0.8218, 16.636, -8.722, 2.657, 8.5201, 2.601, -0.0026},
573 {3.0708, 33.896, 5.9941, 15.817, 6.7816, 5.768, -5.2056, 5.231, 0.0047},
574 {-1.7305, 30.305, 1.3808, 6.606, 1.5787, 2.63, -1.1785, 2.378, 0.0015}};
575constexpr double j_Re3[3][9] = {{0.3585, 30.671, 0.8863, 15.527, -0.8682, 3.047, 0.6263, 2.28, -0.003},
576 {1.787, 31.248, 5.9068, 15.16, -17.4262, 5.551, 15.6856, 5.339, -0.0053},
577 {-1.6969, 24.325, 1.4088, 5.901, 1.5067, 2.424, -1.1834, 2.209, 0.0019}};
578constexpr double j_Re4[3][9] = {{0.2974, 27.372, 0.9826, 14.807, -1.8869, 2.84, 1.61, 2.476, -0.0031},
579 {4.4033, 18.733, 4.1971, 9.047, -2.3106, 1.352, 2.1866, 1.299, -0.0025},
580 {-1.6679, 20.454, 1.4439, 5.357, 0.8175, 2.321, -0.5685, 1.976, 0.0024}};
581constexpr double j_Re5[3][9] = {{0.3143, 23.522, 1.0276, 13.505, -0.7438, 3.393, 0.4059, 2.03, -0.0041},
582 {3.8162, 16.843, 4.14, 8.605, -4.0882, 1.443, 3.9333, 1.408, -0.0012},
583 {-1.6427, 17.722, 1.488, 4.916, 0.5419, 2.189, -0.3694, 1.781, 0.0029}};
584constexpr double j_Re6[3][9] = {{0.2146, 22.496, 1.1616, 13.064, -1.0455, 3.162, 0.6734, 2.196, -0.0041},
585 {3.3349, 15.341, 4.1015, 8.213, -2.3511, 1.531, 2.1651, 1.459, -0.0003},
586 {-1.6211, 15.673, 1.5419, 4.548, 1.9205, 1.833, -1.8287, 1.766, 0.0034}};
587constexpr double j_Os0[3][9] = { // configuration 6s2 5d6
588 {0.3467, 41.778, 0.8458, 15.918, -5.637, 2.459, 5.4472, 2.381, -0.0032},
589 {3.7421, 37.491, 5.6137, 15.256, 10.0488, 5.293, -8.5683, 4.991, 0.0046},
590 {-1.4734, 34.814, 1.2105, 6.165, 0.9468, 2.534, -0.5773, 2.131, 0.0015}};
591constexpr double j_Os1[3][9] = { // configuration 6s1 5d6
592 {0.3666, 36.997, 0.839, 15.425, -2.6944, 2.537, 2.4916, 2.36, -0.0031},
593 {3.2611, 33.818, 5.4945, 14.808, 5.761, 5.391, -4.2811, 4.827, 0.0048},
594 {-1.5274, 30.891, 1.2364, 6.044, 1.41, 2.431, -1.048, 2.188, 0.0016}};
595constexpr double j_Os2[3][9] = {{0.3786, 33.005, 0.8412, 14.99, -7.0632, 2.503, 6.8462, 2.433, -0.003},
596 {2.7289, 30.9, 5.4357, 14.396, 18.6546, 5.151, -17.1708, 4.993, 0.005},
597 {-1.5637, 27.292, 1.2627, 5.88, 1.3526, 2.393, -1.0026, 2.146, 0.0017}};
598constexpr double j_Os3[3][9] = {{0.3557, 28.222, 0.9002, 14.14, -2.5972, 2.601, 2.3444, 2.376, -0.0032},
599 {4.5913, 19.692, 4.0615, 8.862, -0.995, 1.086, 0.9081, 0.986, -0.0077},
600 {-1.5453, 22.3, 1.3058, 5.301, 0.7208, 2.294, -0.448, 1.881, 0.0022}};
601constexpr double j_Os4[3][9] = {{0.3337, 24.723, 0.9655, 13.288, -0.9653, 2.906, 0.6698, 2.117, -0.0037},
602 {3.9724, 17.514, 3.9817, 8.421, -0.7719, 1.264, 0.6552, 1.107, -0.0042},
603 {-1.5267, 18.972, 1.3619, 4.834, 3.0121, 1.938, -2.824, 1.877, 0.0027}};
604constexpr double j_Os5[3][9] = {{0.3055, 22.152, 1.0395, 12.529, -0.9158, 3.016, 0.575, 2.032, -0.0042},
605 {3.4764, 15.826, 3.9241, 8.032, -0.6854, 1.397, 0.5394, 1.184, -0.0024},
606 {-1.5094, 16.573, 1.4158, 4.458, 0.8448, 1.797, -0.7349, 1.638, 0.0033}};
607constexpr double j_Os6[3][9] = {{0.2714, 20.218, 1.1211, 11.851, -0.9773, 3.05, 0.5894, 2.005, -0.0046},
608 {3.0642, 14.479, 3.8847, 7.686, -4.7235, 1.384, 4.5485, 1.352, -0.0012},
609 {-1.4938, 14.751, 1.4678, 4.149, 0.8091, 1.535, -0.772, 1.442, 0.0041}};
610constexpr double j_Os7[3][9] = {{0.2101, 19.108, 1.224, 11.347, -1.2543, 2.933, 0.825, 2.088, -0.0048},
611 {2.7164, 13.366, 3.8554, 7.37, -5.0211, 1.439, 4.8166, 1.405, -0.0004},
612 {-0.0341, 37.994, -1.468, 13.159, 1.5216, 3.898, -0.0308, 0.55, 0.0083}};
613constexpr double j_Ir0[3][9] = { // configuration 6s2 5d7
614 {0.34, 37.499, 0.8675, 14.402, -2.3703, 2.37, 2.1661, 2.177, -0.0037},
615 {3.2263, 33.922, 5.1086, 13.921, 6.5993, 4.978, -5.1841, 4.549, 0.0048},
616 {-1.3382, 30.628, 1.1376, 5.42, 1.4261, 2.16, -1.1282, 1.974, 0.0019}};
617constexpr double j_Ir1[3][9] = { // configuration 6s1 5d7
618 {0.3604, 33.57, 0.8597, 13.993, -2.1686, 2.412, 1.9518, 2.188, -0.0036},
619 {2.8732, 30.809, 5.0094, 13.522, 6.8656, 4.933, -5.4669, 4.526, 0.005},
620 {-1.3875, 27.66, 1.1508, 5.362, 0.6586, 2.302, -0.3554, 1.81, 0.002}};
621constexpr double j_Ir2[3][9] = {{0.3802, 30.032, 0.855, 13.567, -1.6185, 2.488, 1.3866, 2.162, -0.0035},
622 {2.4419, 28.356, 4.947, 13.222, 4.7478, 5.029, -3.3259, 4.393, 0.0052},
623 {-1.4233, 24.796, 1.1799, 5.246, 3.2548, 2.072, -2.9649, 1.997, 0.002}};
624constexpr double j_Ir3[3][9] = {{0.3678, 25.828, 0.9065, 12.788, -0.8587, 2.745, 0.5883, 1.96, -0.004},
625 {1.5883, 25.969, 4.8472, 12.711, 5.6507, 4.949, -4.119, 4.388, 0.0056},
626 {-1.4149, 20.563, 1.2388, 4.761, 1.178, 1.928, -0.9708, 1.761, 0.0026}};
627constexpr double j_Ir4[3][9] = {{0.3969, 22.05, 0.931, 11.768, -0.709, 3.017, 0.3857, 1.778, -0.0047},
628 {3.5964, 16.439, 3.7872, 7.873, -1.2303, 1.092, 1.1232, 1.003, -0.0068},
629 {-1.4039, 17.664, 1.2993, 4.371, 3.5599, 1.661, -3.434, 1.625, 0.0033}};
630constexpr double j_Ir5[3][9] = {{0.3059, 20.759, 1.0432, 11.622, -1.3457, 2.655, 1.0008, 2.066, -0.0043},
631 {3.171, 14.923, 3.732, 7.529, -1.54, 1.2, 1.4048, 1.119, -0.004},
632 {-1.3927, 15.539, 1.3536, 4.057, 0.2946, 1.554, -0.2412, 1.266, 0.0043}};
633constexpr double j_Ir6[3][9] = {{0.2854, 18.867, 1.1123, 10.982, -1.1403, 2.782, 0.7475, 1.959, -0.0049},
634 {2.8163, 13.697, 3.6906, 7.219, -5.2957, 1.254, 5.1328, 1.228, -0.0024},
635 {-0.0364, 41.929, -1.3662, 13.771, 1.413, 3.784, -0.0384, 0.19, 0.0241}};
636constexpr double j_Pt1[3][9] = {{0.3664, 33.503, 0.8449, 13.303, -2.6192, 2.227, 2.4116, 2.059, -0.0041},
637 {3.0783, 30.198, 4.7065, 12.857, 5.727, 4.65, -4.4425, 4.222, 0.0048},
638 {-1.2955, 28.407, 1.0534, 5.206, 1.2452, 2.096, -0.9336, 1.881, 0.0018}};
639constexpr double j_Pt2[3][9] = {{0.3701, 27.799, 0.8761, 12.48, -3.2959, 2.258, 3.0535, 2.106, -0.004},
640 {2.2407, 26.003, 4.53, 12.118, 6.7189, 4.557, -5.3954, 4.187, 0.0053},
641 {-1.3038, 22.692, 1.1238, 4.691, 3.2444, 1.814, -3.0209, 1.757, 0.0025}};
642constexpr double j_Pt3[3][9] = {{0.3606, 24.052, 0.9205, 11.833, -4.0612, 2.271, 3.7841, 2.133, -0.0041},
643 {1.5391, 23.689, 4.4263, 11.645, 8.5673, 4.482, -7.1591, 4.181, 0.0057},
644 {-1.3019, 19.052, 1.1904, 4.286, 3.3886, 1.592, -3.2484, 1.554, 0.0034}};
645constexpr double j_Pt4[3][9] = {{0.3429, 21.358, 0.9753, 11.261, -2.2859, 2.357, 1.9719, 2.074, -0.0043},
646 {0.9477, 22.775, 4.3337, 11.319, 7.2374, 4.5, -5.7086, 4.106, 0.0062},
647 {-1.2964, 16.503, 1.2497, 3.964, 1.7648, 1.35, -1.6992, 1.305, 0.0046}};
648constexpr double j_Pt5[3][9] = {{0.3649, 18.762, 1.0102, 10.456, -0.8785, 2.765, 0.5087, 1.737, -0.0053},
649 {0.5132, 23.124, 4.1835, 11.009, 7.4312, 4.478, -5.7759, 4.065, 0.0066},
650 {-1.2902, 14.6, 1.2945, 3.709, 0.519, 1.033, -0.5122, 0.963, 0.0067}};
651constexpr double j_Pt6[3][9] = {{0.2877, 17.78, 1.1111, 10.263, -1.9416, 2.432, 1.5477, 2.015, -0.0049},
652 {2.5907, 12.991, 3.5155, 6.801, -0.7511, 1.206, 0.6014, 1.022, -0.0043},
653 {-0.0482, 33.01, -1.2661, 12.839, 1.3254, 3.545, -0.0455, 0.144, 0.0315}};
654constexpr double j_Au1[3][9] = {{0.3475, 28.294, 0.8964, 11.794, -4.5383, 2.086, 4.2988, 1.983, -0.0047},
655 {2.3189, 25.954, 4.2267, 11.444, 9.0997, 4.215, -7.8523, 3.981, 0.0052},
656 {-1.1686, 22.808, 1.0729, 4.243, 0.9462, 1.573, -0.7943, 1.428, 0.0036}};
657constexpr double j_Au2[3][9] = {{0.3664, 25.714, 0.8919, 11.488, -1.7302, 2.207, 1.4763, 1.908, -0.0046},
658 {2.0676, 23.96, 4.1678, 11.164, 13.3827, 4.151, -12.1447, 3.996, 0.0054},
659 {-1.2005, 20.888, 1.0879, 4.203, 0.8896, 1.584, -0.7371, 1.428, 0.0036}};
660constexpr double j_Au3[3][9] = {{0.3639, 22.33, 0.9313, 10.883, -1.1359, 2.355, 0.8455, 1.809, -0.0048},
661 {1.4776, 21.784, 4.0585, 10.746, 5.9059, 4.242, -4.5905, 3.842, 0.0058},
662 {-1.2033, 17.722, 1.1507, 3.874, 0.2426, 1.455, -0.1649, 1.049, 0.0053}};
663constexpr double j_Au4[3][9] = {{0.3472, 19.944, 0.9807, 10.424, -3.8228, 2.169, 3.4995, 2.009, -0.0047},
664 {2.9775, 14.632, 3.4472, 6.956, -1.9784, 0.794, 1.898, 0.745, -0.0182},
665 {-1.2021, 15.459, 1.2003, 3.615, 0.6189, 0.952, -0.6028, 0.886, 0.0081}};
666constexpr double j_Au5[3][9] = {{0.3292, 18.073, 1.0376, 9.957, -2.2028, 2.257, 1.841, 1.938, -0.005},
667 {0.5763, 20.517, 3.8572, 10.171, 6.0222, 4.213, -4.502, 3.76, 0.0067},
668 {-1.2007, 13.734, 1.2262, 3.424, 0.5164, 0.401, -0.5461, 0.379, 0.0216}};
669} // namespace
670
672using IonIndex = std::unordered_map<std::string, MagneticIon>;
673
675void createIonLookup(IonIndex &ion_map);
676
678const IonIndex &ionMap() {
679 static IonIndex ionMap;
680 if (ionMap.empty()) {
682 }
683 return ionMap;
684}
685
690void createIonLookup(IonIndex &ion_map) {
691 static const MagneticIon Sc0("Sc", static_cast<uint16_t>(0), j_Sc0[0], j_Sc0[1], j_Sc0[2], j_Sc0[3], 2.);
692 ion_map["Sc0"] = Sc0;
693 static const MagneticIon Sc1("Sc", static_cast<uint16_t>(1), j_Sc1[0], j_Sc1[1], j_Sc1[2], j_Sc1[3], 2.);
694 ion_map["Sc1"] = Sc1;
695 static const MagneticIon Sc2("Sc", static_cast<uint16_t>(2), j_Sc2[0], j_Sc2[1], j_Sc2[2], j_Sc2[3], 2.);
696 ion_map["Sc2"] = Sc2;
697 static const MagneticIon Ti0("Ti", static_cast<uint16_t>(0), j_Ti0[0], j_Ti0[1], j_Ti0[2], j_Ti0[3], 2.);
698 ion_map["Ti0"] = Ti0;
699 static const MagneticIon Ti1("Ti", static_cast<uint16_t>(1), j_Ti1[0], j_Ti1[1], j_Ti1[2], j_Ti1[3], 2.);
700 ion_map["Ti1"] = Ti1;
701 static const MagneticIon Ti2("Ti", static_cast<uint16_t>(2), j_Ti2[0], j_Ti2[1], j_Ti2[2], j_Ti2[3], 2.);
702 ion_map["Ti2"] = Ti2;
703 static const MagneticIon Ti3("Ti", static_cast<uint16_t>(3), j_Ti3[0], j_Ti3[1], j_Ti3[2], j_Ti3[3], 2.);
704 ion_map["Ti3"] = Ti3;
705 static const MagneticIon V0("V", static_cast<uint16_t>(0), j_V0[0], j_V0[1], j_V0[2], j_V0[3], 2.);
706 ion_map["V0"] = V0;
707 static const MagneticIon V1("V", static_cast<uint16_t>(1), j_V1[0], j_V1[1], j_V1[2], j_V1[3], 2.);
708 ion_map["V1"] = V1;
709 static const MagneticIon V2("V", static_cast<uint16_t>(2), j_V2[0], j_V2[1], j_V2[2], j_V2[3], 2.);
710 ion_map["V2"] = V2;
711 static const MagneticIon V3("V", static_cast<uint16_t>(3), j_V3[0], j_V3[1], j_V3[2], j_V3[3], 2.);
712 ion_map["V3"] = V3;
713 static const MagneticIon V4("V", static_cast<uint16_t>(4), j_V4[0], j_V4[1], j_V4[2], j_V4[3], 2.);
714 ion_map["V4"] = V4;
715 static const MagneticIon Cr0("Cr", static_cast<uint16_t>(0), j_Cr0[0], j_Cr0[1], j_Cr0[2], j_Cr0[3], 2.);
716 ion_map["Cr0"] = Cr0;
717 static const MagneticIon Cr1("Cr", static_cast<uint16_t>(1), j_Cr1[0], j_Cr1[1], j_Cr1[2], j_Cr1[3], 2.);
718 ion_map["Cr1"] = Cr1;
719 static const MagneticIon Cr2("Cr", static_cast<uint16_t>(2), j_Cr2[0], j_Cr2[1], j_Cr2[2], j_Cr2[3], 2.);
720 ion_map["Cr2"] = Cr2;
721 static const MagneticIon Cr3("Cr", static_cast<uint16_t>(3), j_Cr3[0], j_Cr3[1], j_Cr3[2], j_Cr3[3], 2.);
722 ion_map["Cr3"] = Cr3;
723 static const MagneticIon Cr4("Cr", static_cast<uint16_t>(4), j_Cr4[0], j_Cr4[1], j_Cr4[2], j_Cr4[3], 2.);
724 ion_map["Cr4"] = Cr4;
725 static const MagneticIon Mn0("Mn", static_cast<uint16_t>(0), j_Mn0[0], j_Mn0[1], j_Mn0[2], j_Mn0[3], 2.);
726 ion_map["Mn0"] = Mn0;
727 static const MagneticIon Mn1("Mn", static_cast<uint16_t>(1), j_Mn1[0], j_Mn1[1], j_Mn1[2], j_Mn1[3], 2.);
728 ion_map["Mn1"] = Mn1;
729 static const MagneticIon Mn2("Mn", static_cast<uint16_t>(2), j_Mn2[0], j_Mn2[1], j_Mn2[2], j_Mn2[3], 2.);
730 ion_map["Mn2"] = Mn2;
731 static const MagneticIon Mn3("Mn", static_cast<uint16_t>(3), j_Mn3[0], j_Mn3[1], j_Mn3[2], j_Mn3[3], 2.);
732 ion_map["Mn3"] = Mn3;
733 static const MagneticIon Mn4("Mn", static_cast<uint16_t>(4), j_Mn4[0], j_Mn4[1], j_Mn4[2], j_Mn4[3], 2.);
734 ion_map["Mn4"] = Mn4;
735 static const MagneticIon Fe0("Fe", static_cast<uint16_t>(0), j_Fe0[0], j_Fe0[1], j_Fe0[2], j_Fe0[3], 2.);
736 ion_map["Fe0"] = Fe0;
737 static const MagneticIon Fe1("Fe", static_cast<uint16_t>(1), j_Fe1[0], j_Fe1[1], j_Fe1[2], j_Fe1[3], 2.);
738 ion_map["Fe1"] = Fe1;
739 static const MagneticIon Fe2("Fe", static_cast<uint16_t>(2), j_Fe2[0], j_Fe2[1], j_Fe2[2], j_Fe2[3], 2.);
740 ion_map["Fe2"] = Fe2;
741 static const MagneticIon Fe3("Fe", static_cast<uint16_t>(3), j_Fe3[0], j_Fe3[1], j_Fe3[2], j_Fe3[3], 2.);
742 ion_map["Fe3"] = Fe3;
743 static const MagneticIon Fe4("Fe", static_cast<uint16_t>(4), j_Fe4[0], j_Fe4[1], j_Fe4[2], j_Fe4[3], 2.);
744 ion_map["Fe4"] = Fe4;
745 static const MagneticIon Co0("Co", static_cast<uint16_t>(0), j_Co0[0], j_Co0[1], j_Co0[2], j_Co0[3], 2.);
746 ion_map["Co0"] = Co0;
747 static const MagneticIon Co1("Co", static_cast<uint16_t>(1), j_Co1[0], j_Co1[1], j_Co1[2], j_Co1[3], 2.);
748 ion_map["Co1"] = Co1;
749 static const MagneticIon Co2("Co", static_cast<uint16_t>(2), j_Co2[0], j_Co2[1], j_Co2[2], j_Co2[3], 2.);
750 ion_map["Co2"] = Co2;
751 static const MagneticIon Co3("Co", static_cast<uint16_t>(3), j_Co3[0], j_Co3[1], j_Co3[2], j_Co3[3], 2.);
752 ion_map["Co3"] = Co3;
753 static const MagneticIon Co4("Co", static_cast<uint16_t>(4), j_Co4[0], j_Co4[1], j_Co4[2], j_Co4[3], 2.);
754 ion_map["Co4"] = Co4;
755 static const MagneticIon Ni0("Ni", static_cast<uint16_t>(0), j_Ni0[0], j_Ni0[1], j_Ni0[2], j_Ni0[3], 2.);
756 ion_map["Ni0"] = Ni0;
757 static const MagneticIon Ni1("Ni", static_cast<uint16_t>(1), j_Ni1[0], j_Ni1[1], j_Ni1[2], j_Ni1[3], 2.);
758 ion_map["Ni1"] = Ni1;
759 static const MagneticIon Ni2("Ni", static_cast<uint16_t>(2), j_Ni2[0], j_Ni2[1], j_Ni2[2], j_Ni2[3], 2.);
760 ion_map["Ni2"] = Ni2;
761 static const MagneticIon Ni3("Ni", static_cast<uint16_t>(3), j_Ni3[0], j_Ni3[1], j_Ni3[2], j_Ni3[3], 2.);
762 ion_map["Ni3"] = Ni3;
763 static const MagneticIon Ni4("Ni", static_cast<uint16_t>(4), j_Ni4[0], j_Ni4[1], j_Ni4[2], j_Ni4[3], 2.);
764 ion_map["Ni4"] = Ni4;
765 static const MagneticIon Cu0("Cu", static_cast<uint16_t>(0), j_Cu0[0], j_Cu0[1], j_Cu0[2], j_Cu0[3], 2.);
766 ion_map["Cu0"] = Cu0;
767 static const MagneticIon Cu1("Cu", static_cast<uint16_t>(1), j_Cu1[0], j_Cu1[1], j_Cu1[2], j_Cu1[3], 2.);
768 ion_map["Cu1"] = Cu1;
769 static const MagneticIon Cu2("Cu", static_cast<uint16_t>(2), j_Cu2[0], j_Cu2[1], j_Cu2[2], j_Cu2[3], 2.);
770 ion_map["Cu2"] = Cu2;
771 static const MagneticIon Cu3("Cu", static_cast<uint16_t>(3), j_Cu3[0], j_Cu3[1], j_Cu3[2], j_Cu3[3], 2.);
772 ion_map["Cu3"] = Cu3;
773 static const MagneticIon Cu4("Cu", static_cast<uint16_t>(4), j_Cu4[0], j_Cu4[1], j_Cu4[2], j_Cu4[3], 2.);
774 ion_map["Cu4"] = Cu4;
775 static const MagneticIon Y0("Y", static_cast<uint16_t>(0), j_Y0[0], j_Y0[1], j_Y0[2], j_Y0[3], 2.);
776 ion_map["Y0"] = Y0;
777 static const MagneticIon Zr0("Zr", static_cast<uint16_t>(0), j_Zr0[0], j_Zr0[1], j_Zr0[2], j_Zr0[3], 2.);
778 ion_map["Zr0"] = Zr0;
779 static const MagneticIon Zr1("Zr", static_cast<uint16_t>(1), j_Zr1[0], j_Zr1[1], j_Zr1[2], j_Zr1[3], 2.);
780 ion_map["Zr1"] = Zr1;
781 static const MagneticIon Nb0("Nb", static_cast<uint16_t>(0), j_Nb0[0], j_Nb0[1], j_Nb0[2], j_Nb0[3], 2.);
782 ion_map["Nb0"] = Nb0;
783 static const MagneticIon Nb1("Nb", static_cast<uint16_t>(1), j_Nb1[0], j_Nb1[1], j_Nb1[2], j_Nb1[3], 2.);
784 ion_map["Nb1"] = Nb1;
785 static const MagneticIon Mo0("Mo", static_cast<uint16_t>(0), j_Mo0[0], j_Mo0[1], j_Mo0[2], j_Mo0[3], 2.);
786 ion_map["Mo0"] = Mo0;
787 static const MagneticIon Mo1("Mo", static_cast<uint16_t>(1), j_Mo1[0], j_Mo1[1], j_Mo1[2], j_Mo1[3], 2.);
788 ion_map["Mo1"] = Mo1;
789 static const MagneticIon Tc0("Tc", static_cast<uint16_t>(0), j_Tc0[0], j_Tc0[1], j_Tc0[2], j_Tc0[3], 2.);
790 ion_map["Tc0"] = Tc0;
791 static const MagneticIon Tc1("Tc", static_cast<uint16_t>(1), j_Tc1[0], j_Tc1[1], j_Tc1[2], j_Tc1[3], 2.);
792 ion_map["Tc1"] = Tc1;
793 static const MagneticIon Ru0("Ru", static_cast<uint16_t>(0), j_Ru0[0], j_Ru0[1], j_Ru0[2], j_Ru0[3], 2.);
794 ion_map["Ru0"] = Ru0;
795 static const MagneticIon Ru1("Ru", static_cast<uint16_t>(1), j_Ru1[0], j_Ru1[1], j_Ru1[2], j_Ru1[3], 2.);
796 ion_map["Ru1"] = Ru1;
797 static const MagneticIon Rh0("Rh", static_cast<uint16_t>(0), j_Rh0[0], j_Rh0[1], j_Rh0[2], j_Rh0[3], 2.);
798 ion_map["Rh0"] = Rh0;
799 static const MagneticIon Rh1("Rh", static_cast<uint16_t>(1), j_Rh1[0], j_Rh1[1], j_Rh1[2], j_Rh1[3], 2.);
800 ion_map["Rh1"] = Rh1;
801 static const MagneticIon Pd0("Pd", static_cast<uint16_t>(0), j_Pd0[0], j_Pd0[1], j_Pd0[2], j_Pd0[3], 2.);
802 ion_map["Pd0"] = Pd0;
803 static const MagneticIon Pd1("Pd", static_cast<uint16_t>(1), j_Pd1[0], j_Pd1[1], j_Pd1[2], j_Pd1[3], 2.);
804 ion_map["Pd1"] = Pd1;
805 static const MagneticIon Ce2("Ce", static_cast<uint16_t>(2), j_Ce2[0], j_Ce2[1], j_Ce2[2], j_Ce2[3], 0.8);
806 ion_map["Ce2"] = Ce2;
807 static const MagneticIon Ce3("Ce", static_cast<uint16_t>(2), j_Ce2[0], j_Ce2[1], j_Ce2[2], j_Ce2[3], 6. / 7);
808 ion_map["Ce3"] = Ce3;
809 static const MagneticIon Nd2("Nd", static_cast<uint16_t>(2), j_Nd2[0], j_Nd2[1], j_Nd2[2], j_Nd2[3], 0.6);
810 ion_map["Nd2"] = Nd2;
811 static const MagneticIon Nd3("Nd", static_cast<uint16_t>(3), j_Nd3[0], j_Nd3[1], j_Nd3[2], j_Nd3[3], 8. / 11);
812 ion_map["Nd3"] = Nd3;
813 static const MagneticIon Sm2("Sm", static_cast<uint16_t>(2), j_Sm2[0], j_Sm2[1], j_Sm2[2], j_Sm2[3], 0.);
814 ion_map["Sm2"] = Sm2;
815 static const MagneticIon Sm3("Sm", static_cast<uint16_t>(3), j_Sm3[0], j_Sm3[1], j_Sm3[2], j_Sm3[3], 2. / 7);
816 ion_map["Sm3"] = Sm3;
817 static const MagneticIon Eu2("Eu", static_cast<uint16_t>(2), j_Eu2[0], j_Eu2[1], j_Eu2[2], j_Eu2[3], 2.);
818 ion_map["Eu2"] = Eu2;
819 static const MagneticIon Eu3("Eu", static_cast<uint16_t>(3), j_Eu3[0], j_Eu3[1], j_Eu3[2], j_Eu3[3], 0.);
820 ion_map["Eu3"] = Eu3;
821 static const MagneticIon Gd2("Gd", static_cast<uint16_t>(2), j_Gd2[0], j_Gd2[1], j_Gd2[2], j_Gd2[3], 1.5);
822 ion_map["Gd2"] = Gd2;
823 static const MagneticIon Gd3("Gd", static_cast<uint16_t>(3), j_Gd3[0], j_Gd3[1], j_Gd3[2], j_Gd3[3], 2.);
824 ion_map["Gd3"] = Gd3;
825 static const MagneticIon Tb2("Tb", static_cast<uint16_t>(2), j_Tb2[0], j_Tb2[1], j_Tb2[2], j_Tb2[3], 4. / 3);
826 ion_map["Tb2"] = Tb2;
827 static const MagneticIon Tb3("Tb", static_cast<uint16_t>(3), j_Tb3[0], j_Tb3[1], j_Tb3[2], j_Tb3[3], 1.5);
828 ion_map["Tb3"] = Tb3;
829 static const MagneticIon Dy2("Dy", static_cast<uint16_t>(2), j_Dy2[0], j_Dy2[1], j_Dy2[2], j_Dy2[3], 1.25);
830 ion_map["Dy2"] = Dy2;
831 static const MagneticIon Dy3("Dy", static_cast<uint16_t>(3), j_Dy3[0], j_Dy3[1], j_Dy3[2], j_Dy3[3], 4. / 3);
832 ion_map["Dy3"] = Dy3;
833 static const MagneticIon Ho2("Ho", static_cast<uint16_t>(2), j_Ho2[0], j_Ho2[1], j_Ho2[2], j_Ho2[3], 1.2);
834 ion_map["Ho2"] = Ho2;
835 static const MagneticIon Ho3("Ho", static_cast<uint16_t>(3), j_Ho3[0], j_Ho3[1], j_Ho3[2], j_Ho3[3], 1.25);
836 ion_map["Ho3"] = Ho3;
837 static const MagneticIon Er2("Er", static_cast<uint16_t>(2), j_Er2[0], j_Er2[1], j_Er2[2], j_Er2[3], 7. / 6);
838 ion_map["Er2"] = Er2;
839 static const MagneticIon Er3("Er", static_cast<uint16_t>(3), j_Er3[0], j_Er3[1], j_Er3[2], j_Er3[3], 1.2);
840 ion_map["Er3"] = Er3;
841 static const MagneticIon Tm2("Tm", static_cast<uint16_t>(2), j_Tm2[0], j_Tm2[1], j_Tm2[2], j_Tm2[3], 8. / 7);
842 ion_map["Tm2"] = Tm2;
843 static const MagneticIon Tm3("Tm", static_cast<uint16_t>(3), j_Tm3[0], j_Tm3[1], j_Tm3[2], j_Tm3[3], 7. / 6);
844 ion_map["Tm3"] = Tm3;
845 static const MagneticIon Yb2("Yb", static_cast<uint16_t>(2), j_Yb2[0], j_Yb2[1], j_Yb2[2], j_Yb2[3], 2.);
846 ion_map["Yb2"] = Yb2;
847 static const MagneticIon Yb3("Yb", static_cast<uint16_t>(3), j_Yb3[0], j_Yb3[1], j_Yb3[2], j_Yb3[3], 8. / 7);
848 ion_map["Yb3"] = Yb3;
849 static const MagneticIon Pr3("Pr", static_cast<uint16_t>(3), j_Pr3[0], j_Pr3[1], j_Pr3[2], j_Pr3[3], 0.8);
850 ion_map["Pr3"] = Pr3;
851 static const MagneticIon U3("U", static_cast<uint16_t>(3), j_U3[0], j_U3[1], j_U3[2], j_U3[3], 8. / 11);
852 ion_map["U3"] = U3;
853 static const MagneticIon U4("U", static_cast<uint16_t>(4), j_U4[0], j_U4[1], j_U4[2], j_U4[3], 0.8);
854 ion_map["U4"] = U4;
855 static const MagneticIon U5("U", static_cast<uint16_t>(5), j_U5[0], j_U5[1], j_U5[2], j_U5[3], 6. / 7);
856 ion_map["U5"] = U5;
857 static const MagneticIon Np3("Np", static_cast<uint16_t>(3), j_Np3[0], j_Np3[1], j_Np3[2], j_Np3[3], 0.6);
858 ion_map["Np3"] = Np3;
859 static const MagneticIon Np4("Np", static_cast<uint16_t>(4), j_Np4[0], j_Np4[1], j_Np4[2], j_Np4[3], 8. / 11);
860 ion_map["Np4"] = Np4;
861 static const MagneticIon Np5("Np", static_cast<uint16_t>(5), j_Np5[0], j_Np5[1], j_Np5[2], j_Np5[3], 0.8);
862 ion_map["Np5"] = Np5;
863 static const MagneticIon Np6("Np", static_cast<uint16_t>(6), j_Np6[0], j_Np6[1], j_Np6[2], j_Np6[3], 6. / 7);
864 ion_map["Np6"] = Np6;
865 static const MagneticIon Pu3("Pu", static_cast<uint16_t>(3), j_Pu3[0], j_Pu3[1], j_Pu3[2], j_Pu3[3], 2. / 7);
866 ion_map["Pu3"] = Pu3;
867 static const MagneticIon Pu4("Pu", static_cast<uint16_t>(4), j_Pu4[0], j_Pu4[1], j_Pu4[2], j_Pu4[3], 0.6);
868 ion_map["Pu4"] = Pu4;
869 static const MagneticIon Pu5("Pu", static_cast<uint16_t>(5), j_Pu5[0], j_Pu5[1], j_Pu5[2], j_Pu5[3], 8. / 11);
870 ion_map["Pu5"] = Pu5;
871 static const MagneticIon Pu6("Pu", static_cast<uint16_t>(6), j_Pu6[0], j_Pu6[1], j_Pu6[2], j_Pu6[3], 0.8);
872 ion_map["Pu6"] = Pu6;
873 static const MagneticIon Am2("Am", static_cast<uint16_t>(2), j_Am2[0], j_Am2[1], j_Am2[2], j_Am2[3], 2.);
874 ion_map["Am2"] = Am2;
875 static const MagneticIon Am3("Am", static_cast<uint16_t>(3), j_Am3[0], j_Am3[1], j_Am3[2], j_Am3[3], 0.);
876 ion_map["Am3"] = Am3;
877 static const MagneticIon Am4("Am", static_cast<uint16_t>(4), j_Am4[0], j_Am4[1], j_Am4[2], j_Am4[3], 2. / 7);
878 ion_map["Am4"] = Am4;
879 static const MagneticIon Am5("Am", static_cast<uint16_t>(5), j_Am5[0], j_Am5[1], j_Am5[2], j_Am5[3], 0.6);
880 ion_map["Am5"] = Am5;
881 static const MagneticIon Am6("Am", static_cast<uint16_t>(6), j_Am6[0], j_Am6[1], j_Am6[2], j_Am6[3], 8. / 11);
882 ion_map["Am6"] = Am6;
883 static const MagneticIon Am7("Am", static_cast<uint16_t>(7), j_Am7[0], j_Am7[1], j_Am7[2], j_Am7[3], 0.8);
884 ion_map["Am7"] = Am7;
885 // 5d ions
886 static const MagneticIon Hf2("Hf", static_cast<uint16_t>(2), j_Hf2[0], j_Hf2[1], j_Hf2[2], 2.);
887 ion_map["Hf2"] = Hf2;
888 static const MagneticIon Hf3("Hf", static_cast<uint16_t>(3), j_Hf3[0], j_Hf3[1], j_Hf3[2], 2.);
889 ion_map["Hf3"] = Hf3;
890 static const MagneticIon Ta2("Ta", static_cast<uint16_t>(2), j_Ta2[0], j_Ta2[1], j_Ta2[2], 2.);
891 ion_map["Ta2"] = Ta2;
892 static const MagneticIon Ta3("Ta", static_cast<uint16_t>(3), j_Ta3[0], j_Ta3[1], j_Ta3[2], 2.);
893 ion_map["Ta3"] = Ta3;
894 static const MagneticIon Ta4("Ta", static_cast<uint16_t>(4), j_Ta4[0], j_Ta4[1], j_Ta4[2], 2.);
895 ion_map["Ta4"] = Ta4;
896 static const MagneticIon W0("W", static_cast<uint16_t>(0), j_W0[0], j_W0[1], j_W0[2], 2.);
897 ion_map["W0"] = W0;
898 static const MagneticIon W1("W", static_cast<uint16_t>(1), j_W1[0], j_W1[1], j_W1[2], 2.);
899 ion_map["W1"] = W1;
900 static const MagneticIon W2("W", static_cast<uint16_t>(2), j_W2[0], j_W2[1], j_W2[2], 2.);
901 ion_map["W2"] = W2;
902 static const MagneticIon W3("W", static_cast<uint16_t>(3), j_W3[0], j_W3[1], j_W3[2], 2.);
903 ion_map["W3"] = W3;
904 static const MagneticIon W4("W", static_cast<uint16_t>(4), j_W4[0], j_W4[1], j_W4[2], 2.);
905 ion_map["W4"] = W4;
906 static const MagneticIon W5("W", static_cast<uint16_t>(5), j_W5[0], j_W5[1], j_W5[2], 2.);
907 ion_map["W5"] = W5;
908 static const MagneticIon Re0("Re", static_cast<uint16_t>(0), j_Re0[0], j_Re0[1], j_Re0[2], 2.);
909 ion_map["Re0"] = Re0;
910 static const MagneticIon Re1("Re", static_cast<uint16_t>(1), j_Re1[0], j_Re1[1], j_Re1[2], 2.);
911 ion_map["Re1"] = Re1;
912 static const MagneticIon Re2("Re", static_cast<uint16_t>(2), j_Re2[0], j_Re2[1], j_Re2[2], 2.);
913 ion_map["Re2"] = Re2;
914 static const MagneticIon Re3("Re", static_cast<uint16_t>(3), j_Re3[0], j_Re3[1], j_Re3[2], 2.);
915 ion_map["Re3"] = Re3;
916 static const MagneticIon Re4("Re", static_cast<uint16_t>(4), j_Re4[0], j_Re4[1], j_Re4[2], 2.);
917 ion_map["Re4"] = Re4;
918 static const MagneticIon Re5("Re", static_cast<uint16_t>(5), j_Re5[0], j_Re5[1], j_Re5[2], 2.);
919 ion_map["Re5"] = Re5;
920 static const MagneticIon Re6("Re", static_cast<uint16_t>(6), j_Re6[0], j_Re6[1], j_Re6[2], 2.);
921 ion_map["Re6"] = Re6;
922 static const MagneticIon Os0("Os", static_cast<uint16_t>(0), j_Os0[0], j_Os0[1], j_Os0[2], 2.);
923 ion_map["Os0"] = Os0;
924 static const MagneticIon Os1("Os", static_cast<uint16_t>(1), j_Os1[0], j_Os1[1], j_Os1[2], 2.);
925 ion_map["Os1"] = Os1;
926 static const MagneticIon Os2("Os", static_cast<uint16_t>(2), j_Os2[0], j_Os2[1], j_Os2[2], 2.);
927 ion_map["Os2"] = Os2;
928 static const MagneticIon Os3("Os", static_cast<uint16_t>(3), j_Os3[0], j_Os3[1], j_Os3[2], 2.);
929 ion_map["Os3"] = Os3;
930 static const MagneticIon Os4("Os", static_cast<uint16_t>(4), j_Os4[0], j_Os4[1], j_Os4[2], 2.);
931 ion_map["Os4"] = Os4;
932 static const MagneticIon Os5("Os", static_cast<uint16_t>(5), j_Os5[0], j_Os5[1], j_Os5[2], 2.);
933 ion_map["Os5"] = Os5;
934 static const MagneticIon Os6("Os", static_cast<uint16_t>(6), j_Os6[0], j_Os6[1], j_Os6[2], 2.);
935 ion_map["Os6"] = Os6;
936 static const MagneticIon Os7("Os", static_cast<uint16_t>(7), j_Os7[0], j_Os7[1], j_Os7[2], 2.);
937 ion_map["Os7"] = Os7;
938 static const MagneticIon Ir0("Ir", static_cast<uint16_t>(0), j_Ir0[0], j_Ir0[1], j_Ir0[2], 2.);
939 ion_map["Ir0"] = Ir0;
940 static const MagneticIon Ir1("Ir", static_cast<uint16_t>(1), j_Ir1[0], j_Ir1[1], j_Ir1[2], 2.);
941 ion_map["Ir1"] = Ir1;
942 static const MagneticIon Ir2("Ir", static_cast<uint16_t>(2), j_Ir2[0], j_Ir2[1], j_Ir2[2], 2.);
943 ion_map["Ir2"] = Ir2;
944 static const MagneticIon Ir3("Ir", static_cast<uint16_t>(3), j_Ir3[0], j_Ir3[1], j_Ir3[2], 2.);
945 ion_map["Ir3"] = Ir3;
946 static const MagneticIon Ir4("Ir", static_cast<uint16_t>(4), j_Ir4[0], j_Ir4[1], j_Ir4[2], 2.);
947 ion_map["Ir4"] = Ir4;
948 static const MagneticIon Ir5("Ir", static_cast<uint16_t>(5), j_Ir5[0], j_Ir5[1], j_Ir5[2], 2.);
949 ion_map["Ir5"] = Ir5;
950 static const MagneticIon Ir6("Ir", static_cast<uint16_t>(6), j_Ir6[0], j_Ir6[1], j_Ir6[2], 2.);
951 ion_map["Ir6"] = Ir6;
952 static const MagneticIon Pt1("Pt", static_cast<uint16_t>(1), j_Pt1[0], j_Pt1[1], j_Pt1[2], 2.);
953 ion_map["Pt1"] = Pt1;
954 static const MagneticIon Pt2("Pt", static_cast<uint16_t>(2), j_Pt2[0], j_Pt2[1], j_Pt2[2], 2.);
955 ion_map["Pt2"] = Pt2;
956 static const MagneticIon Pt3("Pt", static_cast<uint16_t>(3), j_Pt3[0], j_Pt3[1], j_Pt3[2], 2.);
957 ion_map["Pt3"] = Pt3;
958 static const MagneticIon Pt4("Pt", static_cast<uint16_t>(4), j_Pt4[0], j_Pt4[1], j_Pt4[2], 2.);
959 ion_map["Pt4"] = Pt4;
960 static const MagneticIon Pt5("Pt", static_cast<uint16_t>(5), j_Pt5[0], j_Pt5[1], j_Pt5[2], 2.);
961 ion_map["Pt5"] = Pt5;
962 static const MagneticIon Pt6("Pt", static_cast<uint16_t>(6), j_Pt6[0], j_Pt6[1], j_Pt6[2], 2.);
963 ion_map["Pt6"] = Pt6;
964 static const MagneticIon Au1("Au", static_cast<uint16_t>(1), j_Au1[0], j_Au1[1], j_Au1[2], 2.);
965 ion_map["Au1"] = Au1;
966 static const MagneticIon Au2("Au", static_cast<uint16_t>(2), j_Au2[0], j_Au2[1], j_Au2[2], 2.);
967 ion_map["Au2"] = Au2;
968 static const MagneticIon Au3("Au", static_cast<uint16_t>(3), j_Au3[0], j_Au3[1], j_Au3[2], 2.);
969 ion_map["Au3"] = Au3;
970 static const MagneticIon Au4("Au", static_cast<uint16_t>(4), j_Au4[0], j_Au4[1], j_Au4[2], 2.);
971 ion_map["Au4"] = Au4;
972 static const MagneticIon Au5("Au", static_cast<uint16_t>(5), j_Au5[0], j_Au5[1], j_Au5[2], 2.);
973 ion_map["Au5"] = Au5;
974}
975
983const MagneticIon &getMagneticIon(const std::string &symbol) {
984 const IonIndex &ionIndex = ionMap();
985 auto cit = ionIndex.find(symbol);
986
987 if (cit == ionIndex.end()) {
988 // no such combination
989 std::stringstream msg;
990 msg << "Failed to find an atom using symbol=" << symbol;
991 throw std::runtime_error(msg.str());
992 } else {
993 return cit->second;
994 }
995}
996
1004const MagneticIon &getMagneticIon(const std::string &symbol, const uint16_t charge) {
1005 std::stringstream what;
1006 what << symbol << charge;
1007 return getMagneticIon(what.str());
1008}
1009
1018std::vector<double> getJL(const std::string &symbol, const uint16_t charge, const uint16_t l) {
1019 MagneticIon ion(getMagneticIon(symbol, charge));
1020 std::vector<double> v(8, 0.);
1021 switch (l) {
1022 case 0:
1023 v = ion.j0;
1024 break;
1025 case 2:
1026 v = ion.j2;
1027 break;
1028 case 4:
1029 v = ion.j4;
1030 break;
1031 case 6:
1032 v = ion.j6;
1033 break;
1034 default:
1035 // all other <jl> are not defined
1036 std::stringstream msg;
1037 msg << "Failed to find <j" << l << ">";
1038 throw std::runtime_error(msg.str());
1039 }
1040 return v;
1041}
1042
1048std::vector<std::string> getMagneticIonList() {
1049 const IonIndex &ionIndex = ionMap();
1050 std::vector<std::string> keys;
1051 keys.reserve(ionIndex.size());
1052 std::transform(ionIndex.cbegin(), ionIndex.cend(), std::back_inserter(keys), [](const auto kv) { return kv.first; });
1053 return keys;
1054}
1055
1056} // namespace Mantid::PhysicalConstants
#define fabs(x)
Definition: Matrix.cpp:22
A namespace containing physical constants that are required by algorithms and unit routines.
Definition: Atom.h:14
MANTID_KERNEL_DLL std::vector< std::string > getMagneticIonList()
Returns a list of all ions.
MANTID_KERNEL_DLL const MagneticIon & getMagneticIon(const std::string &symbol, const uint16_t charge)
Returns the magnetic ion for the given symbol and charge.
MANTID_KERNEL_DLL std::vector< double > getJL(const std::string &symbol, const uint16_t charge, const uint16_t l=0)
Returns the Lth-coefficients for the given ion.
std::unordered_map< std::string, MagneticIon > IonIndex
Typedef the map type.
void createIonLookup(IonIndex &ion_map)
Forward decalre intializer.
static constexpr double g
Standard acceleration due to gravity.
const IonIndex & ionMap()
Returns a reference to the static lookup map.
Struture to hold information about magnetic form factor for 3d, 4d, rare earth, and actinide atoms an...
Definition: MagneticIon.h:25
std::vector< double > j4
A vector containing A, a, B, b, C, c D, e for each <j4>
Definition: MagneticIon.h:53
double getJLofQsqr(const double qsqr, const uint16_t l) const
Returns the value of <jl(Q)> for a given Q^2.
Definition: MagneticIon.cpp:56
std::vector< double > j2
A vector containing A, a, B, b, C, c D, e for each <j2>
Definition: MagneticIon.h:51
std::vector< double > j6
A vector containing A, a, B, b, C, c D, e for each <j6>
Definition: MagneticIon.h:55
double analyticalFormFactor(const double qsqr) const
Returns the value of the form factor in the dipole approximation.
Definition: MagneticIon.cpp:90
std::vector< double > j0
A vector containing A, a, B, b, C, c D, e for each <j0>
Definition: MagneticIon.h:49
static double formFactorCutOff()
Returns the cutoff value for the given form factor approximation.