High-precision calculations for one- and two-valence atomic systems
LadderDriver.hpp
1#pragma once
2
3// Forward declarations
4namespace IO {
5class InputBlock;
6}
7class Wavefunction;
8
9namespace MBPT {
10
11/*!
12 @brief Driver for the ladder-diagram calculation: the Ladder{} input block.
13
14 @details
15 Calculates (and iterates to convergence) the ladder integrals Lk, writing
16 them to the .lk file. Then constructs the ladder correlation potential,
17 Sigma_L, for the lowest valence state of each kappa (or for each valence
18 state, if each_valence is set), and writes these to the .sl file.
19 The .sl file may then be read in by the Correlations block (ladder
20 option) to include Sigma_L into the correlation potential.
21 Runs before Correlations. Options are parsed from the Ladder{} input block.
22
23 @param input The Ladder{} input block
24 @param wf Wavefunction: supplies the core, valence states, and basis
25
26 @warning: Experimental, not fully tested, be careful
27
28 @note Valence states missing from the basis are skipped (with a warning).
29*/
30void ladder(const IO::InputBlock &input, const Wavefunction &wf);
31
32} // namespace MBPT
Holds a named list of key=value options and nested InputBlocks.
Definition InputBlock.hpp:154
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition Wavefunction.hpp:48
In-out (timers, profilers, and read/write data)
Definition ChronoTimer.hpp:9
Many-body perturbation theory.
Definition MatrixElements.hpp:12
void ladder(const IO::InputBlock &input, const Wavefunction &wf)
Driver for the ladder-diagram calculation: the Ladder{} input block.
Definition LadderDriver.cpp:34