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

Structure containing all information about a specific hubbard orbital (including the radial function). More...

#include <hubbard_orbitals_descriptor.hpp>

Public Member Functions

 hubbard_orbital_descriptor ()
 Constructor. More...
 
 hubbard_orbital_descriptor (const int n__, const int l__, const int orbital_index__, const double occ__, const double J__, const double U__, const double *hub_coef__, const double alpha__, const double beta__, const double J0__, std::vector< double > initial_occupancy__, Spline< double > f__, bool use_for_calculations__, int idx_wf__)
 Constructor. More...
 
 hubbard_orbital_descriptor (hubbard_orbital_descriptor &&src)
 Move constructor. More...
 
int n () const
 
int l () const
 
double hubbard_matrix (const int m1, const int m2, const int m3, const int m4) const
 
double & hubbard_matrix (const int m1, const int m2, const int m3, const int m4)
 
double J0 () const
 
double U () const
 
double J () const
 
double U_minus_J () const
 
double B () const
 
double E2 () const
 
double E3 () const
 
double alpha () const
 
double beta () const
 
double occupancy () const
 
Spline< double > const & f () const
 
bool use_for_calculation () const
 
auto const & initial_occupancy () const
 
auto idx_wf () const
 

Private Member Functions

auto hubbard_F_coefficients () const
 
void calculate_ak_coefficients (sddk::mdarray< double, 5 > &ak)
 
void compute_hubbard_matrix ()
 
void initialize_hubbard_matrix ()
 

Private Attributes

int n_ {-1}
 Principal quantum number of atomic orbital. More...
 
int l_ {-1}
 Orbital quantum number of atomic orbital. More...
 
bool use_for_calculation_ {true}
 Set to true if this orbital is part the Hubbard subspace. More...
 
double occupancy_ {-1.0}
 Orbital occupancy. More...
 
Spline< double > f_
 
double U_ {0.0}
 Hubbard U parameter (on-site repulsion). More...
 
double J_ {0.0}
 Hubbard J parameter (exchange). More...
 
std::array< double, 4 > hubbard_coefficients_ = {0.0, 0.0, 0.0, 0.0}
 Different hubbard coefficients. More...
 
sddk::mdarray< double, 4 > hubbard_matrix_
 
double alpha_ {0.0}
 
double beta_ {0.0}
 
double J0_ {0.0}
 
std::vector< double > initial_occupancy_
 
int idx_wf_ {-1}
 Index of the corresponding atomic wave-function. More...
 

Detailed Description

Structure containing all information about a specific hubbard orbital (including the radial function).

Definition at line 33 of file hubbard_orbitals_descriptor.hpp.

Constructor & Destructor Documentation

◆ hubbard_orbital_descriptor() [1/3]

sirius::hubbard_orbital_descriptor::hubbard_orbital_descriptor ( )
inline

Constructor.

Definition at line 206 of file hubbard_orbitals_descriptor.hpp.

◆ hubbard_orbital_descriptor() [2/3]

sirius::hubbard_orbital_descriptor::hubbard_orbital_descriptor ( const int  n__,
const int  l__,
const int  orbital_index__,
const double  occ__,
const double  J__,
const double  U__,
const double *  hub_coef__,
const double  alpha__,
const double  beta__,
const double  J0__,
std::vector< double >  initial_occupancy__,
Spline< double >  f__,
bool  use_for_calculations__,
int  idx_wf__ 
)
inline

Constructor.

Definition at line 211 of file hubbard_orbitals_descriptor.hpp.

◆ ~hubbard_orbital_descriptor()

sirius::hubbard_orbital_descriptor::~hubbard_orbital_descriptor ( )
inline

Definition at line 237 of file hubbard_orbitals_descriptor.hpp.

◆ hubbard_orbital_descriptor() [3/3]

sirius::hubbard_orbital_descriptor::hubbard_orbital_descriptor ( hubbard_orbital_descriptor &&  src)
inline

Move constructor.

Definition at line 242 of file hubbard_orbitals_descriptor.hpp.

Member Function Documentation

◆ hubbard_F_coefficients()

auto sirius::hubbard_orbital_descriptor::hubbard_F_coefficients ( ) const
inlineprivate

Definition at line 76 of file hubbard_orbitals_descriptor.hpp.

◆ calculate_ak_coefficients()

void sirius::hubbard_orbital_descriptor::calculate_ak_coefficients ( sddk::mdarray< double, 5 > &  ak)
inlineprivate

Definition at line 112 of file hubbard_orbitals_descriptor.hpp.

◆ compute_hubbard_matrix()

void sirius::hubbard_orbital_descriptor::compute_hubbard_matrix ( )
inlineprivate

this function computes the matrix elements of the orbital part of the electron-electron interactions. we effectively compute

\[ u(m,m'',m',m''') = \left<m,m''|V_{e-e}|m',m'''\right> \sum_k a_k(m,m',m'',m''') F_k \]

where the F_k are calculated for real spherical harmonics

Definition at line 153 of file hubbard_orbitals_descriptor.hpp.

◆ initialize_hubbard_matrix()

void sirius::hubbard_orbital_descriptor::initialize_hubbard_matrix ( )
inlineprivate

Definition at line 178 of file hubbard_orbitals_descriptor.hpp.

◆ n()

int sirius::hubbard_orbital_descriptor::n ( ) const
inline

Definition at line 262 of file hubbard_orbitals_descriptor.hpp.

◆ l()

int sirius::hubbard_orbital_descriptor::l ( ) const
inline

Definition at line 267 of file hubbard_orbitals_descriptor.hpp.

◆ hubbard_matrix() [1/2]

double sirius::hubbard_orbital_descriptor::hubbard_matrix ( const int  m1,
const int  m2,
const int  m3,
const int  m4 
) const
inline

Definition at line 272 of file hubbard_orbitals_descriptor.hpp.

◆ hubbard_matrix() [2/2]

double & sirius::hubbard_orbital_descriptor::hubbard_matrix ( const int  m1,
const int  m2,
const int  m3,
const int  m4 
)
inline

Definition at line 277 of file hubbard_orbitals_descriptor.hpp.

◆ J0()

double sirius::hubbard_orbital_descriptor::J0 ( ) const
inline

Definition at line 282 of file hubbard_orbitals_descriptor.hpp.

◆ U()

double sirius::hubbard_orbital_descriptor::U ( ) const
inline

Definition at line 287 of file hubbard_orbitals_descriptor.hpp.

◆ J()

double sirius::hubbard_orbital_descriptor::J ( ) const
inline

Definition at line 292 of file hubbard_orbitals_descriptor.hpp.

◆ U_minus_J()

double sirius::hubbard_orbital_descriptor::U_minus_J ( ) const
inline

Definition at line 297 of file hubbard_orbitals_descriptor.hpp.

◆ B()

double sirius::hubbard_orbital_descriptor::B ( ) const
inline

Definition at line 302 of file hubbard_orbitals_descriptor.hpp.

◆ E2()

double sirius::hubbard_orbital_descriptor::E2 ( ) const
inline

Definition at line 307 of file hubbard_orbitals_descriptor.hpp.

◆ E3()

double sirius::hubbard_orbital_descriptor::E3 ( ) const
inline

Definition at line 312 of file hubbard_orbitals_descriptor.hpp.

◆ alpha()

double sirius::hubbard_orbital_descriptor::alpha ( ) const
inline

Definition at line 317 of file hubbard_orbitals_descriptor.hpp.

◆ beta()

double sirius::hubbard_orbital_descriptor::beta ( ) const
inline

Definition at line 322 of file hubbard_orbitals_descriptor.hpp.

◆ occupancy()

double sirius::hubbard_orbital_descriptor::occupancy ( ) const
inline

Definition at line 327 of file hubbard_orbitals_descriptor.hpp.

◆ f()

Spline< double > const & sirius::hubbard_orbital_descriptor::f ( ) const
inline

Definition at line 332 of file hubbard_orbitals_descriptor.hpp.

◆ use_for_calculation()

bool sirius::hubbard_orbital_descriptor::use_for_calculation ( ) const
inline

Definition at line 337 of file hubbard_orbitals_descriptor.hpp.

◆ initial_occupancy()

auto const & sirius::hubbard_orbital_descriptor::initial_occupancy ( ) const
inline

Definition at line 342 of file hubbard_orbitals_descriptor.hpp.

◆ idx_wf()

auto sirius::hubbard_orbital_descriptor::idx_wf ( ) const
inline

Definition at line 347 of file hubbard_orbitals_descriptor.hpp.

Member Data Documentation

◆ n_

int sirius::hubbard_orbital_descriptor::n_ {-1}
private

Principal quantum number of atomic orbital.

Definition at line 37 of file hubbard_orbitals_descriptor.hpp.

◆ l_

int sirius::hubbard_orbital_descriptor::l_ {-1}
private

Orbital quantum number of atomic orbital.

Definition at line 39 of file hubbard_orbitals_descriptor.hpp.

◆ use_for_calculation_

bool sirius::hubbard_orbital_descriptor::use_for_calculation_ {true}
private

Set to true if this orbital is part the Hubbard subspace.

Definition at line 41 of file hubbard_orbitals_descriptor.hpp.

◆ occupancy_

double sirius::hubbard_orbital_descriptor::occupancy_ {-1.0}
private

Orbital occupancy.

Definition at line 43 of file hubbard_orbitals_descriptor.hpp.

◆ f_

Spline<double> sirius::hubbard_orbital_descriptor::f_
private

Definition at line 45 of file hubbard_orbitals_descriptor.hpp.

◆ U_

double sirius::hubbard_orbital_descriptor::U_ {0.0}
private

Hubbard U parameter (on-site repulsion).

Definition at line 48 of file hubbard_orbitals_descriptor.hpp.

◆ J_

double sirius::hubbard_orbital_descriptor::J_ {0.0}
private

Hubbard J parameter (exchange).

Definition at line 50 of file hubbard_orbitals_descriptor.hpp.

◆ hubbard_coefficients_

std::array<double, 4> sirius::hubbard_orbital_descriptor::hubbard_coefficients_ = {0.0, 0.0, 0.0, 0.0}
private

Different hubbard coefficients.

s: U = hubbard_coefficients_[0] p: U = hubbard_coefficients_[0], J = hubbard_coefficients_[1] d: U = hubbard_coefficients_[0], J = hubbard_coefficients_[1], B = hubbard_coefficients_[2] f: U = hubbard_coefficients_[0], J = hubbard_coefficients_[1], E2 = hubbard_coefficients_[2], E3 = hubbard_coefficients_[3] hubbard_coefficients[4] = U_alpha hubbard_coefficients[5] = U_beta

Definition at line 60 of file hubbard_orbitals_descriptor.hpp.

◆ hubbard_matrix_

sddk::mdarray<double, 4> sirius::hubbard_orbital_descriptor::hubbard_matrix_
private

Definition at line 62 of file hubbard_orbitals_descriptor.hpp.

◆ alpha_

double sirius::hubbard_orbital_descriptor::alpha_ {0.0}
private

Definition at line 65 of file hubbard_orbitals_descriptor.hpp.

◆ beta_

double sirius::hubbard_orbital_descriptor::beta_ {0.0}
private

Definition at line 67 of file hubbard_orbitals_descriptor.hpp.

◆ J0_

double sirius::hubbard_orbital_descriptor::J0_ {0.0}
private

Definition at line 69 of file hubbard_orbitals_descriptor.hpp.

◆ initial_occupancy_

std::vector<double> sirius::hubbard_orbital_descriptor::initial_occupancy_
private

Definition at line 71 of file hubbard_orbitals_descriptor.hpp.

◆ idx_wf_

int sirius::hubbard_orbital_descriptor::idx_wf_ {-1}
private

Index of the corresponding atomic wave-function.

Definition at line 74 of file hubbard_orbitals_descriptor.hpp.


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