SIRIUS 7.5.0
Electronic structure library and applications
|
Defines the properties of atom type. More...
#include <atom_type.hpp>
Public Member Functions | |
Atom_type (Simulation_parameters const ¶meters__, std::string symbol__, std::string name__, int zn__, double mass__, std::vector< atomic_level_descriptor > const &levels__) | |
Constructor. More... | |
Atom_type (Simulation_parameters const ¶meters__, int id__, std::string label__, std::string file_name__) | |
Constructor. More... | |
Atom_type (Atom_type &&src)=default | |
Move constructor. | |
void | init () |
Initialize the atom type. More... | |
void | init_free_atom_density (bool smooth) |
Initialize the free atom density (smooth or true). More... | |
void | add_hubbard_orbital (int n__, int l__, double occ__, double U, double J, const double *hub_coef__, double alpha__, double beta__, double J0__, std::vector< double > initial_occupancy__, const bool use_for_calculations__) |
Add a hubbard orbital to a list. More... | |
void | print_info (std::ostream &out__) const |
Print basic info to standard output. More... | |
void | set_radial_grid (radial_grid_t grid_type__, int num_points__, double rmin__, double rmax__, double p__) |
Set the radial grid of the given type. More... | |
void | set_radial_grid (int num_points__, double const *points__) |
Set external radial grid. More... | |
void | set_free_atom_radial_grid (int num_points__, double const *points__) |
Set radial grid of the free atom. More... | |
void | set_free_atom_radial_grid (Radial_grid< double > &&rgrid__) |
void | add_aw_descriptor (int n, int l, double enu, int dme, int auto_enu) |
Add augmented-wave descriptor. More... | |
void | add_lo_descriptor (int ilo, int n, int l, double enu, int dme, int auto_enu) |
Add local orbital descriptor. More... | |
void | add_lo_descriptor (local_orbital_descriptor const &lod__) |
Add the entire local orbital descriptor. More... | |
void | add_ps_atomic_wf (int n__, angular_momentum am__, std::vector< double > f__, double occ__=0.0) |
Add atomic radial function to the list. More... | |
auto const & | ps_atomic_wf (int idx__) const |
Return a tuple describing a given atomic radial function. More... | |
void | add_beta_radial_function (angular_momentum am__, std::vector< double > beta__) |
Add a radial function of beta-projector to a list of functions. More... | |
int | num_beta_radial_functions () const |
Number of beta-radial functions. More... | |
auto const & | beta_radial_function (rf_index idxrf__) const |
Return a radial beta function. More... | |
void | add_q_radial_function (int idxrf1__, int idxrf2__, int l__, std::vector< double > qrf__) |
Add radial function of the augmentation charge. More... | |
bool | augment () const |
Return true if this atom type has an augementation charge. More... | |
std::vector< double > & | local_potential (std::vector< double > vloc__) |
Set the radial function of the local potential. More... | |
std::vector< double > const & | local_potential () const |
Get the radial function of the local potential. More... | |
std::vector< double > & | ps_core_charge_density (std::vector< double > ps_core__) |
std::vector< double > const & | ps_core_charge_density () const |
std::vector< double > & | ps_total_charge_density (std::vector< double > ps_dens__) |
std::vector< double > const & | ps_total_charge_density () const |
void | add_ae_paw_wf (std::vector< double > f__) |
Add all-electron PAW wave-function. More... | |
std::vector< double > const & | ae_paw_wf (int i__) const |
Get all-electron PAW wave-function. More... | |
int | num_ae_paw_wf () const |
Get the number of all-electron PAW wave-functions. More... | |
void | add_ps_paw_wf (std::vector< double > f__) |
std::vector< double > const & | ps_paw_wf (int i__) const |
int | num_ps_paw_wf () const |
auto const & | ae_paw_wfs_array () const |
auto const & | ps_paw_wfs_array () const |
auto const & | paw_ae_core_charge_density () const |
auto & | paw_ae_core_charge_density (std::vector< double > inp__) |
auto const & | paw_wf_occ () const |
auto & | paw_wf_occ (std::vector< double > inp__) |
int | id () const |
Return atom type id. More... | |
int | zn () const |
Return ionic charge (as positive integer). More... | |
int | zn (int zn__) |
Set ionic charge. More... | |
std::string const & | symbol () const |
std::string const & | name () const |
double | mass () const |
Return atomic mass. More... | |
double | mt_radius () const |
Return muffin-tin radius. More... | |
int | num_mt_points () const |
Return number of muffin-tin radial grid points. More... | |
Radial_grid< double > const & | radial_grid () const |
Radial_grid< double > const & | free_atom_radial_grid () const |
double | radial_grid (int ir) const |
double | free_atom_radial_grid (int ir) const |
int | num_atomic_levels () const |
atomic_level_descriptor const & | atomic_level (int idx) const |
double | num_core_electrons () const |
double | num_valence_electrons () const |
double | free_atom_density (const int idx) const |
Get free atom density at i-th point of radial grid. More... | |
double | free_atom_density (double x) const |
Get free atom density at point x. More... | |
void | free_atom_density (std::vector< double > rho__) |
Set the free atom all-electron density. More... | |
int | num_aw_descriptors () const |
auto const & | aw_descriptor (int l) const |
int | num_lo_descriptors () const |
auto const & | lo_descriptor (int idx) const |
int | max_aw_order () const |
int | aw_order (int l__) const |
Order of augmented wave radial functions for a given l. More... | |
auto const & | indexr () const |
Return const reference to the index of radial functions. More... | |
auto const & | indexr_wfs () const |
auto const & | indexr_hub () const |
auto const & | indexr (int i) const |
int | indexr_by_l_order (int l, int order) const |
int | indexr_by_idxlo (int idxlo) const |
auto const & | indexb () const |
auto const & | indexb (int i) const |
int | indexb_by_l_m_order (int l, int m, int order) const |
int | indexb_by_lm_order (int lm, int order) const |
int | mt_aw_basis_size () const |
int | mt_lo_basis_size () const |
int | mt_basis_size () const |
Total number of muffin-tin basis functions (APW + LO). More... | |
int | mt_radial_basis_size () const |
Total number of radial basis functions. More... | |
auto const & | indexb_wfs () const |
auto const & | indexb_hub () const |
Return whole index of hubbard basis functions. More... | |
auto const & | hubbard_radial_function (int i) const |
void | set_symbol (const std::string symbol__) |
void | set_zn (int zn__) |
void | set_mass (double mass__) |
void | set_configuration (int n, int l, int k, double occupancy, bool core) |
int | num_atoms () const |
Return number of atoms of a given type. More... | |
int | atom_id (int idx) const |
Return atom ID (global index) by the index of atom within a given type. More... | |
void | add_atom_id (int atom_id__) |
Add global index of atom to this atom type. More... | |
bool | initialized () const |
std::string const & | label () const |
std::string const & | file_name () const |
void | d_mtrx_ion (sddk::matrix< double > const &d_mtrx_ion__) |
auto const & | d_mtrx_ion () const |
bool | is_paw () const |
bool | is_paw (bool is_paw__) |
double | paw_core_energy () const |
double | paw_core_energy (double paw_core_energy__) |
auto const & | idx_radial_integrals () const |
auto & | rf_coef () const |
auto & | vrf_coef () const |
auto const & | parameters () const |
auto | f_coefficients (int xi1, int xi2, int s1, int s2) const |
auto const & | q_radial_function (int idxrf1__, int idxrf2__, int l__) const |
bool | spin_orbit_coupling () const |
bool | spin_orbit_coupling (bool so__) |
bool | hubbard_correction () const |
Get the Hubbard correction switch. More... | |
bool | hubbard_correction (bool ldapu__) |
Set the Hubbard correction switch. More... | |
bool | compare_index_beta_functions (const int xi, const int xj) const |
Compare indices of beta projectors. More... | |
const auto & | lo_descriptor_hub () const |
auto const & | lo_descriptor_hub (int idx__) const |
int | lmax_apw () const |
int | lmmax_apw () const |
int | lmax_lo () const |
int | lmax_ps_atomic_wf () const |
Return maximum orbital quantum number for the atomic wave-functions. More... | |
int | lmax_beta () const |
Maximum orbital quantum number between all beta-projector radial functions. More... | |
auto const & | gaunt_coefs () const |
Protected Attributes | |
Radial_grid< double > | radial_grid_ |
Radial grid of the muffin-tin sphere. More... | |
Spline< double > | free_atom_density_spline_ |
Density of a free atom. More... | |
std::vector< double > | free_atom_density_ |
Density of a free atom as read from the input file. More... | |
Radial_grid< double > | free_atom_radial_grid_ |
Radial grid of a free atom. More... | |
Private Member Functions | |
void | read_hubbard_input () |
Pass information from the hubbard input section (parsed in input.hpp) to the atom type. More... | |
void | generate_f_coefficients () |
Generate coefficients used in spin-orbit case. More... | |
void | read_input_core (nlohmann::json const &parser) |
void | read_input_aw (nlohmann::json const &parser) |
void | read_input_lo (nlohmann::json const &parser) |
void | read_pseudo_uspp (nlohmann::json const &parser) |
void | read_pseudo_paw (nlohmann::json const &parser) |
void | read_input (std::string const &str__) |
Read atomic parameters from json file or string. More... | |
void | init_aw_descriptors () |
Initialize descriptors of the augmented-wave radial functions. More... | |
Atom_type (Atom_type const &src)=delete | |
Atom_type & | operator= (Atom_type const &src)=delete |
Private Attributes | |
Simulation_parameters const & | parameters_ |
Basic parameters. More... | |
int | id_ {-1} |
Unique id of atom type in the range [0, \( N_{types} \)). More... | |
std::string | label_ |
Unique string label for the atom type. More... | |
std::string | symbol_ |
Chemical element symbol. More... | |
std::string | name_ |
Chemical element name. More... | |
int | zn_ {0} |
Nucleus charge or pseudocharge, treated as positive(!) integer. More... | |
double | mass_ {0} |
Atom mass. More... | |
std::vector< atomic_level_descriptor > | atomic_levels_ |
List of atomic levels. More... | |
double | num_core_electrons_ {0} |
Number of core electrons. More... | |
double | num_valence_electrons_ {0} |
Number of valence electrons. More... | |
radial_solution_descriptor_set | aw_default_l_ |
Default augmented wave configuration. More... | |
std::vector< radial_solution_descriptor_set > | aw_specific_l_ |
Augmented wave configuration for specific l. More... | |
std::vector< radial_solution_descriptor_set > | aw_descriptors_ |
List of radial descriptor sets used to construct augmented waves. More... | |
std::vector< local_orbital_descriptor > | lo_descriptors_ |
List of radial descriptor sets used to construct local orbitals. More... | |
int | max_aw_order_ {0} |
Maximum number of AW radial functions across angular momentums. More... | |
radial_functions_index | indexr_ |
Index of radial basis functions. More... | |
basis_functions_index | indexb_ |
Index of atomic basis functions (radial function * spherical harmonic). More... | |
radial_functions_index | indexr_wfs_ |
Index for the radial atomic functions. More... | |
basis_functions_index | indexb_wfs_ |
Index of atomic wavefunctions (radial function * spherical harmonic). More... | |
std::vector< hubbard_orbital_descriptor > | lo_descriptors_hub_ |
List of Hubbard orbital descriptors. More... | |
radial_functions_index | indexr_hub_ |
Index of radial functions for hubbard orbitals. More... | |
basis_functions_index | indexb_hub_ |
Index of basis functions for hubbard orbitals. More... | |
std::vector< std::pair< angular_momentum, Spline< double > > > | beta_radial_functions_ |
Radial functions of beta-projectors. More... | |
std::vector< ps_atomic_wf_descriptor > | ps_atomic_wfs_ |
Atomic wave-functions used to setup the initial subspace and to apply U-correction. More... | |
sddk::mdarray< Spline< double >, 2 > | q_radial_functions_l_ |
Radial functions of the Q-operator. More... | |
bool | augment_ {false} |
True if the pseudopotential is soft and charge augmentation is required. More... | |
std::vector< double > | local_potential_ |
Local part of pseudopotential. More... | |
std::vector< double > | ps_core_charge_density_ |
Pseudo-core charge density (used by PP-PW method in non-linear core correction). More... | |
std::vector< double > | ps_total_charge_density_ |
Total pseudo-charge density (used by PP-PW method to setup initial density). More... | |
sddk::mdarray< double, 2 > | d_mtrx_ion_ |
Ionic part of D-operator matrix. More... | |
bool | is_paw_ {false} |
True if the pseudopotential is used for PAW. More... | |
bool | paw_core_energy_ {0} |
Core energy of PAW. More... | |
std::vector< std::vector< double > > | ae_paw_wfs_ |
List of all-electron wave functions of the PAW method. More... | |
sddk::mdarray< double, 2 > | ae_paw_wfs_array_ |
All-electron wave functions of the PAW method packed in a single array. More... | |
std::vector< std::vector< double > > | ps_paw_wfs_ |
List of pseudo wave functions of the PAW method. More... | |
sddk::mdarray< double, 2 > | ps_paw_wfs_array_ |
Pseudo wave functions of the PAW method packed in a single array. More... | |
std::vector< double > | paw_wf_occ_ |
Occupations of PAW wave-functions. More... | |
std::vector< double > | paw_ae_core_charge_density_ |
Core electron contribution to all electron charge density in PAW method. More... | |
bool | spin_orbit_coupling_ {false} |
True if the pseudo potential includes spin orbit coupling. More... | |
bool | hubbard_correction_ {false} |
Hubbard correction. More... | |
sddk::matrix< std::complex< double > > | p_mtrx_ |
Inverse of (Q_{\xi \xi'j}^{-1} + beta_pw^{H}_{\xi} * beta_pw_{xi'}) More... | |
sddk::mdarray< std::complex< double >, 4 > | f_coefficients_ |
std::vector< int > | atom_id_ |
List of atom indices (global) for a given type. More... | |
std::string | file_name_ |
Name of the input file for this atom type. More... | |
sddk::mdarray< int, 2 > | idx_radial_integrals_ |
sddk::mdarray< double, 3 > | rf_coef_ |
sddk::mdarray< double, 3 > | vrf_coef_ |
std::unique_ptr< Gaunt_coefficients< std::complex< double > > > | gaunt_coefs_ {nullptr} |
Non-zero Gaunt coefficients. More... | |
int | lmax_apw_ {-1} |
Maximul orbital quantum number of LAPW basis functions. More... | |
bool | initialized_ {false} |
True if the atom type was initialized. More... | |
Defines the properties of atom type.
Atoms wth the same properties are grouped by type.
Definition at line 92 of file atom_type.hpp.
|
inline |
Constructor.
Basic parameters of atom type are passed as constructor arguments.
Definition at line 339 of file atom_type.hpp.
|
inline |
Constructor.
ID of atom type and label are passed as arguments. The rest of parameters are obtained from the species input file.
Definition at line 353 of file atom_type.hpp.
|
private |
Pass information from the hubbard input section (parsed in input.hpp) to the atom type.
Definition at line 803 of file atom_type.cpp.
|
private |
Generate coefficients used in spin-orbit case.
Definition at line 749 of file atom_type.cpp.
|
inlineprivate |
Definition at line 382 of file atom_type.cpp.
|
inlineprivate |
Definition at line 444 of file atom_type.cpp.
|
inlineprivate |
Definition at line 474 of file atom_type.cpp.
|
inlineprivate |
Definition at line 504 of file atom_type.cpp.
|
inlineprivate |
Definition at line 646 of file atom_type.cpp.
|
inlineprivate |
Read atomic parameters from json file or string.
Definition at line 701 of file atom_type.cpp.
|
inlineprivate |
Initialize descriptors of the augmented-wave radial functions.
Definition at line 291 of file atom_type.hpp.
void sirius::Atom_type::init | ( | ) |
Initialize the atom type.
Once the unit cell is populated with all atom types and atoms, each atom type can be initialized.
Definition at line 31 of file atom_type.cpp.
void sirius::Atom_type::init_free_atom_density | ( | bool | smooth | ) |
Initialize the free atom density (smooth or true).
Definition at line 241 of file atom_type.cpp.
void sirius::Atom_type::add_hubbard_orbital | ( | int | n__, |
int | l__, | ||
double | occ__, | ||
double | U, | ||
double | J, | ||
const double * | hub_coef__, | ||
double | alpha__, | ||
double | beta__, | ||
double | J0__, | ||
std::vector< double > | initial_occupancy__, | ||
const bool | use_for_calculations__ | ||
) |
Add a hubbard orbital to a list.
All atomic functions must already be loaded prior to callinig this function. Atomic wave-functions (chi in the uspp file) are used as a definition of "localized orbitals" to which U-correction is applied. Full treatment of spin is not considered. In case of spinor wave-functions the are averaged between l+1/2 and l-1/2 states.
Definition at line 889 of file atom_type.cpp.
void sirius::Atom_type::print_info | ( | std::ostream & | out__ | ) | const |
Print basic info to standard output.
Definition at line 277 of file atom_type.cpp.
|
inline |
Set the radial grid of the given type.
Definition at line 384 of file atom_type.hpp.
|
inline |
Set external radial grid.
Definition at line 393 of file atom_type.hpp.
|
inline |
Set radial grid of the free atom.
The grid is extended to effective infinity (usually > 100 a.u.)
Definition at line 403 of file atom_type.hpp.
|
inline |
Definition at line 411 of file atom_type.hpp.
|
inline |
Add augmented-wave descriptor.
Definition at line 417 of file atom_type.hpp.
|
inline |
Add local orbital descriptor.
Definition at line 445 of file atom_type.hpp.
|
inline |
Add the entire local orbital descriptor.
Definition at line 485 of file atom_type.hpp.
|
inline |
Add atomic radial function to the list.
Definition at line 491 of file atom_type.hpp.
|
inline |
Return a tuple describing a given atomic radial function.
Definition at line 506 of file atom_type.hpp.
|
inline |
Add a radial function of beta-projector to a list of functions.
This is the only allowed way to add beta projectors.
Definition at line 513 of file atom_type.hpp.
|
inline |
Number of beta-radial functions.
Definition at line 523 of file atom_type.hpp.
|
inline |
Return a radial beta function.
Definition at line 529 of file atom_type.hpp.
|
inline |
Add radial function of the augmentation charge.
Radial functions of beta projectors must be added already. Their total number will be used to deterimine the storage size for the radial functions of the augmented charge.
Definition at line 537 of file atom_type.hpp.
|
inline |
Return true if this atom type has an augementation charge.
Definition at line 569 of file atom_type.hpp.
|
inline |
Set the radial function of the local potential.
Definition at line 575 of file atom_type.hpp.
|
inline |
Get the radial function of the local potential.
Definition at line 582 of file atom_type.hpp.
|
inline |
Definition at line 587 of file atom_type.hpp.
|
inline |
Definition at line 593 of file atom_type.hpp.
|
inline |
Definition at line 598 of file atom_type.hpp.
|
inline |
Definition at line 604 of file atom_type.hpp.
|
inline |
Add all-electron PAW wave-function.
Definition at line 610 of file atom_type.hpp.
|
inline |
Get all-electron PAW wave-function.
Definition at line 616 of file atom_type.hpp.
|
inline |
Get the number of all-electron PAW wave-functions.
Definition at line 622 of file atom_type.hpp.
|
inline |
Definition at line 627 of file atom_type.hpp.
|
inline |
Definition at line 632 of file atom_type.hpp.
|
inline |
Definition at line 637 of file atom_type.hpp.
|
inline |
Definition at line 642 of file atom_type.hpp.
|
inline |
Definition at line 647 of file atom_type.hpp.
|
inline |
Definition at line 652 of file atom_type.hpp.
|
inline |
Definition at line 657 of file atom_type.hpp.
|
inline |
Definition at line 663 of file atom_type.hpp.
|
inline |
Definition at line 668 of file atom_type.hpp.
|
inline |
Return atom type id.
Definition at line 675 of file atom_type.hpp.
|
inline |
Return ionic charge (as positive integer).
Definition at line 681 of file atom_type.hpp.
|
inline |
Set ionic charge.
Definition at line 688 of file atom_type.hpp.
|
inline |
Definition at line 694 of file atom_type.hpp.
|
inline |
Definition at line 699 of file atom_type.hpp.
|
inline |
Return atomic mass.
Definition at line 705 of file atom_type.hpp.
|
inline |
Return muffin-tin radius.
This is the last point of the radial grid.
Definition at line 712 of file atom_type.hpp.
|
inline |
Return number of muffin-tin radial grid points.
Definition at line 718 of file atom_type.hpp.
|
inline |
Definition at line 724 of file atom_type.hpp.
|
inline |
Definition at line 730 of file atom_type.hpp.
|
inline |
Definition at line 735 of file atom_type.hpp.
|
inline |
Definition at line 740 of file atom_type.hpp.
|
inline |
Definition at line 745 of file atom_type.hpp.
|
inline |
Definition at line 750 of file atom_type.hpp.
|
inline |
Definition at line 755 of file atom_type.hpp.
|
inline |
Definition at line 760 of file atom_type.hpp.
|
inline |
Get free atom density at i-th point of radial grid.
Definition at line 766 of file atom_type.hpp.
|
inline |
Get free atom density at point x.
Definition at line 772 of file atom_type.hpp.
|
inline |
Set the free atom all-electron density.
Definition at line 778 of file atom_type.hpp.
|
inline |
Definition at line 783 of file atom_type.hpp.
|
inline |
Definition at line 788 of file atom_type.hpp.
|
inline |
Definition at line 794 of file atom_type.hpp.
|
inline |
Definition at line 799 of file atom_type.hpp.
|
inline |
Definition at line 804 of file atom_type.hpp.
|
inline |
Order of augmented wave radial functions for a given l.
Definition at line 810 of file atom_type.hpp.
|
inline |
Return const reference to the index of radial functions.
The index can be used to determine the total number of radial functions
Definition at line 817 of file atom_type.hpp.
|
inline |
Definition at line 822 of file atom_type.hpp.
|
inline |
Definition at line 827 of file atom_type.hpp.
|
inline |
Definition at line 832 of file atom_type.hpp.
|
inline |
Definition at line 838 of file atom_type.hpp.
|
inline |
Definition at line 843 of file atom_type.hpp.
|
inline |
Definition at line 848 of file atom_type.hpp.
|
inline |
Definition at line 853 of file atom_type.hpp.
|
inline |
Definition at line 859 of file atom_type.hpp.
|
inline |
Definition at line 864 of file atom_type.hpp.
|
inline |
Definition at line 869 of file atom_type.hpp.
|
inline |
Definition at line 874 of file atom_type.hpp.
|
inline |
Total number of muffin-tin basis functions (APW + LO).
Definition at line 880 of file atom_type.hpp.
|
inline |
Total number of radial basis functions.
Definition at line 886 of file atom_type.hpp.
|
inline |
Definition at line 891 of file atom_type.hpp.
|
inline |
Return whole index of hubbard basis functions.
Definition at line 897 of file atom_type.hpp.
|
inline |
Definition at line 902 of file atom_type.hpp.
|
inline |
Definition at line 907 of file atom_type.hpp.
|
inline |
Definition at line 912 of file atom_type.hpp.
|
inline |
Definition at line 917 of file atom_type.hpp.
|
inline |
Definition at line 922 of file atom_type.hpp.
|
inline |
Return number of atoms of a given type.
Definition at line 934 of file atom_type.hpp.
|
inline |
Return atom ID (global index) by the index of atom within a given type.
Definition at line 940 of file atom_type.hpp.
|
inline |
Add global index of atom to this atom type.
Definition at line 946 of file atom_type.hpp.
|
inline |
Definition at line 951 of file atom_type.hpp.
|
inline |
Definition at line 956 of file atom_type.hpp.
|
inline |
Definition at line 961 of file atom_type.hpp.
|
inline |
Definition at line 966 of file atom_type.hpp.
|
inline |
Definition at line 973 of file atom_type.hpp.
|
inline |
Definition at line 978 of file atom_type.hpp.
|
inline |
Definition at line 983 of file atom_type.hpp.
|
inline |
Definition at line 989 of file atom_type.hpp.
|
inline |
Definition at line 994 of file atom_type.hpp.
|
inline |
Definition at line 1000 of file atom_type.hpp.
|
inline |
Definition at line 1005 of file atom_type.hpp.
|
inline |
Definition at line 1010 of file atom_type.hpp.
|
inline |
Definition at line 1015 of file atom_type.hpp.
|
inline |
Definition at line 1020 of file atom_type.hpp.
|
inline |
Definition at line 1025 of file atom_type.hpp.
|
inline |
Definition at line 1036 of file atom_type.hpp.
|
inline |
Definition at line 1041 of file atom_type.hpp.
|
inline |
Get the Hubbard correction switch.
Definition at line 1048 of file atom_type.hpp.
|
inline |
Set the Hubbard correction switch.
Definition at line 1054 of file atom_type.hpp.
|
inline |
Compare indices of beta projectors.
Compare the angular, total angular momentum and radial part of the beta projectors, leaving the m index free. Only useful when spin orbit coupling is included.
Definition at line 1063 of file atom_type.hpp.
|
inline |
Return a vector containing all information about the localized atomic orbitals used to generate the Hubbard subspace.
Definition at line 1070 of file atom_type.hpp.
|
inline |
Definition at line 1075 of file atom_type.hpp.
|
inline |
Definition at line 1080 of file atom_type.hpp.
|
inline |
Definition at line 1089 of file atom_type.hpp.
|
inline |
Definition at line 1094 of file atom_type.hpp.
|
inline |
Return maximum orbital quantum number for the atomic wave-functions.
Definition at line 1104 of file atom_type.hpp.
|
inline |
Maximum orbital quantum number between all beta-projector radial functions.
Definition at line 1115 of file atom_type.hpp.
|
inline |
Definition at line 1125 of file atom_type.hpp.
|
private |
Basic parameters.
Definition at line 96 of file atom_type.hpp.
|
private |
Unique id of atom type in the range [0, \( N_{types} \)).
Definition at line 99 of file atom_type.hpp.
|
private |
Unique string label for the atom type.
Definition at line 102 of file atom_type.hpp.
|
private |
Chemical element symbol.
Definition at line 105 of file atom_type.hpp.
|
private |
Chemical element name.
Definition at line 108 of file atom_type.hpp.
|
private |
Nucleus charge or pseudocharge, treated as positive(!) integer.
Definition at line 111 of file atom_type.hpp.
|
private |
Atom mass.
Definition at line 114 of file atom_type.hpp.
|
private |
List of atomic levels.
Low-energy levels are core states. Information about core states is defined in the species file.
Definition at line 118 of file atom_type.hpp.
|
private |
Number of core electrons.
Definition at line 121 of file atom_type.hpp.
|
private |
Number of valence electrons.
Definition at line 124 of file atom_type.hpp.
|
private |
Default augmented wave configuration.
Definition at line 127 of file atom_type.hpp.
|
private |
Augmented wave configuration for specific l.
Definition at line 130 of file atom_type.hpp.
|
private |
List of radial descriptor sets used to construct augmented waves.
Definition at line 133 of file atom_type.hpp.
|
private |
List of radial descriptor sets used to construct local orbitals.
In case of LAPW this list defines all local orbitals for a given atom type. In case of PP-PW this is a list of all beta-projectors.
Definition at line 138 of file atom_type.hpp.
|
private |
Maximum number of AW radial functions across angular momentums.
Definition at line 141 of file atom_type.hpp.
|
private |
Index of radial basis functions.
In LAPW this index is used to iterate over combined set of APW and local-orbital radial functions. In pseudo_potential case this index is used to iterate over radial part of beta-projectors.
Definition at line 146 of file atom_type.hpp.
|
private |
Index of atomic basis functions (radial function * spherical harmonic).
This index is used in LAPW to combine APW and local-orbital muffin-tin functions
Definition at line 150 of file atom_type.hpp.
|
private |
Index for the radial atomic functions.
Definition at line 153 of file atom_type.hpp.
|
private |
Index of atomic wavefunctions (radial function * spherical harmonic).
Definition at line 156 of file atom_type.hpp.
|
private |
List of Hubbard orbital descriptors.
List of sirius::hubbard_orbital_descriptor for each orbital. Each element of the list contains information about radial function and U and J parameters for the Hubbard correction. The list is compatible with the indexr_hub_ radial index.
Definition at line 162 of file atom_type.hpp.
|
private |
Index of radial functions for hubbard orbitals.
Definition at line 165 of file atom_type.hpp.
|
private |
Index of basis functions for hubbard orbitals.
Definition at line 168 of file atom_type.hpp.
|
private |
Radial functions of beta-projectors.
This are the beta-function in the USPP file. Pairs of [l, beta_l(r)] are stored. In case of spin-orbit coupling orbital quantum numbers in this list can be positive and negative. This is used to derive the total angular momentum of the orbitals:
\[ j = \left\{ \begin{array}{ll} |\ell| - 0.5 & \ell < 0 \\ \ell + 0.5 & \ell > 0 \end{array} \right. \]
Definition at line 181 of file atom_type.hpp.
|
private |
Atomic wave-functions used to setup the initial subspace and to apply U-correction.
This are the chi wave-function in the USPP file. Lists of [n, j, occ, chi_l(r)] are stored. In case of spin-orbit coupling orbital angular quantum number j is equal to l +/- 1/2. Otherwise it is just l.
Definition at line 186 of file atom_type.hpp.
|
private |
Radial functions of the Q-operator.
The dimension of this array is fully determined by the number and lmax of beta-projectors. Beta-projectors must be loaded before loading the Q radial functions.
Definition at line 191 of file atom_type.hpp.
|
private |
True if the pseudopotential is soft and charge augmentation is required.
Definition at line 194 of file atom_type.hpp.
|
private |
Local part of pseudopotential.
Definition at line 197 of file atom_type.hpp.
|
private |
Pseudo-core charge density (used by PP-PW method in non-linear core correction).
Definition at line 200 of file atom_type.hpp.
|
private |
Total pseudo-charge density (used by PP-PW method to setup initial density).
Definition at line 203 of file atom_type.hpp.
|
private |
Ionic part of D-operator matrix.
Definition at line 206 of file atom_type.hpp.
|
private |
True if the pseudopotential is used for PAW.
Definition at line 209 of file atom_type.hpp.
|
private |
Core energy of PAW.
Definition at line 212 of file atom_type.hpp.
|
private |
List of all-electron wave functions of the PAW method.
Definition at line 215 of file atom_type.hpp.
|
private |
All-electron wave functions of the PAW method packed in a single array.
The number of wave functions is equal to the number of beta-projectors.
Definition at line 219 of file atom_type.hpp.
|
private |
List of pseudo wave functions of the PAW method.
Definition at line 222 of file atom_type.hpp.
|
private |
Pseudo wave functions of the PAW method packed in a single array.
The number of wave functions is equal to the number of beta-projectors.
Definition at line 226 of file atom_type.hpp.
|
private |
Occupations of PAW wave-functions.
Length of vector is the same as the number of beta projectors. This is used for the initial guess of oribtal occupancies.
Definition at line 231 of file atom_type.hpp.
|
private |
Core electron contribution to all electron charge density in PAW method.
Definition at line 234 of file atom_type.hpp.
|
private |
True if the pseudo potential includes spin orbit coupling.
Definition at line 237 of file atom_type.hpp.
|
private |
Hubbard correction.
Definition at line 240 of file atom_type.hpp.
|
private |
Inverse of (Q_{\xi \xi'j}^{-1} + beta_pw^{H}_{\xi} * beta_pw_{xi'})
Used in Chebyshev iterative solver as a block-diagonal preconditioner
Definition at line 244 of file atom_type.hpp.
|
private |
f_coefficients defined in doi:10.1103/PhysRevB.71.115106 Eq.9 only valid when SO interactions are on
Definition at line 248 of file atom_type.hpp.
|
private |
List of atom indices (global) for a given type.
Definition at line 251 of file atom_type.hpp.
|
private |
Name of the input file for this atom type.
Definition at line 254 of file atom_type.hpp.
|
private |
Definition at line 256 of file atom_type.hpp.
|
mutableprivate |
Definition at line 258 of file atom_type.hpp.
|
mutableprivate |
Definition at line 259 of file atom_type.hpp.
|
private |
Non-zero Gaunt coefficients.
Definition at line 262 of file atom_type.hpp.
|
private |
Maximul orbital quantum number of LAPW basis functions.
Definition at line 265 of file atom_type.hpp.
|
private |
True if the atom type was initialized.
After initialization it is forbidden to modify the parameters of the atom type.
Definition at line 269 of file atom_type.hpp.
|
protected |
Radial grid of the muffin-tin sphere.
Definition at line 324 of file atom_type.hpp.
|
protected |
Density of a free atom.
Definition at line 327 of file atom_type.hpp.
|
protected |
Density of a free atom as read from the input file.
Does not contain 4 Pi and r^2 prefactors.
Definition at line 331 of file atom_type.hpp.
|
protected |
Radial grid of a free atom.
Definition at line 334 of file atom_type.hpp.