SIRIUS 7.5.0
Electronic structure library and applications
Public Member Functions | Private Attributes | List of all members
sirius::Augmentation_operator Class Reference

Augmentation charge operator Q(r) of the ultrasoft pseudopotential formalism. More...

#include <augmentation_operator.hpp>

Public Member Functions

 Augmentation_operator (Atom_type const &atom_type__, fft::Gvec const &gvec__, Radial_integrals_aug< false > const &ri__, Radial_integrals_aug< true > const &ri_dq__)
 Constructor. More...
 
void generate_pw_coeffs ()
 Generate Q_{xi,xi'}(G) plane wave coefficients. More...
 
void generate_pw_coeffs_gvec_deriv (int nu__)
 Generate G-vector derivative Q_{xi,xi'}(G)/dG of the plane-wave coefficients *‍/. More...
 
auto const & q_pw () const
 
double q_pw (int i__, int ig__) const
 
double q_mtrx (int xi1__, int xi2__) const
 Get values of the Q-matrix. More...
 
auto const & sym_weight () const
 
double sym_weight (int idx__) const
 Weight of Q_{\xi,\xi'}. More...
 
Atom_type const & atom_type () const
 

Private Attributes

Atom_type const & atom_type_
 
fft::Gvec const & gvec_
 
sddk::mdarray< double, 2 > q_mtrx_
 
sddk::mdarray< double, 2 > q_pw_
 
sddk::mdarray< double, 1 > sym_weight_
 
sddk::mdarray< std::complex< double >, 1 > zilm_
 
sddk::mdarray< double, 3 > ri_values_
 
sddk::mdarray< double, 3 > ri_dq_values_
 
sddk::mdarray< int, 2 > idx_
 
sddk::mdarray< int, 1 > l_by_lm_
 

Detailed Description

Augmentation charge operator Q(r) of the ultrasoft pseudopotential formalism.

This class generates and stores the plane-wave coefficients of the augmentation charge operator for a given atom type.

Definition at line 110 of file augmentation_operator.hpp.

Constructor & Destructor Documentation

◆ Augmentation_operator()

sirius::Augmentation_operator::Augmentation_operator ( Atom_type const &  atom_type__,
fft::Gvec const &  gvec__,
Radial_integrals_aug< false > const &  ri__,
Radial_integrals_aug< true > const &  ri_dq__ 
)
inline

Constructor.

Parameters
[in]atom_typeAtom type instance.
[in]gvecG-vector instance.
[in]radial_integralsRadial integrals of the Q(r) with spherical Bessel functions.

Definition at line 138 of file augmentation_operator.hpp.

Member Function Documentation

◆ generate_pw_coeffs()

void sirius::Augmentation_operator::generate_pw_coeffs ( )

Generate Q_{xi,xi'}(G) plane wave coefficients.

Definition at line 29 of file augmentation_operator.cpp.

◆ generate_pw_coeffs_gvec_deriv()

void sirius::Augmentation_operator::generate_pw_coeffs_gvec_deriv ( int  nu__)

Generate G-vector derivative Q_{xi,xi'}(G)/dG of the plane-wave coefficients *‍/.

Definition at line 132 of file augmentation_operator.cpp.

◆ q_pw() [1/2]

auto const & sirius::Augmentation_operator::q_pw ( ) const
inline

Definition at line 255 of file augmentation_operator.hpp.

◆ q_pw() [2/2]

double sirius::Augmentation_operator::q_pw ( int  i__,
int  ig__ 
) const
inline

Definition at line 260 of file augmentation_operator.hpp.

◆ q_mtrx()

double sirius::Augmentation_operator::q_mtrx ( int  xi1__,
int  xi2__ 
) const
inline

Get values of the Q-matrix.

Definition at line 266 of file augmentation_operator.hpp.

◆ sym_weight() [1/2]

auto const & sirius::Augmentation_operator::sym_weight ( ) const
inline

Definition at line 271 of file augmentation_operator.hpp.

◆ sym_weight() [2/2]

double sirius::Augmentation_operator::sym_weight ( int  idx__) const
inline

Weight of Q_{\xi,\xi'}.

2 if off-diagonal (xi != xi'), 1 if diagonal (xi=xi')

Definition at line 278 of file augmentation_operator.hpp.

◆ atom_type()

Atom_type const & sirius::Augmentation_operator::atom_type ( ) const
inline

Definition at line 283 of file augmentation_operator.hpp.

Member Data Documentation

◆ atom_type_

Atom_type const& sirius::Augmentation_operator::atom_type_
private

Definition at line 113 of file augmentation_operator.hpp.

◆ gvec_

fft::Gvec const& sirius::Augmentation_operator::gvec_
private

Definition at line 115 of file augmentation_operator.hpp.

◆ q_mtrx_

sddk::mdarray<double, 2> sirius::Augmentation_operator::q_mtrx_
private

Definition at line 117 of file augmentation_operator.hpp.

◆ q_pw_

sddk::mdarray<double, 2> sirius::Augmentation_operator::q_pw_
private

Definition at line 119 of file augmentation_operator.hpp.

◆ sym_weight_

sddk::mdarray<double, 1> sirius::Augmentation_operator::sym_weight_
private

Definition at line 121 of file augmentation_operator.hpp.

◆ zilm_

sddk::mdarray<std::complex<double>, 1> sirius::Augmentation_operator::zilm_
private

Definition at line 123 of file augmentation_operator.hpp.

◆ ri_values_

sddk::mdarray<double, 3> sirius::Augmentation_operator::ri_values_
private

Definition at line 125 of file augmentation_operator.hpp.

◆ ri_dq_values_

sddk::mdarray<double, 3> sirius::Augmentation_operator::ri_dq_values_
private

Definition at line 126 of file augmentation_operator.hpp.

◆ idx_

sddk::mdarray<int, 2> sirius::Augmentation_operator::idx_
private

Definition at line 128 of file augmentation_operator.hpp.

◆ l_by_lm_

sddk::mdarray<int, 1> sirius::Augmentation_operator::l_by_lm_
private

Definition at line 130 of file augmentation_operator.hpp.


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