2#include "DiracOperator/TensorOperator.hpp"
3#include "qip/String.hpp"
148 double m_core_eps{1.0};
150 double m_core_omega{0.0};
156 double m_eps{1.0e-10};
166 int rank()
const {
return m_rank; }
170 bool imagQ()
const {
return m_imag; }
178 double eta()
const {
return m_eta; }
181 assert(
eta >= 0.0 &&
eta < 1 &&
"Must have 0 <= eta < 1");
206 bool print =
true) = 0;
216 bool conj =
false)
const {
221 assert(
false &&
"This should be made pure virtual");
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:324
int parity() const
returns parity, as integer (+1 or -1)
Definition TensorOperator.hpp:330
int rank() const
Rank k of operator.
Definition TensorOperator.hpp:327
Stores radial Dirac spinor: F_nk = (f, g)
Definition DiracSpinor.hpp:42
Virtual base class for core-polarisation (RPA); computes dV corrections.
Definition CorePolarisation.hpp:140
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:215
int rank() const
Rank of the operator.
Definition CorePolarisation.hpp:166
double last_eps() const
Returns eps (convergance) of last solve_core run.
Definition CorePolarisation.hpp:160
double last_omega() const
Returns omega (frequency) of last solve_core run.
Definition CorePolarisation.hpp:164
void set_eta(double eta)
Set/update damping factor; 0 means no damping. Must have 0 <= eta < 1.
Definition CorePolarisation.hpp:180
double eps_target() const
Convergance target.
Definition CorePolarisation.hpp:175
bool imagQ() const
Returns true if the operator is imaginary.
Definition CorePolarisation.hpp:170
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:178
double last_its() const
Returns its (# of iterations) of last solve_core run.
Definition CorePolarisation.hpp:162
double & eps_target()
Convergance target.
Definition CorePolarisation.hpp:173
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:168
Uses TDHF to include core-polarisation (RPA) corrections to matrix elements of an external field oper...
Definition TDHF.hpp:59
Dirac operators: TensorOperator base class and derived implementations for single-particle (one-body)...
Definition GenerateOperator.cpp:6
Core-polarisation (RPA) corrections to matrix elements of an external field.
Definition calcMatrixElements.cpp:14
Method ParseMethod(std::string_view str)
Parses method string to Method enum (case-insensitive)
Definition CorePolarisation.hpp:85
StateType
Whether the state is a bra or ket.
Definition CorePolarisation.hpp:112
dPsiType
Selects the perturbed orbital: X = varphi_+, Y = varphi_-.
Definition CorePolarisation.hpp:110
Method
Available RPA/core-polarisation methods.
Definition CorePolarisation.hpp:82
bool ci_compare(std::string_view s1, std::string_view s2)
Case-insensitive string comparison; equivalent to tolower(s1) == tolower(s2).
Definition String.hpp:143