IM-SRG++  0
Classes | Functions
imsrg_util Namespace Reference

imsrg_util namespace. Used to define some helpful functions. More...

Classes

struct  FBCIntegrandParameters
 

Functions

Operator OperatorFromString (ModelSpace &modelspace, string opname)
 
Operator NumberOp (ModelSpace &modelspace, int n, int l, int j2, int tz2)
 
Operator NumberOpAlln (ModelSpace &modelspace, int l, int j2, int tz2)
 
double HO_density (int n, int l, double hw, double r)
 
double HO_Radial_psi (int n, int l, double hw, double r)
 
vector< double > GetOccupationsHF (HartreeFock &hf)
 
vector< double > GetOccupations (HartreeFock &hf, IMSRGSolver &imsrgsolver)
 
vector< double > GetDensity (vector< double > &occupation, vector< double > &R, vector< int > &orbits, ModelSpace &modelspace)
 
Operator Single_Ref_1B_Density_Matrix (ModelSpace &modelspace)
 
double Get_Charge_Density (Operator &DM, double r)
 
Operator KineticEnergy_Op (ModelSpace &modelspace)
 
Operator Trel_Op (ModelSpace &modelspace)
 
Operator TCM_Op (ModelSpace &modelspace)
 
double Calculate_p1p2 (ModelSpace &modelspace, Ket &bra, Ket &ket, int J)
 
void Calculate_p1p2_all (Operator &OpIn)
 
Operator R2CM_Op (ModelSpace &modelspace)
 
Operator Rp2_corrected_Op (ModelSpace &modelspace, int A, int Z)
 
Operator Rn2_corrected_Op (ModelSpace &modelspace, int A, int Z)
 
Operator Rm2_corrected_Op (ModelSpace &modelspace, int A, int Z)
 
double Calculate_r1r2 (ModelSpace &modelspace, Ket &bra, Ket &ket, int J)
 
Operator HCM_Op (ModelSpace &modelspace)
 
Operator RSquaredOp (ModelSpace &modelspace)
 
Operator R2_p1_Op (ModelSpace &modelspace)
 
Operator R2_1body_Op (ModelSpace &modelspace, string option)
 
Operator R2_p2_Op (ModelSpace &modelspace)
 
Operator R2_2body_Op (ModelSpace &modelspace, string option)
 
Operator ProtonDensityAtR (ModelSpace &modelspace, double R)
 
Operator NeutronDensityAtR (ModelSpace &modelspace, double R)
 
Operator RpSpinOrbitCorrection (ModelSpace &modelspace)
 
Operator E0Op (ModelSpace &modelspace)
 
double FBCIntegrand (double x, void *p)
 
Operator FourierBesselCoeff (ModelSpace &modelspace, int nu, double R, vector< index_t > index_list)
 
Operator Isospin2_Op (ModelSpace &modelspace)
 Returns the \( T^{2} \) operator.
 
Operator ElectricMultipoleOp (ModelSpace &modelspace, int L)
 
Operator MagneticMultipoleOp (ModelSpace &modelspace, int L)
 Returns a reduced magnetic multipole operator with units \( \mu_{N}\) fm \( ^{\lambda-1} \).
 
Operator MagneticMultipoleOp_pn (ModelSpace &modelspace, int L, string pn)
 
double RadialIntegral (int na, int la, int nb, int lb, int L)
 
double RadialIntegral_RpowK (int na, int la, int nb, int lb, int k)
 
double TalmiI (int p, double k)
 
double TalmiB (int na, int la, int nb, int lb, int p)
 
Operator AllowedFermi_Op (ModelSpace &modelspace)
 
Operator AllowedGamowTeller_Op (ModelSpace &modelspace)
 
Operator Sigma_Op (ModelSpace &modelspace)
 Pauli spin operator

\[ \langle f \| \sigma \| i \rangle \]

.

 
Operator Sigma_Op_pn (ModelSpace &modelspace, string pn)
 Pauli spin operator

\[ \langle f \| \sigma \| i \rangle \]

.

 
void Reduce (Operator &X)
 
void UnReduce (Operator &X)
 
Operator RadialOverlap (ModelSpace &modelspace)
 
Operator LdotS_Op (ModelSpace &modelspace)
 
map< index_t, double > GetSecondOrderOccupations (Operator &H, int emax)
 
void Embed1BodyIn2Body (Operator &op1, int A)
 
double GetEmbeddedTBME (Operator &op1, index_t i, index_t j, index_t k, index_t l, int Jbra, int Jket, int Lambda)
 
double FCcoefIntegrand (double r, void *params)
 
double FrequencyConversionCoeff (int n1, int l1, double hw1, int n2, int l2, double hw2)
 
void CommutatorTest (Operator &X, Operator &Y)
 
Operator PSquaredOp (ModelSpace &modelspace)
 
template<typename T >
VectorUnion (T &v1)
 
template<typename T , typename... Args>
VectorUnion (T &v1, T &v2, Args...args)
 

Detailed Description

imsrg_util namespace. Used to define some helpful functions.

Function Documentation

Operator imsrg_util::AllowedGamowTeller_Op ( ModelSpace modelspace)

Note that there is a literature convention to include the 1/sqrt(Lambda) factor in the reduced matrix element rather than in the expression involving the sum over one-body densities (see footnote on pg 165 of Suhonen). I do not follow this convention, and instead produce the reduced matrix element

\[ \langle f \| \sigma \tau_{\pm} \| i \rangle \]

double imsrg_util::Calculate_p1p2 ( ModelSpace modelspace,
Ket bra,
Ket ket,
int  J 
)

This returns the antisymmetrized J-coupled two body matrix element of \( \vec{p}_1 \cdot \vec{p}_2 / (m\hbar\omega) \). The formula is

\begin{eqnarray*} \frac{1}{m\hbar\omega} \left \langle a b \right| \vec{p}_1 \cdot \vec{p}_2 \left| c d \right \rangle_J = \frac{1}{\sqrt{(1+\delta_{ab})(1+\delta_{cd})}} &\sum\limits_{LS} \left[ \begin{array}{ccc} \ell_a & s_a & j_a \\ \ell_b & s_b & j_b \\ L & S & J \end{array} \right] \left[ \begin{array}{ccc} \ell_c & s_c & j_c \\ \ell_d & s_d & j_d \\ L & S & J \end{array} \right] & \\ & \times \sum\limits_{\substack{N_{ab}N_{cd} \Lambda \\ n_{ab} n_{cd} \lambda}} \mathcal{A}_{abcd}^{\lambda S} \times \left\langle N_{ab}\Lambda n_{ab} \lambda | n_{a} \ell_{a} n_{b} \ell_{b} \right\rangle_{L} & \left\langle N_{cd}\Lambda n_{cd} \lambda | n_{c} \ell_{c} n_{d} \ell_{d} \right\rangle_{L} \\ & \times \left( \left\langle N_{ab}\Lambda | t_{cm} | N_{cd} \Lambda \right \rangle -\left\langle n_{ab}\lambda | t_{rel} | n_{cd} \lambda \right \rangle \right) \end{eqnarray*}

The antisymmetrization factor \( \mathcal{A}_{abcd}^{\lambda S} \) ensures that the relative wave function is antisymmetrized. It is given by \( \mathcal{A}_{abcd}^{\lambda S} = \left|t_{za}+t_{zc}\right| + \left| t_{za} + t_{zd} \right| (-1)^{\lambda + S + \left|T_z\right|}\) .

The center-of-mass and relative kinetic energies can be found by the same equation as used in the one-body piece of TCM_Op()

double imsrg_util::Calculate_r1r2 ( ModelSpace modelspace,
Ket bra,
Ket ket,
int  J 
)

Returns the normalized, anti-symmetrized, J-coupled, two-body matrix element of \( \frac{m\omega^2}{\hbar \omega} \vec{r}_1\cdot\vec{r}_2 \). Calculational details are similar to Calculate_p1p2().

Operator imsrg_util::E0Op ( ModelSpace modelspace)

Returns

\[ r_{e}^2 = \sum_{i} e_{i} r_{i}^2 \]

Operator imsrg_util::ElectricMultipoleOp ( ModelSpace modelspace,
int  L 
)

Returns a reduced electric multipole operator with units \( e\) fm \(^{\lambda} \) See Suhonen eq. (6.23)

void imsrg_util::Embed1BodyIn2Body ( Operator op1,
int  A 
)

Embeds the one-body operator of op1 in the two-body part, using mass number A in the embedding. Note that the embedded operator is added to the two-body part, rather than overwriting. The one-body part is left as-is.

double imsrg_util::GetEmbeddedTBME ( Operator op1,
index_t  i,
index_t  j,
index_t  k,
index_t  l,
int  Jbra,
int  Jket,
int  Lambda 
)

Returns a normalized TBME formed by embedding the one body part of op1 in a two body operator. Assumes A=2 in the formula. For other values of A, divide by (A-1).

Operator imsrg_util::HCM_Op ( ModelSpace modelspace)

Center of mass Hamiltonian

\begin{eqnarray*} H_{CM} &= T_{CM} + \frac{1}{2} Am\omega^2 R^2 \\ &= T_{CM} + \frac{1}{2b^2} AR^2 \hbar\omega \end{eqnarray*}

Operator imsrg_util::MagneticMultipoleOp_pn ( ModelSpace modelspace,
int  L,
string  pn 
)

Returns a reduced magnetic multipole operator with units \( \mu_{N}\) fm \( ^{\lambda-1} \) This version allows for the selection of just proton or just neutron contributions, or both. See Suhonen eq. (6.24)

Operator imsrg_util::R2_1body_Op ( ModelSpace modelspace,
string  option 
)

One-body part of the proton charge radius operator. Returns

\[ \hat{R}^{2}_{p1} = \sum_{i} e_{i}{r}_i^2 \]

Operator imsrg_util::R2_2body_Op ( ModelSpace modelspace,
string  option 
)

Two-body part of the proton charge radius operator. Returns

\[ \hat{R}^{2}_{p2} = \sum_{i\neq j} e_{i}\vec{r}_i\cdot\vec{r}_j \]

evaluated in the oscillator basis.

Operator imsrg_util::R2CM_Op ( ModelSpace modelspace)

Returns

\[ R^{2}_{CM} = \left( \frac{1}{A}\sum_{i}\vec{r}_{i}\right)^2 = \frac{1}{A^2} \left( \sum_{i}r_{i}^{2} + \sum_{i\neq j}\vec{r}_i\cdot\vec{r}_j \right) \]

evaluated in the oscillator basis.

double imsrg_util::RadialIntegral ( int  na,
int  la,
int  nb,
int  lb,
int  L 
)

Evaluate the radial integral

\[ \tilde{\mathcal{R}}^{\lambda}_{ab} = \int_{0}^{\infty} dx \tilde{g}_{n_a\ell_a}(x)x^{\lambda+2}\tilde{g}_{n_b\ell_b}(x) \]

where \( \tilde{g}(x) \) is the radial part of the harmonic oscillator wave function with unit oscillator length \( b=1 \) and \( x = r/b \). To obtain the radial integral for some other oscillator length, multiply by \( b^{\lambda} \). This implementation uses eq (6.41) from Suhonen. Note this is only valid for \( \ell_a+\ell_b+\lambda\) = even. If \( \ell_a+\ell_b+\lambda\) is odd, RadialIntegral_RpowK() is called.

Operator imsrg_util::Rp2_corrected_Op ( ModelSpace modelspace,
int  A,
int  Z 
)

Returns

\[ R^{2}_{CM} = \left( \frac{1}{A}\sum_{i}\vec{r}_{i}\right)^2 = \frac{1}{A^2} \left( \sum_{i}r_{i}^{2} + 2\sum_{i<j}\vec{r}_i\cdot\vec{r}_j \right) \]

evaluated in the oscillator basis.

Operator imsrg_util::RSquaredOp ( ModelSpace modelspace)

Returns

\[ r^2 = \sum_{i} r_{i}^2 \]

double imsrg_util::TalmiB ( int  na,
int  la,
int  nb,
int  lb,
int  p 
)

Calculate B coefficient for Talmi integral. Formula given in Brody and Moshinsky "Tables of Transformation Brackets for Nuclear Shell-Model Calculations"

double imsrg_util::TalmiI ( int  p,
double  k 
)

General Talmi integral for a potential r**k 1/gamma(p+3/2) * 2*INT dr r**2 r**2p r**k exp(-r**2/b**2) This is valid for (2p+3+k) > 0. The Gamma function diverges for non-positive integers.

Operator imsrg_util::TCM_Op ( ModelSpace modelspace)

Center of mass kinetic energy, including the hw/A factor

\[ T = \frac{\hbar\omega}{A}\sum_{ij} t_{ij} a^{\dagger}_{i} a_{j} + \frac{\hbar\omega}{A}\frac{1}{4}\sum_{ijkl} t_{ijkl} a^{\dagger}_{i}a^{\dagger}_{j}a_{l}a_{k} \]

with a one-body piece

\[ t_{ij} = \frac{1}{\hbar\omega} \left\langle i | T_{12} | j \right\rangle = \frac{1}{2}(2n_i+\ell_i+3/2) \delta_{ij} + \frac{1}{2}\sqrt{n_j(n_j+\ell_j+\frac{1}{2})} \delta_{n_i,n_j-1}\delta_{k_i k_j} \]

where \(k\) labels all quantum numbers other than \(n\) and a two-body piece

\[ t_{ijkl} = \frac{1}{\hbar\omega} \left\langle ij | (T^{CM}_{12} - T^{rel}_{12}) | kl \right\rangle \]

Operator imsrg_util::Trel_Op ( ModelSpace modelspace)

Relative kinetic energy, includingthe hw/A factor

\[ T_{rel} = T - T_{CM} \]