25#ifndef __TYPEDEFS_HPP__
26#define __TYPEDEFS_HPP__
43struct Real {
using type = T;};
47struct Real<std::complex<T>> {
using type = T;};
50using real_type =
typename Real<T>::type;
53constexpr bool is_real_v = std::is_same<T, real_type<T>>::value;
109 std::transform(name__.begin(), name__.end(), name__.begin(), ::tolower);
110 std::map<std::string, relativity_t>
const m = {
111 {
"none", relativity_t::none},
112 {
"koelling_harmon", relativity_t::koelling_harmon},
113 {
"zora", relativity_t::zora},
114 {
"iora", relativity_t::iora},
115 {
"dirac", relativity_t::dirac}
118 if (m.count(name__) == 0) {
120 s <<
"get_relativity_t(): wrong label of the relativity_t enumerator: " << name__;
121 throw std::runtime_error(s.str());
144 bool new_enu_found{
false};
147inline std::ostream&
operator<<(std::ostream& out, radial_solution_descriptor
const& rsd)
149 out <<
"{l: " << rsd.l <<
", n: " << rsd.n <<
", enu: " << rsd.enu
150 <<
", dme: " << rsd.dme <<
", auto: " << rsd.auto_enu <<
"}";
171 std::array<double, 3>
rc;
221 , num_atoms{num_atoms__}
246 , offset_z{offset_z__}
std::enable_if_t< std::is_same< T, real_type< F > >::value, void > transform(::spla::Context &spla_ctx__, sddk::memory_t mem__, la::dmatrix< F > const &M__, int irow0__, int jcol0__, real_type< F > alpha__, Wave_functions< T > const &wf_in__, spin_index s_in__, band_range br_in__, real_type< F > beta__, Wave_functions< T > &wf_out__, spin_index s_out__, band_range br_out__)
Apply linear transformation to the wave-functions.
Namespace of the SIRIUS library.
std::ostream & operator<<(std::ostream &out, hbar &&b)
Inject horisontal bar to ostream.
relativity_t
Type of relativity treatment in the case of LAPW.
electronic_structure_method_t
Type of electronic structure methods.
@ full_potential_lapwlo
Full potential linearized augmented plane waves with local orbitals.
@ pseudopotential
Pseudopotential (ultrasoft, norm-conserving, PAW).
std::vector< radial_solution_descriptor > radial_solution_descriptor_set
Set of radial solution descriptors, used to construct augmented waves or local orbitals.
function_domain_t
Type of a function domain.
@ spectral
Spectral domain.
spin_block_t
Spin-blocks of the Hamiltonian.
Descriptor of the local-orbital part of the LAPW+lo basis.
uint8_t l
Index of orbital quantum number .
uint8_t order
Order of the local orbital radial function for the given orbital quantum number .
uint8_t idxrf
Index of the local orbital radial function.
uint16_t ia
Index of atom.
uint16_t lm
Combined lm index.
Descriptor of an atom in a list of nearest neighbours for each atom.
std::array< double, 3 > rc
Vector connecting central atom with the neighbour in Cartesian coordinates.
double distance
Distance from the central atom.
std::array< int, 3 > translation
Translation in fractional coordinates.
int atom_id
Index of the neighbouring atom.
Describe external pointers to periodic function.
Describes radial solution.
double enu
Energy of the solution.
int auto_enu
Automatically determine energy.
int n
Principal quantum number.
int l
Angular momentum quantum number.
int dme
Order of energy derivative.