2#include "DiracOperator/TensorOperator.hpp"
3#include "qip/String.hpp"
153 double m_core_eps{1.0};
155 double m_core_omega{0.0};
161 double m_eps{1.0e-10};
171 int rank()
const {
return m_rank; }
175 bool imagQ()
const {
return m_imag; }
183 double eta()
const {
return m_eta; }
186 assert(
eta >= 0.0 &&
eta < 1 &&
"Must have 0 <= eta < 1");
211 bool print =
true) = 0;
221 bool conj =
false)
const {
226 assert(
false &&
"This should be made pure virtual");
267[[nodiscard]] std::unique_ptr<CorePolarisation>
270 const std::vector<DiracSpinor> &basis = {},
271 const std::string &identity =
"",
General tensor operator (virtual base class); all single-particle (one-body) tenosor operators derive...
Definition TensorOperator.hpp:198
bool imaginaryQ() const
returns true if operator is imaginary (has imag MEs)
Definition TensorOperator.hpp:333
int parity() const
returns parity, as integer (+1 or -1)
Definition TensorOperator.hpp:339
int rank() const
Rank k of operator.
Definition TensorOperator.hpp:336
Stores radial Dirac spinor: F_nk = (f, g)
Definition DiracSpinor.hpp:44
Virtual base class for core-polarisation (RPA); computes dV corrections.
Definition CorePolarisation.hpp:145
virtual void clear()=0
Clears the internal state back to pre solve_core()
virtual double dV(const DiracSpinor &Fn, const DiracSpinor &Fm) const =0
Returns reduced matrix element <n||dV_pm||m> (see namespace doc for dV_pm)
virtual DiracSpinor dV_rhs(int kappa, const DiracSpinor &Fm, bool conj=false) const
Returns [dV_pm * phi_m]_kappa: RHS of TDHF eq., projected onto kappa (see namespace doc)
Definition CorePolarisation.hpp:220
int rank() const
Rank of the operator.
Definition CorePolarisation.hpp:171
double last_eps() const
Returns eps (convergance) of last solve_core run.
Definition CorePolarisation.hpp:165
double last_omega() const
Returns omega (frequency) of last solve_core run.
Definition CorePolarisation.hpp:169
void set_eta(double eta)
Set/update damping factor; 0 means no damping. Must have 0 <= eta < 1.
Definition CorePolarisation.hpp:185
double eps_target() const
Convergance target.
Definition CorePolarisation.hpp:180
bool imagQ() const
Returns true if the operator is imaginary.
Definition CorePolarisation.hpp:175
virtual Method method() const =0
Returns RPA method.
double eta() const
Damping factor; 0 means no damping. Must have 0 <= eta < 1.
Definition CorePolarisation.hpp:183
double last_its() const
Returns its (# of iterations) of last solve_core run.
Definition CorePolarisation.hpp:167
double & eps_target()
Convergance target.
Definition CorePolarisation.hpp:178
virtual void solve_core(double omega, int max_its=100, bool print=true)=0
Solve for delta_V_pm self-consistently for all core orbitals at frequency omega.
int parity() const
Parity of the operator.
Definition CorePolarisation.hpp:173
Uses TDHF to include core-polarisation (RPA) corrections to matrix elements of an external field oper...
Definition TDHF.hpp:59
Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED ef...
Definition HartreeFock.hpp:111
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 ParseMethod(std::string_view str)
Parses method string to Method enum (case-insensitive)
Definition CorePolarisation.hpp:90
StateType
Whether the state is a bra or ket.
Definition CorePolarisation.hpp:117
std::unique_ptr< CorePolarisation > make_rpa(const std::string &method, const DiracOperator::TensorOperator *h, const HF::HartreeFock *vhf, bool print, const std::vector< DiracSpinor > &basis, const std::string &identity, const DiracOperator::TensorOperator *h_minus)
Factory function to construct a core-polarisation (RPA) object.
Definition CorePolarisation.cpp:18
dPsiType
Selects the perturbed orbital: X = varphi_+, Y = varphi_-.
Definition CorePolarisation.hpp:115
Method
Available RPA/core-polarisation methods.
Definition CorePolarisation.hpp:87
Functions and classes for Hartree-Fock.
Definition CI_Integrals.hpp:16
bool ci_compare(std::string_view s1, std::string_view s2)
Case-insensitive string comparison; equivalent to tolower(s1) == tolower(s2).
Definition String.hpp:144