2#include "DiracOperator/TensorOperator.hpp"
3#include "qip/String.hpp"
15enum class Method { TDHF, basis, diagram, none, Error };
17inline Method ParseMethod(std::string_view str) {
34enum class dPsiType { X, Y };
35enum class StateType { bra, ket };
46 double m_core_eps{1.0};
48 double m_core_omega{0.0};
54 double m_eps{1.0e-10};
63 int rank()
const {
return m_rank; }
64 int parity()
const {
return m_pi; }
65 bool imagQ()
const {
return m_imag; }
73 double eta()
const {
return m_eta; }
76 assert(
eta >= 0.0 &&
eta < 1 &&
"Must have 0 <= eta < 1");
85 bool print =
true) = 0;
95 bool conj =
false)
const {
100 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:197
bool imaginaryQ() const
returns true if operator is imaginary (has imag MEs)
Definition TensorOperator.hpp:323
int parity() const
returns parity, as integer (+1 or -1)
Definition TensorOperator.hpp:329
int rank() const
Rank k of operator.
Definition TensorOperator.hpp:326
Stores radial Dirac spinor: F_nk = (f, g)
Definition DiracSpinor.hpp:42
Virtual Core Polarisation class, for <a||dV||b>. See TDHF, DiagramRPA, etc.
Definition CorePolarisation.hpp:38
virtual void clear()=0
Clears the internal state back to pre solve_core()
virtual double dV(const DiracSpinor &Fn, const DiracSpinor &Fm) const =0
Calculate reduced matrix element <n||dV||m>
virtual DiracSpinor dV_rhs(int kappa, const DiracSpinor &Fm, bool conj=false) const
Calculates reduced right-hand-side, projected onto kappa: [dV|phi_m]_kappa.
Definition CorePolarisation.hpp:94
double last_eps() const
Returns eps (convergance) of last solve_core run.
Definition CorePolarisation.hpp:58
double last_omega() const
Returns omega (frequency) of last solve_core run.
Definition CorePolarisation.hpp:62
void set_eta(double eta)
Set/update damping factor; 0 means no damping. Must have 0 <= eta < 1.
Definition CorePolarisation.hpp:75
double eps_target() const
Convergance target.
Definition CorePolarisation.hpp:70
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:73
double last_its() const
Returns its (# of iterations) of last solve_core run.
Definition CorePolarisation.hpp:60
double & eps_target()
Convergance target.
Definition CorePolarisation.hpp:68
virtual void solve_core(double omega, int max_its=100, bool print=true)=0
Solve RPA equations (for whichever method) for core.
Dirac operators: TensorOperator base class and derived implementations for single-particle (one-body)...
Definition GenerateOperator.cpp:3
Calculates many-body corrections (RPA) to matrix elements of external field.
Definition calcMatrixElements.cpp:14
bool ci_compare(std::string_view s1, std::string_view s2)
Case insensitive string compare. Essentially: LowerCase(s1)==LowerCase(s2)
Definition String.hpp:132