|
ampsci
High-precision calculations for one- and two-valence atomic systems
|
Auxillary Functions for hyperfine operatrs; F(r) [nuclear distribution] and similar. More...
Typedefs | |
| using | RadialFunction = std::function< double(double r, double r_Nuc)> |
| Type for radial function F(r,rN) (type alias to save typing) | |
Functions | |
| std::vector< double > | tk_radial (int k, double rN, const std::vector< double > &r, const RadialFunction &hfs_F) |
| RadialFunction | sphericalBall_F (int k) |
| Spherical ball model for F(r,rN) [default]. Uniformly distributed point k-poles. | |
| RadialFunction | sphericalShell_F () |
| Spherical shell F(r): 0 for r<rN, 1 for r>rN. | |
| RadialFunction | pointlike_F () |
| Pointlike F(r): 1. | |
| RadialFunction | VolotkaSP_F (double mu, double I_nuc, double l_pn, int gl, bool print=true) |
| Volotka single-particle nuclear model: F(r,rN) | |
| RadialFunction | uSP (double mu, double I_nuc, double l_pn, int gl, double n, double R, bool u_option, bool print=true) |
| Elizarov single-particle magnetisation model [extended Volotka]. | |
| RadialFunction | doublyOddSP_F (double mut, double It, double mu1, double I1, double l1, int gl1, double I2, double l2, bool print=true) |
| Volotka single-particle model for doubly-odd nuclei. | |
| double | convert_RME_to_HFSconstant_2J (int k, int tja, int tjb) |
| Converts reduced matrix element to A/B coeficients (takes k, 2J, 2J) | |
| double | convert_RME_to_HFSconstant (int k, int ka, int kb) |
| Converts reduced matrix element to A/B coeficients (takes k, kappa, kappa) | |
Auxillary Functions for hyperfine operatrs; F(r) [nuclear distribution] and similar.
See DiracOperator::hfs for operator
| using DiracOperator::Hyperfine::RadialFunction = typedef std::function<double(double r, double r_Nuc)> |
Type for radial function F(r,rN) (type alias to save typing)
| std::vector< double > DiracOperator::Hyperfine::tk_radial | ( | int | k, |
| double | rN, | ||
| const std::vector< double > & | r, | ||
| const RadialFunction & | hfs_F | ||
| ) |
Forms the hyperfine radial function: F(r,rN)/r^{k+1}
\[ t^k_{\rm radial}[r_i] = \frac{F(r_i,r_N)}{r_i^{k+1}} \]
| k | Multipole rank (1 = M1, 2 = E2, ...) |
| rN | Nuclear radius (a.u.); passed to F(r,r_N) |
| r | Radial grid (a.u.) |
| hfs_F | Finite nuclear magnetisation function F(r,r_N) |
| RadialFunction DiracOperator::Hyperfine::sphericalBall_F | ( | int | k | ) |
Spherical ball model for F(r,rN) [default]. Uniformly distributed point k-poles.
Based on a simple multipole expansion, assuming nucleus is made up from uniformly distributed point k-poles. Note: not everyone seems to define this the same way!
\[ F(r,r_N) = \begin{cases} (r/r_N)^{2k+1} & r<r_N \\ 1 & r>r_N \\ \end{cases} \]
| RadialFunction DiracOperator::Hyperfine::sphericalShell_F | ( | ) |
Spherical shell F(r): 0 for r<rN, 1 for r>rN.
| RadialFunction DiracOperator::Hyperfine::pointlike_F | ( | ) |
Pointlike F(r): 1.
| RadialFunction DiracOperator::Hyperfine::VolotkaSP_F | ( | double | mu, |
| double | I_nuc, | ||
| double | l_pn, | ||
| int | gl, | ||
| bool | print = true |
||
| ) |
Volotka single-particle nuclear model: F(r,rN)
Calculates the BohrWeisskopf magnetisation distribution using the ‘Volotka’ single-particle model of Phys. Rev. Lett. 125, 063002 (2020). Returns a RadialFunction F(r,r_N). F goes to 1 as r_N->0, and F=1 for r>rN. Assumes radial nuclear density is a step function.
| mu | Nuclear magnetic moment (in nuclear magnetons) |
| I_nuc | Nuclear spin |
| l_pn | Orbital angular momentum of valence nucleon |
| gl | Orbital g-factor (1 = proton, 0 = neutron) |
| Print model details |
| RadialFunction DiracOperator::Hyperfine::uSP | ( | double | mu, |
| double | I_nuc, | ||
| double | l_pn, | ||
| int | gl, | ||
| double | n, | ||
| double | R, | ||
| bool | u_option, | ||
| bool | print = true |
||
| ) |
Elizarov single-particle magnetisation model [extended Volotka].
Returns the radial magnetisation function F(r,r_N) for the model of Elizarov, A. A. et al., Opt. Spectrosc. 100, 361 (2006). Uses nuclear radial density u(r), with:
\[ u(r) = \begin{cases} u_0 (R-r)^n & \text{u1(r)} \\ u_0 r^n & \text{u2(r)} \end{cases} \]
n=0 should correspond to Volotka model.
| mu | Nuclear magnetic moment (in nuclear magnetons) |
| I_nuc | Nuclear spin |
| l_pn | Orbital angular momentum of valence nucleon |
| gl | Orbital g-factor (1 = proton, 0 = neutron) |
| n | Power in usually 0,1,2, but can be anything. 0 => Volotka |
| R | Nuclear radius |
| u_option | Selects returned radial form: true means u1(r) |
| Print model details |
| RadialFunction DiracOperator::Hyperfine::doublyOddSP_F | ( | double | mut, |
| double | It, | ||
| double | mu1, | ||
| double | I1, | ||
| double | l1, | ||
| int | gl1, | ||
| double | I2, | ||
| double | l2, | ||
| bool | print = true |
||
| ) |
Volotka single-particle model for doubly-odd nuclei.
From: Phys. Rev. Lett. 125, 063002 (2020).
Total magnetisation:
\[ g F(r) = 0.5 \left[ g_1 F_1(r) + g_2 F_2(r) + (g_1 F_1(r) - g_2 F_2(r)) K \right] \]
with
\[ K = \frac{[ I_1(I_1+1) - I_2(I_2+1) ]}{[ I(I+1) ]} \]
Returns F(r) (i.e., divided by total g).
g2 is obtained from g = 0.5 [ g1 + g2 + (g1 - g2) K ].
| mut | Total nuclear magnetic moment (in nuclear magnetons) |
| It | Total nuclear spin |
| mu1 | Magnetic moment of nucleon 1 |
| I1 | Spin of nucleon 1 |
| l1 | Orbital angular momentum of nucleon 1 |
| gl1 | Orbital g-factor of nucleon 1 (1 = proton, 0 = neutron) |
| I2 | Spin of nucleon 2 |
| l2 | Orbital angular momentum of nucleon 2 |
| Print model details |
| double DiracOperator::Hyperfine::convert_RME_to_HFSconstant_2J | ( | int | k, |
| int | tja, | ||
| int | tjb | ||
| ) |
Converts reduced matrix element to A/B coeficients (takes k, 2J, 2J)
| double DiracOperator::Hyperfine::convert_RME_to_HFSconstant | ( | int | k, |
| int | ka, | ||
| int | kb | ||
| ) |
Converts reduced matrix element to A/B coeficients (takes k, kappa, kappa)