ampsci
c++ program for high-precision atomic structure calculations of single-valence systems
TDHFbasis.hpp
1 #pragma once
2 #include "CorePolarisation.hpp"
3 #include "TDHF.hpp"
4 #include <vector>
5 class DiracSpinor;
6 namespace DiracOperator {
7 class TensorOperator;
8 }
9 
10 namespace ExternalField {
11 
16 
23 class TDHFbasis final : public TDHF {
24 public:
26  const HF::HartreeFock *const hf,
27  const std::vector<DiracSpinor> &basis);
28 
29 private:
30  const std::vector<DiracSpinor> m_basis; // store copy?
31 
32 public:
40  virtual void solve_core(const double omega, int max_its = 100,
41  const bool print = true) override final;
42 
44  virtual Method method() const override final { return Method::basis; }
45 
60  DiracSpinor form_dPsi(const DiracSpinor &Fv, const double omega,
61  dPsiType XorY, const int kappa_beta,
62  const std::vector<DiracSpinor> &spectrum,
63  StateType st = StateType::ket,
64  bool incl_dV = true) const;
65 
67  std::vector<DiracSpinor> form_dPsis(const DiracSpinor &Fv, const double omega,
68  dPsiType XorY,
69  const std::vector<DiracSpinor> &spectrum,
70  StateType st = StateType::ket,
71  bool incl_dV = true) const;
72 
73 public:
74  TDHFbasis &operator=(const TDHFbasis &) = delete;
75  TDHFbasis(const TDHFbasis &) = default;
76  ~TDHFbasis() = default;
77 };
78 
79 } // namespace ExternalField
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
Uses time-dependent Hartree-Fock method to include core-polarisation (RPA) corrections to matrix elem...
Definition: TDHF.hpp:40
Similar to the time-dependent Hartree-Fock method, but expands dPsi corrections using a basis to incl...
Definition: TDHFbasis.hpp:23
delta epsilon psi f delta epsilon Psi f DiracSpinor form_dPsi(const DiracSpinor &Fv, const double omega, dPsiType XorY, const int kappa_beta, const std::vector< DiracSpinor > &spectrum, StateType st=StateType::ket, bool incl_dV=true) const
Forms \delta Psi_v for valence state Fv (including core pol.) - 1 kappa.
Definition: TDHFbasis.cpp:19
std::vector< DiracSpinor > form_dPsis(const DiracSpinor &Fv, const double omega, dPsiType XorY, const std::vector< DiracSpinor > &spectrum, StateType st=StateType::ket, bool incl_dV=true) const
Forms \delta Psi_v for valence state Fv for all kappas (see form_dPsi)
Definition: TDHFbasis.cpp:66
virtual void solve_core(const double omega, int max_its=100, const bool print=true) override final
Solves TDHF equations self-consistantly for core electrons at frequency omega, using basis expansion.
Definition: TDHFbasis.cpp:91
virtual Method method() const override final
Returns RPA method.
Definition: TDHFbasis.hpp:44
Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED ef...
Definition: HartreeFock.hpp:70
Dirac Operators: General + derived.
Definition: GenerateOperator.cpp:12
Calculates many-body corrections (RPA) to matrix elements of external field.
Definition: calcMatrixElements.cpp:14