2#include "CorePolarisation.hpp"
3#include "Coulomb/QkTable.hpp"
5#include "IO/FRW_fileReadWrite.hpp"
6#include "Wavefunction/DiracSpinor.hpp"
86 std::optional<HF::Breit> m_Br{};
87 std::vector<DiracSpinor> m_holes{};
88 std::vector<DiracSpinor> m_excited{};
92 std::vector<std::vector<double>> m_t0am{};
93 std::vector<std::vector<double>> m_t0ma{};
95 std::vector<std::vector<double>> m_tam{};
96 std::vector<std::vector<double>> m_tma{};
100 std::vector<std::vector<std::vector<std::vector<double>>>> m_Wanmb{};
101 std::vector<std::vector<std::vector<std::vector<double>>>> m_Wabmn{};
102 std::vector<std::vector<std::vector<std::vector<double>>>> m_Wmnab{};
103 std::vector<std::vector<std::vector<std::vector<double>>>> m_Wmban{};
124 const std::vector<DiracSpinor> &basis,
164 void solve_core(
double omega,
int max_its = 200,
165 bool print =
true)
override final;
182 bool conj =
false) const override final;
186 bool conj = false) const final;
215 bool read_write(const std::
string &fname,
IO::FRW::RoW rw,
bool print = true);
218 void fill_W_matrix(const
DiracOperator::TensorOperator *const h,
bool print);
General tensor operator (virtual base class); all single-particle (one-body) tenosor operators derive...
Definition TensorOperator.hpp:198
Stores radial Dirac spinor: F_nk = (f, g)
Definition DiracSpinor.hpp:55
Virtual base class for core-polarisation (RPA); computes dV corrections.
Definition CorePolarisation.hpp:147
RPA correction to matrix elements using the diagram technique.
Definition DiagramRPA.hpp:82
DiracSpinor dV_rhs(int kappa, const DiracSpinor &Fm, bool conj=false) const final
Calculates reduced right-hand-side, projected onto kappa: [dV|phi_m]_kappa.
Definition DiagramRPA.cpp:404
void solve_core(double omega, int max_its=200, bool print=true) override final
Iterates the RPA equations to convergence for the core electrons.
Definition DiagramRPA.cpp:465
void update_t0s(const DiracOperator::TensorOperator *const h=nullptr)
Updates the zeroth-order matrix elements and resets the RPA solution.
Definition DiagramRPA.cpp:321
Method method() const final
Returns the RPA method identifier (diagram)
Definition DiagramRPA.hpp:168
double dV(const DiracSpinor &Fa, const DiracSpinor &Fb, bool conj=false) const override final
Returns the RPA correction to a reduced matrix element, <a||dV||b>; see CorePolarisation::dV.
Definition DiagramRPA.cpp:358
void clear() final
Resets the RPA matrix elements to their unperturbed (zeroth-order) values.
Definition DiagramRPA.cpp:315
Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED ef...
Definition HartreeFock.hpp:114
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition Wavefunction.hpp:48
Dirac operators: TensorOperator base class and derived implementations for single-particle (one-body)...
Definition SecondOrder.hpp:7
Core-polarisation (RPA) corrections to matrix elements of an external field.
Definition MatrixElements.hpp:9
Method
Available RPA/core-polarisation methods.
Definition CorePolarisation.hpp:87
Functions and classes for Hartree-Fock.
Definition CI_Integrals.hpp:16
In-out (timers, profilers, and read/write data)
Definition ChronoTimer.hpp:9