ampsci
c++ program for high-precision atomic structure calculations of single-valence systems
Public Member Functions | List of all members
ExternalField::DiagramRPA

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.
 
DiagramRPAoperator= (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.
 
CorePolarisationoperator= (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::TensorOperatorm_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}
 

Detailed Description

RPA correction to matrix elements, using Diagram technique.


The documentation for this class was generated from the following files: