|
template<std::ranges::input_range R> |
bool | all_equal (R const &r) |
| Determines if all elements in the given range are equal.
|
|
std::pair< double, double > | bisection (std::function< double(double)> f, double x_low, double x_high, double y_target, double precision, long max_loops, std::string x_name, std::string y_name, bool verbosity) |
| bisection algorithm
|
|
std::pair< double, double > | dichotomy (std::function< double(double)> f, double x_low, double x_high, double y_target, double precision, long max_loops, std::string x_name, std::string y_name, bool verbosity) |
| dichotomy algorithm
|
|
generator< std::pair< long, nda::range > > | enumerated_sub_slices (auto sub_div) |
|
std::pair< double, double > | find_bounds (std::function< double(double)> f, double x_init, double y_value, double delta_x, double precision, long max_loops=1000, bool verbosity=false) |
| find upper and lower bounds of f(x)
|
|
std::pair< double, double > | root_finder (std::string method, std::function< double(double)> f, double x_init, double y_value, double precision, double delta_x, long max_loops=1000, std::string x_name="", std::string y_name="", bool verbosity=false) |
| Root finder f(x) = 0.
|
|
template<typename T > |
auto | to_vector (auto &&gen) |
|
|
Functions to create the impurity interaction using many-body operators.
|
operators::many_body_operator | make_density_density (std::vector< std::string > const &tau_names, std::vector< long > const &dim_gamma, double U_int, double U_prime, double J_hund) |
| Construct a density-density interation.
|
|
operators::many_body_operator | make_kanamori (std::vector< std::string > const &tau_names, std::vector< long > const &dim_gamma, double U_int, double U_prime, double J_hund, bool spin_flip=true, bool pair_hopping=true) |
| Construct a Hubbard-Kanamori Hamiltonian.
|
|
operators::many_body_operator | make_slater (std::vector< std::string > const &tau_names, std::vector< long > const &dim_gamma, double U_int, double J_hund, nda::matrix< dcomplex > const &spherical_to_dft, std::optional< nda::matrix< dcomplex > > const &dft_to_local) |
| Construct a new operators::many body operator make slater object.
|
|
|
Utility functions for creating and working with the four index Coulomb tensor.
|
nda::array< double, 4 > | U_matrix_in_spherical_basis (long l, double U_int, double J_hund) |
| Construct a four-index Coulomb tensor in the basis of spherical harmonics.
|
|
nda::array< dcomplex, 4 > | U_matrix_in_local_basis (long l, nda::matrix< dcomplex > s2l, double U_int, double J_hund) |
| Construct a four-index Coulomb tensor in a specific orbital basis.
|
|