|
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.
|
finaloverridevirtual |
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.
Implements ExternalField::CorePolarisation.
|
finaloverridevirtual |
Calculates RPA correction to matrix element: <A||dV||B>
Implements ExternalField::CorePolarisation.
|
inlinefinaloverridevirtual |
Returns RPA method.
Implements ExternalField::CorePolarisation.
|
finaloverridevirtual |
Itterates the RPA equations for core electrons.
Implements ExternalField::CorePolarisation.