|
ampsci
High-precision calculations for one- and two-valence atomic systems
|
Two-electron configuration state function (CSF).
A CSF is an antisymmetrised two-electron basis state with definite total angular momentum ( \( J^2 \), \( J_z \)) and parity, built from a pair of single-particle relativistic orbitals. Only two-electron CSFs are implemented.
Each CSF2 stores the indices of its two constituent orbitals (always sorted to avoid double-counting) and the total parity, which is the product of the parities of the two single-particle states.
#include <CSF.hpp>
Public Member Functions | |
| CSF2 (const DiracSpinor &a, const DiracSpinor &b) | |
| DiracSpinor::Index | state (std::size_t i) const |
| Index (nk_index) of the ith constituent orbital (i = 0 or 1) | |
| int | parity () const |
| Parity of the CSF, +/-1. | |
| std::string | config (bool relativistic=false) const |
| Single-particle configuration as a string, in relativistic or non-rel form. | |
Static Public Member Functions | |
| static int | num_different (const CSF2 &A, const CSF2 &B) |
| Returns the number of orbitals that differ between two CSFs (0, 1, or 2). | |
| static std::array< DiracSpinor::Index, 2 > | diff_1_na (const CSF2 &V, const CSF2 &X) |
For two CSFs differing by exactly one orbital, returns {n, a} where V contains orbital n and X contains orbital a. | |
| static DiracSpinor::Index | same_1_j (const CSF2 &A, const CSF2 &B) |
| Returns the orbital index shared by two CSFs that differ by exactly one orbital. | |
Public Attributes | |
| std::array< DiracSpinor::Index, 2 > | states |
Friends | |
| bool | operator== (const CSF2 &A, const CSF2 &B) |
| bool | operator!= (const CSF2 &A, const CSF2 &B) |
| DiracSpinor::Index CI::CSF2::state | ( | std::size_t | i | ) | const |
Index (nk_index) of the ith constituent orbital (i = 0 or 1)
Returns the number of orbitals that differ between two CSFs (0, 1, or 2).
Used to select the appropriate Slater-Condon rule when evaluating CI matrix elements: 0 – diagonal; 1 – single substitution; 2 – double substitution; >2 – zero by orthogonality.
For two CSFs differing by exactly one orbital, returns {n, a} where V contains orbital n and X contains orbital a.
Identifies the "particle" index n (in V but not X) and the "hole" index a (in X but not V), as needed to apply the single-substitution Slater-Condon rule: \( \langle V | \hat{O} | X \rangle \) where \( |V\rangle = \hat{a}^\dag_n \hat{a}_a |X\rangle \).
V and X do not differ by exactly one orbital; check with num_different() first. Returns the orbital index shared by two CSFs that differ by exactly one orbital.
Extracts the common (spectator) orbital needed for single-substitution matrix elements.
A and B differ by exactly one orbital. | int CI::CSF2::parity | ( | ) | const |
Parity of the CSF, +/-1.
| std::string CI::CSF2::config | ( | bool | relativistic = false | ) | const |
Single-particle configuration as a string, in relativistic or non-rel form.