2 #include "CorePolarisation.hpp"
3 #include "Coulomb/QkTable.hpp"
4 #include "HF/Breit.hpp"
5 #include "IO/FRW_fileReadWrite.hpp"
6 #include "Wavefunction/DiracSpinor.hpp"
24 std::vector<DiracSpinor> holes{};
25 std::vector<DiracSpinor> excited{};
27 std::optional<HF::Breit> m_Br{};
31 std::vector<std::vector<double>> t0am{};
32 std::vector<std::vector<double>> t0ma{};
34 std::vector<std::vector<double>> tam{};
35 std::vector<std::vector<double>> tma{};
39 std::vector<std::vector<std::vector<std::vector<double>>>> Wanmb{};
40 std::vector<std::vector<std::vector<std::vector<double>>>> Wabmn{};
41 std::vector<std::vector<std::vector<std::vector<double>>>> Wmnab{};
42 std::vector<std::vector<std::vector<std::vector<double>>>> Wmban{};
47 const std::vector<DiracSpinor> &basis,
56 virtual void solve_core(
const double omega,
int max_its = 200,
57 const bool print =
true)
override final;
60 virtual Method
method() const override final {
return Method::diagram; }
70 virtual void clear() override final;
87 bool read_write(
const std::string &fname, IO::FRW::RoW rw);
General operator (virtual base class); operators derive from this.
Definition: TensorOperator.hpp:110
Stores radial Dirac spinor: F_nk = (f, g)
Definition: DiracSpinor.hpp:41
Virtual Core Polarisation class, for <a||dV||b>. See TDHF, DiagramRPA, etc.
Definition: CorePolarisation.hpp:35
RPA correction to matrix elements, using Diagram technique.
Definition: DiagramRPA.hpp:20
virtual void solve_core(const double omega, int max_its=200, const bool print=true) override final
Itterates the RPA equations for core electrons.
Definition: DiagramRPA.cpp:389
void update_t0s(const DiracOperator::TensorOperator *const h=nullptr)
Updates lowest-order t_am matrix elements and resets RPA (+updates operator)
Definition: DiagramRPA.cpp:308
DiagramRPA(const DiracOperator::TensorOperator *const h, const std::vector< DiracSpinor > &basis, const HF::HartreeFock *in_hf, const std::string &atom="Atom")
Normal constructor: needs core to split basis: only uses basis.
Definition: DiagramRPA.cpp:21
virtual double dV(const DiracSpinor &Fa, const DiracSpinor &Fb) const override final
Calculates RPA correction to matrix element: <A||dV||B>
Definition: DiagramRPA.cpp:335
virtual Method method() const override final
Returns RPA method.
Definition: DiagramRPA.hpp:60
virtual void clear() override final
Clears the t_am and t_ma RPA ME's [RPA ME's for hole-excited] @Details If a previous run failed,...
Definition: DiagramRPA.cpp:302
void grab_tam(const DiagramRPA *const drpa)
Copies the tam (and tma) values across from different RPAD. If two operators are similar,...
Definition: DiagramRPA.hpp:77
Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED ef...
Definition: HartreeFock.hpp:70
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition: Wavefunction.hpp:36
Dirac Operators: General + derived.
Definition: GenerateOperator.cpp:12
Calculates many-body corrections (RPA) to matrix elements of external field.
Definition: calcMatrixElements.cpp:14
Functions and classes for Hartree-Fock.
Definition: CI_Integrals.hpp:12