25#ifndef __HUBBARD_HPP__
26#define __HUBBARD_HPP__
43void generate_potential(Hubbard_matrix
const& om__, Hubbard_matrix& um__);
45double energy(Hubbard_matrix
const& om__);
46double one_electron_energy_hubbard(Hubbard_matrix
const& om__, Hubbard_matrix
const& pm__);
62 void calculate_wavefunction_with_U_offset();
178 void set_hubbard_U_plus_V()
183 inline int num_hubbard_wf()
const
185 return ctx_.unit_cell().num_hubbard_wf().first;
Contains declaration and implementation of sirius::Beta_projectors class.
Contains declaration and implementation of sirius::Beta_projectors_gradient class.
Contains declaration and implementation of sirius::Beta_projectors_strain_deriv class.
Apply Hubbard correction in the collinear case.
bool hubbard_U_plus_V_
Hubbard correction with next nearest neighbors.
void compute_occupancies_stress_derivatives(K_point< double > &kp__, Q_operator< double > &q_op__, sddk::mdarray< std::complex< double >, 4 > &dn__)
Compute derivatives of the occupancy matrix w.r.t.atomic displacement.
void compute_occupancies_derivatives(K_point< double > &kp__, Q_operator< double > &q_op__, sddk::mdarray< std::complex< double >, 5 > &dn__)
Compute the occupancy derivatives with respect to atomic displacements.
bool multi_channels_
Hubbard with multi channels apply to both LDA+U+V case.
Hubbard(Simulation_context &ctx__)
Constructor.
Simulation context is a set of parameters and objects describing a single simulation.
Representation of a unit cell.
Multidimensional array with the column-major (Fortran) order.
Base class for Hubbard occupancy and potential matrices.
Contains definition of sirius::K_point class.
Contains declaration and partial implementation of sirius::K_point_set class.
Namespace of the SIRIUS library.
Contains declaration of sirius::Non_local_operator class.
Representation of various radial integrals.
Contains definition and implementation of Simulation_context class.
Contains declaration and implementation of Wave_functions class.