Loading...
Searching...
No Matches
hubbard.hpp File Reference

Go to the source code of this file.

Classes

struct  q3::HubbardEnergyAndPotential
 Result of the Dudarev energy/potential formula for one manifold, one spin channel. More...
 
struct  q3::HubbardManifold
 
struct  q3::HubbardSpecification
 One user-specified Hubbard-active shell (input.hubbard[i]). More...
 
struct  q3::HubbardStartingEigenvalue
 

Namespaces

namespace  q3
 

Functions

Real q3::accumulate_hubbard_force_gradient (int number_of_bands, int manifold_size, const Matrix< Complex > &overlaps, const Matrix< Complex > &direction_derivative_overlaps, const std::vector< Real > &band_occupations, Real kpoint_weight, const std::vector< Complex > &d_matrix)
 
void q3::accumulate_hubbard_occupation_matrix (int number_of_bands, int manifold_size, const Matrix< Complex > &overlaps, const std::vector< Real > &band_occupations, Real kpoint_weight, std::vector< Complex > &occupation_matrix)
 
HubbardEnergyAndPotential q3::compute_hubbard_energy_and_potential (int manifold_size, Real u_rydberg, const std::vector< Complex > &occupation_matrix)
 
void q3::compute_hubbard_projector_overlaps (int number_of_plane_waves, int total_hubbard_orbitals, int number_of_bands, const Complex *packed_orbitals, const Complex *band_functions, std::vector< Complex > &overlaps)
 
void q3::convert_gamma_only_projector_overlaps_to_full_sphere (int number_of_plane_waves, int total_hubbard_orbitals, int number_of_bands, const Complex *packed_orbitals, const Complex *band_functions, int g_zero_index, bool band_functions_carry_g_component, std::vector< Complex > &overlaps)
 
int q3::find_g_zero_plane_wave_index (const PlanewaveBasis &planewave_basis, const std::vector< int > &plane_wave_indices, int number_of_plane_waves)
 
Complex q3::gamma_only_full_sphere_overlap (Complex half_sphere_sum, Real g_zero_product)
 
Real q3::hubbard_augmentation_overlap (const UltrasoftPlanewaveBasis &ultrasoft_basis, const NormConservingPlanewaveBasis &pseudopotential_basis, int species_index, int channel_row, int channel_column)
 
HubbardStartingEigenvalue q3::make_hubbard_starting_eigenvalue (const std::string &species_symbol, int one_based_eigenvalue_index, int one_based_spin_index, Real target_occupation, const std::string &context)
 
std::vector< HubbardManifold > q3::resolve_hubbard_manifolds (const Crystal &crystal_structure, const std::vector< AtomicOrbitalLabel > &orbital_labels, const std::vector< HubbardSpecification > &specifications)
 
bool q3::shell_specification_matches (const std::string &specification, const AtomicOrbitalLabel &label)