|
| Atom (Atom_type const &type__, r3::vector< double > position__, r3::vector< double > vector_field__) |
| Constructor. More...
|
|
void | init () |
| Initialize atom. More...
|
|
void | generate_radial_integrals (sddk::device_t pu__, mpi::Communicator const &comm__) |
| Generate radial Hamiltonian and effective magnetic field integrals. More...
|
|
Atom_type const & | type () const |
| Return const reference to corresponding atom type object. More...
|
|
Atom_symmetry_class & | symmetry_class () |
| Return reference to corresponding atom symmetry class. More...
|
|
Atom_symmetry_class const & | symmetry_class () const |
| Return const referenced to atom symmetry class. More...
|
|
int | type_id () const |
| Return atom type id. More...
|
|
r3::vector< double > const & | position () const |
| Return atom position in fractional coordinates. More...
|
|
void | set_position (r3::vector< double > position__) |
| Set atom position in fractional coordinates. More...
|
|
auto | vector_field () const |
| Return vector field. More...
|
|
int | symmetry_class_id () const |
| Return id of the symmetry class. More...
|
|
void | set_symmetry_class (std::shared_ptr< Atom_symmetry_class > symmetry_class__) |
| Set symmetry class of the atom. More...
|
|
void | set_nonspherical_potential (double *veff__, double *beff__[3]) |
| Set muffin-tin potential and magnetic field. More...
|
|
void | sync_radial_integrals (mpi::Communicator const &comm__, int const rank__) |
|
void | sync_occupation_matrix (mpi::Communicator const &comm__, int const rank__) |
|
double const * | h_radial_integrals (int idxrf1, int idxrf2) const |
|
double * | h_radial_integrals (int idxrf1, int idxrf2) |
|
double const * | b_radial_integrals (int idxrf1, int idxrf2, int x) const |
|
template<spin_block_t sblock> |
std::complex< double > | radial_integrals_sum_L3 (int idxrf1__, int idxrf2__, std::vector< gaunt_L3< std::complex< double > > > const &gnt__) const |
|
int | num_mt_points () const |
|
Radial_grid< double > const & | radial_grid () const |
|
double | radial_grid (int idx) const |
|
double | mt_radius () const |
|
int | zn () const |
|
int | mt_basis_size () const |
|
int | mt_aw_basis_size () const |
|
int | mt_lo_basis_size () const |
|
void | set_occupation_matrix (const std::complex< double > *source) |
|
void | get_occupation_matrix (std::complex< double > *destination) |
|
void | set_uj_correction_matrix (const int l, const std::complex< double > *source) |
|
bool | apply_uj_correction () |
|
int | uj_correction_l () |
|
auto | uj_correction_matrix (int lm1, int lm2, int ispn1, int ispn2) |
|
double & | d_mtrx (int xi1, int xi2, int iv) |
|
double const & | d_mtrx (int xi1, int xi2, int iv) const |
|
auto const & | d_mtrx () const |
|
auto & | d_mtrx () |
|
Data and methods specific to the actual atom in the unit cell.
Definition at line 36 of file atom.hpp.
Generate radial Hamiltonian and effective magnetic field integrals.
Hamiltonian operator has the following representation inside muffin-tins:
\[ \hat H = -\frac{1}{2}\nabla^2 + \sum_{\ell m} V_{\ell m}(r) R_{\ell m}(\hat {\bf r}) = \underbrace{-\frac{1}{2} \nabla^2+V_{00}(r)R_{00}}_{H_{s}(r)} +\sum_{\ell=1} \sum_{m=-\ell}^{\ell} V_{\ell m}(r) R_{\ell m}(\hat {\bf r}) = \sum_{\ell m} \widetilde V_{\ell m}(r) R_{\ell m}(\hat {\bf r}) \]
where
\[ \widetilde V_{\ell m}(r) = \left\{ \begin{array}{ll} \frac{H_{s}(r)}{R_{00}} & \ell = 0 \\ V_{\ell m}(r) & \ell > 0 \end{array} \right. \]
Definition at line 141 of file atom.hpp.
Auxiliary form of the D_{ij} operator matrix of the pseudo-potential method.
The matrix is calculated for the scalar and vector effective fields (thus, it is real and symmetric).
\[ D_{\xi \xi'}^{\alpha} = \int V({\bf r}) Q_{\xi \xi'}^{\alpha}({\bf r}) d{\bf r} \]
The ionic part of the D-operator matrix is added in the D_operator class, when it is initialized.
Definition at line 86 of file atom.hpp.