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

Inherits sirius::Hubbard_matrix.

Public Member Functions

 Occupation_matrix (Simulation_context &ctx__)
 
template<typename T >
void add_k_point_contribution (K_point< T > &kp__)
 
void init ()
 
void reduce ()
 
void update_nonlocal ()
 
void zero ()
 
void print_occupancies (int verbosity__) const
 
auto const & occ_mtrx_T (r3::vector< int > T__) const
 
auto const & occ_mtrx_T () const
 
- Public Member Functions inherited from sirius::Hubbard_matrix
 Hubbard_matrix (Simulation_context &ctx__)
 
void access (std::string const &what__, std::complex< double > *ptr__, int ld__)
 Retrieve or set elements of the Hubbard matrix. More...
 
void print_local (int ia__, std::ostream &out__) const
 
void print_nonlocal (int idx__, std::ostream &out__) const
 
void zero ()
 
auto & local () const
 Return a vector containing the occupation numbers for each atomic orbital. More...
 
auto & local (int ia__)
 
auto const & local (int ia__) const
 
auto & nonlocal () const
 
auto & nonlocal (int idx__)
 
auto const & nonlocal (int idx__) const
 
const auto & atomic_orbitals () const
 
const auto & atomic_orbitals (const int idx__) const
 
int offset (const int idx__) const
 
const auto & offset () const
 
auto const & ctx () const
 
int find_orbital_index (const int ia__, const int n__, const int l__) const
 

Private Attributes

std::map< r3::vector< int >, sddk::mdarray< std::complex< double >, 3 > > occ_mtrx_T_
 K-point contribution to density matrices weighted with e^{ikT} phase factors. More...
 

Friends

void copy (Occupation_matrix const &src__, Occupation_matrix &dest__)
 

Additional Inherited Members

- Protected Attributes inherited from sirius::Hubbard_matrix
Simulation_contextctx_
 
std::vector< sddk::mdarray< std::complex< double >, 3 > > local_
 Local part of Hubbard matrix. More...
 
std::vector< sddk::mdarray< std::complex< double >, 3 > > nonlocal_
 Non-local part of Hubbard matrix. More...
 
std::vector< std::pair< int, int > > atomic_orbitals_
 
std::vector< int > offset_
 

Detailed Description

Definition at line 34 of file occupation_matrix.hpp.

Constructor & Destructor Documentation

◆ Occupation_matrix()

sirius::Occupation_matrix::Occupation_matrix ( Simulation_context ctx__)

Definition at line 31 of file occupation_matrix.cpp.

Member Function Documentation

◆ add_k_point_contribution()

template<typename T >
template void sirius::Occupation_matrix::add_k_point_contribution< double > ( K_point< T > &  kp__)

Definition at line 62 of file occupation_matrix.cpp.

◆ init()

void sirius::Occupation_matrix::init ( )

The initial occupancy is calculated following Hund rules. We first fill the d (f) states according to the hund's rules and with majority spin first and the remaining electrons distributed among the minority states.

Definition at line 226 of file occupation_matrix.cpp.

◆ reduce()

void sirius::Occupation_matrix::reduce ( )
inline

Definition at line 51 of file occupation_matrix.hpp.

◆ update_nonlocal()

void sirius::Occupation_matrix::update_nonlocal ( )
inline

Definition at line 73 of file occupation_matrix.hpp.

◆ zero()

void sirius::Occupation_matrix::zero ( )
inline

Definition at line 106 of file occupation_matrix.hpp.

◆ print_occupancies()

void sirius::Occupation_matrix::print_occupancies ( int  verbosity__) const

Definition at line 330 of file occupation_matrix.cpp.

◆ occ_mtrx_T() [1/2]

auto const & sirius::Occupation_matrix::occ_mtrx_T ( r3::vector< int >  T__) const
inline

Definition at line 116 of file occupation_matrix.hpp.

◆ occ_mtrx_T() [2/2]

auto const & sirius::Occupation_matrix::occ_mtrx_T ( ) const
inline

Definition at line 121 of file occupation_matrix.hpp.

Friends And Related Function Documentation

◆ copy

void copy ( Occupation_matrix const &  src__,
Occupation_matrix dest__ 
)
friend

Definition at line 131 of file occupation_matrix.hpp.

Member Data Documentation

◆ occ_mtrx_T_

std::map<r3::vector<int>, sddk::mdarray<std::complex<double>, 3> > sirius::Occupation_matrix::occ_mtrx_T_
private

K-point contribution to density matrices weighted with e^{ikT} phase factors.

Definition at line 38 of file occupation_matrix.hpp.


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