![]() |
|
High-precision calculations for one- and two-valence atomic systems
|
Second-order correlation potential, Sigma, from Goldstone diagrams.
Forms the second-order correlation potential for a valence state, as a non-local matrix on a radial sub-grid (every stride-th point of the full grid), by direct summation over a finite basis of internal core (hole) and excited states. Direct and exchange diagrams, with optional effective screening (fk) and hole-particle (etak) factors, and the two-body Breit correction.
Used by CorrelationPotential: for all diagrams (Goldstone method), or for the exchange and Breit diagrams only (Feynman method).
#include <Goldstone.hpp>
Public Member Functions | |
| Goldstone (const std::vector< DiracSpinor > &basis, const std::vector< DiracSpinor > &core, std::size_t i0, std::size_t stride, std::size_t size, int n_min_core=1, bool include_G=false, const HF::Breit *Br=nullptr) | |
| Splits basis into internal holes and excited states; forms Yk table. | |
| GMatrix | Sigma_direct (int kappa_v, double en_v, const std::vector< double > &fk={}, const std::vector< double > &etak={}, int n_max_core=99) const |
| Calculate Direct part of correlation potential. | |
| GMatrix | Sigma_exchange (int kappa_v, double en_v, const std::vector< double > &fk={}, bool fk_both_lines=false) const |
| Calculate Exchange part of correlation potential. | |
| GMatrix | Sigma_both (int kappa_v, double en_v, const std::vector< double > &fk={}, const std::vector< double > &etak={}, int n_max_core=99, bool fk_both_lines=false) const |
| Calculate both parts (direct + exchange) of correlation potential. | |
| GMatrix | dSigma_Breit2 (int kappa_v, double en_v, const std::vector< double > &fk={}, const std::vector< double > &etak={}, int n_max_core=99, int max_n_breit=-1) const |
| Calculates 2-body Breit correction to correlation potential. | |
| const std::pair< Basis, Basis > & | basis () const |
| Internal {holes, excited} states (holes: core states with n >= n_min) | |
| const Coulomb::YkTable & | Yeh () const |
| Yk table for each excited-hole pair. | |
| std::size_t | stride () const |
| Sub-grid stride: every stride-th point of the full grid. | |
| int | n_min () const |
| Minimum n of core states included as internal holes. | |
| int | lmax () const |
| Maximum l of the internal excited states. | |
| MBPT::Goldstone::Goldstone | ( | const std::vector< DiracSpinor > & | basis, |
| const std::vector< DiracSpinor > & | core, | ||
| std::size_t | i0, | ||
| std::size_t | stride, | ||
| std::size_t | size, | ||
| int | n_min_core = 1, |
||
| bool | include_G = false, |
||
| const HF::Breit * | Br = nullptr |
||
| ) |
Splits basis into internal holes and excited states; forms Yk table.
Basis states found in core with n >= n_min_core are the internal holes; basis states not in core are the excited states. Calculates the Yk integrals for each excited-hole pair.
| basis | Basis for internal lines (core and excited states); must not be empty |
| core | Core states: used to split basis into holes and excited states |
| i0 | Full-grid index of the first sub-grid point |
| stride | Sub-grid stride: every stride-th point of the full grid |
| size | Number of sub-grid points |
| n_min_core | Minimum n of core states included as internal holes (lower core states are frozen) |
| include_G | Include small-component (fg, gf, gg) parts of Sigma |
| Br | Breit operator, for dSigma_Breit2 (copied; nullptr: none) |
| GMatrix MBPT::Goldstone::Sigma_direct | ( | int | kappa_v, |
| double | en_v, | ||
| const std::vector< double > & | fk = {}, |
||
| const std::vector< double > & | etak = {}, |
||
| int | n_max_core = 99 |
||
| ) | const |
Calculate Direct part of correlation potential.
Direct diagrams, summed over internal holes and excited states, at energy en_v. Each multipolarity k is scaled by fk[k] * etak[k].
| kappa_v | Dirac quantum number of the valence state |
| en_v | Energy at which Sigma is formed |
| fk | Effective screening factors, for each multipole k (missing: 1) |
| etak | Effective hole-particle factors, for each k (missing: 1) |
| n_max_core | Maximum n of internal hole states (<= 0: all) |
| GMatrix MBPT::Goldstone::Sigma_exchange | ( | int | kappa_v, |
| double | en_v, | ||
| const std::vector< double > & | fk = {}, |
||
| bool | fk_both_lines = false |
||
| ) | const |
Calculate Exchange part of correlation potential.
fk are effective screening factors, applied to the multipole k of the outer Coulomb line; with fk_both_lines, also to the multipole of the inner line (inside \( P^k \)), i.e., \( f_k f_l \).
| GMatrix MBPT::Goldstone::Sigma_both | ( | int | kappa_v, |
| double | en_v, | ||
| const std::vector< double > & | fk = {}, |
||
| const std::vector< double > & | etak = {}, |
||
| int | n_max_core = 99, |
||
| bool | fk_both_lines = false |
||
| ) | const |
Calculate both parts (direct + exchange) of correlation potential.
Direct and exchange diagrams formed together, in a single sum. Parameters as for Sigma_direct() and Sigma_exchange(); here, n_max_core applies to both the direct and exchange diagrams.
| GMatrix MBPT::Goldstone::dSigma_Breit2 | ( | int | kappa_v, |
| double | en_v, | ||
| const std::vector< double > & | fk = {}, |
||
| const std::vector< double > & | etak = {}, |
||
| int | n_max_core = 99, |
||
| int | max_n_breit = -1 |
||
| ) | const |
Calculates 2-body Breit correction to correlation potential.
Second-order diagrams with one Coulomb line replaced by the two-body Breit interaction (factor of 2: either line), including direct and exchange parts. Each multipolarity k is scaled by fk[k]; etak[k] scales the direct part only.
| kappa_v | Dirac quantum number of the valence state |
| en_v | Energy at which Sigma is formed |
| fk | Effective screening factors, for each multipole k |
| etak | Effective hole-particle factors, for each k (direct part only) |
| n_max_core | Maximum n of internal hole states (<= 0: all) |
| max_n_breit | Maximum n of internal excited states (<= 0: all) |
|
inline |
Internal {holes, excited} states (holes: core states with n >= n_min)
|
inline |
Yk table for each excited-hole pair.
|
inline |
Sub-grid stride: every stride-th point of the full grid.
|
inline |
Minimum n of core states included as internal holes.
|
inline |
Maximum l of the internal excited states.