ampsci
c++ program for high-precision atomic structure calculations of single-valence systems
|
RPA correction to matrix elements, using Diagram technique. More...
#include <DiagramRPA.hpp>
Inherits ExternalField::CorePolarisation.
Public Member Functions | |
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. | |
DiagramRPA (const DiracOperator::TensorOperator *const h, const DiagramRPA *const drpa) | |
Second constructor: copies over W matrices (depend only on k/pi) | |
virtual void | solve_core (const double omega, int max_its=200, const bool print=true) override final |
Itterates the RPA equations for core electrons. | |
virtual Method | method () const override final |
Returns RPA method. | |
virtual double | dV (const DiracSpinor &Fa, const DiracSpinor &Fb) const override final |
Calculates RPA correction to matrix element: <A||dV||B> | |
double | dV_diagram (const DiracSpinor &Fa, const DiracSpinor &Fb) const |
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, can clear t_am's + re-try. | |
void | update_t0s (const DiracOperator::TensorOperator *const h=nullptr) |
Updates lowest-order t_am matrix elements and resets RPA (+updates operator) | |
void | grab_tam (const DiagramRPA *const drpa) |
Copies the tam (and tma) values across from different RPAD. If two operators are similar, this can save time on the itterations. | |
DiagramRPA & | operator= (const DiagramRPA &)=delete |
DiagramRPA (const DiagramRPA &)=default | |
Public Member Functions inherited from ExternalField::CorePolarisation | |
double | last_eps () const |
Returns eps (convergance) of last solve_core run. | |
double | last_its () const |
Returns its (# of iterations) of last solve_core run. | |
double | last_omega () const |
Returns omega (frequency) of last solve_core run. | |
int | rank () const |
int | parity () const |
bool | imagQ () const |
double & | eps_target () |
Convergance target. | |
double | eps_target () const |
Convergance target. | |
double | eta () const |
Damping factor; 0 means no damping. Must have 0 <= eta < 1. | |
void | set_eta (double eta) |
Set/update damping factor; 0 means no damping. Must have 0 <= eta < 1. | |
CorePolarisation & | operator= (const CorePolarisation &)=delete |
CorePolarisation (const CorePolarisation &)=default | |
Additional Inherited Members | |
Protected Member Functions inherited from ExternalField::CorePolarisation | |
CorePolarisation (const DiracOperator::TensorOperator *const h) | |
Protected Attributes inherited from ExternalField::CorePolarisation | |
const DiracOperator::TensorOperator * | m_h |
double | m_core_eps {1.0} |
int | m_core_its {0} |
double | m_core_omega {0.0} |
int | m_rank |
int | m_pi |
bool | m_imag |
double | m_eta {0.4} |
double | m_eps {1.0e-10} |
RPA correction to matrix elements, using Diagram technique.