2#include "Angular/Angular.hpp"
3#include "Coulomb/Coulomb.hpp"
4#include "MBPT/RDMatrix.hpp"
5#include "Wavefunction/DiracSpinor.hpp"
21 const std::vector<DiracSpinor> &excited,
bool include_L4,
24 const std::vector<double> &fk = {});
39 const std::vector<double> &fk = {});
52 const std::vector<double> &fk = {});
57 const std::vector<DiracSpinor> &core,
58 const std::vector<DiracSpinor> &excited,
61 const std::vector<double> &fk = {}) {
62 return L2(k, n, m, j, i, qk, core, excited, SJ, Lk, fk);
70 const std::vector<double> &fk = {});
74 const std::vector<DiracSpinor> &excited,
75 const std::vector<DiracSpinor> &core,
76 const std::vector<DiracSpinor> &i_orbs,
bool include_L4,
79 bool print_progbar =
true,
80 const std::vector<double> &fk = {});
88template <
typename Q
integrals,
typename QorL
integrals>
90 const QorLintegrals &lk,
const std::vector<DiracSpinor> &core,
91 const std::vector<DiracSpinor> &excited,
92 const std::vector<double> &fk = {},
93 const std::vector<double> &etak = {});
101template <
typename Q
integrals,
typename QorL
integrals>
102double de_core(
const Qintegrals &qk,
const QorLintegrals &lk,
103 const std::vector<DiracSpinor> &core,
104 const std::vector<DiracSpinor> &excited);
Lookup table for Wigner 6J symbols.
Definition SixJTable.hpp:24
Base (pure virtual) class to store Coulomb integrals, and similar. 3 derived classes,...
Definition QkTable.hpp:57
Stores radial Dirac spinor: F_nk = (f, g)
Definition DiracSpinor.hpp:41
Many-body perturbation theory.
Definition CI_Integrals.hpp:9
double L2(int k, const DiracSpinor &m, const DiracSpinor &n, const DiracSpinor &i, const DiracSpinor &j, const Coulomb::QkTable &qk, const std::vector< DiracSpinor > &core, const std::vector< DiracSpinor > &excited, const Angular::SixJTable &SJ, const Coulomb::LkTable *const Lk, const std::vector< double > &fk)
Ladder integral, L^k_mnab := L1_mnij + L2_mnij + L3_nmji, L3_mnij = L2_nmji.
Definition Ladder.cpp:179
void fill_Lk_mnib(Coulomb::LkTable *lk, const Coulomb::QkTable &qk, const std::vector< DiracSpinor > &excited, const std::vector< DiracSpinor > &core, const std::vector< DiracSpinor > &i_orbs, bool include_L4, const Angular::SixJTable &sjt, const Coulomb::LkTable *const lk_prev, bool print_progbar, const std::vector< double > &fk)
Fills Lk matrix.
Definition Ladder.cpp:250
double de_core(const Qintegrals &qk, const QorLintegrals &lk, const std::vector< DiracSpinor > &core, const std::vector< DiracSpinor > &excited)
Calculate energy shift (either ladder, or sigma2) for CORE.
double Lkmnij(int k, const DiracSpinor &m, const DiracSpinor &n, const DiracSpinor &i, const DiracSpinor &j, const Coulomb::QkTable &qk, const std::vector< DiracSpinor > &core, const std::vector< DiracSpinor > &excited, bool include_L4, const Angular::SixJTable &SJ, const Coulomb::LkTable *const Lk, const std::vector< double > &fk)
Calculates ladder integral, L^k_mnab.
Definition Ladder.cpp:12
double de_valence(const DiracSpinor &v, const Qintegrals &qk, const QorLintegrals &lk, const std::vector< DiracSpinor > &core, const std::vector< DiracSpinor > &excited, const std::vector< double > &fk={}, const std::vector< double > &etak={})
Calculate energy shift (either ladder, or sigma2) for valence.
double L1(int k, const DiracSpinor &m, const DiracSpinor &n, const DiracSpinor &i, const DiracSpinor &j, const Coulomb::QkTable &qk, const std::vector< DiracSpinor > &excited, const Angular::SixJTable &SJ, const Coulomb::LkTable *const Lk, const std::vector< double > &fk)
Ladder integral, L^k_mnij := L1_mnij + L2_mnij + L2_nmji.
Definition Ladder.cpp:31