.. _program_listing_file_src_qcm_QCM.hpp: Program Listing for File QCM.hpp ================================ |exhale_lsh| :ref:`Return to documentation for file ` (``src_qcm/QCM.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // // QCM.hpp // qcm3 // // Created by David Sénéchal on 16-11-22. // Copyright © 2016 David Sénéchal. All rights reserved. // #ifndef QCM_hpp #define QCM_hpp #include #include #include #include #include #include #include "vector3D.hpp" #include "qcm_ED.hpp" using namespace std; struct lattice_matrix_element; struct System; namespace QCM{ void check_instance(int label); void great_reset(); void erase_lattice_model_instance(size_t label); bool complex_HS(size_t label); double Berry_flux(vector>& k, int orb, int label); double monopole(vector3D& k, double a, int nk, int orb, bool rec, int label); double Potthoff_functional(int label); double potential_energy(int label); double kinetic_energy(int label); double spectral_average(const string& name, const complex w, int label); int mixing(); int spatial_dimension(); map parameters(); map instance_parameters(int label); matrix> cluster_Green_function(size_t i, complex w, bool spin_down, int label, bool blocks); matrix> cluster_self_energy(size_t i, complex w, bool spin_down, int label); matrix> cluster_hopping_matrix(size_t i, bool spin_down, int label); matrix> compact_tiling(const matrix>& A, const vector3D& k); ED::CombinedMCF_data get_combined_mcf_k(const vector3D& k, bool spin_down, int label); matrix> CPT_Green_function(const complex w, const vector3D &k, bool spin_down, int label); matrix> CPT_Green_function(int iw, int ik, int label); matrix> hybridization_function(complex w, bool spin_down, size_t i, int label); matrix> Green_integral(bool spin_down, int clus, int label); matrix> periodized_Green_function(const complex w, const vector3D &k, bool spin_down, int label); matrix> band_Green_function(const complex w, const vector3D &k, bool spin_down, int label); matrix> projected_Green_function(const complex w, bool spin_down, int label); matrix> tk(const vector3D &k, bool spin_down, int label); matrix> V_matrix(const complex w, const vector3D &k, bool spin_down, int label); pair>, vector, 11>>> site_and_bond_profile(int label); size_t Green_function_dimension(); size_t reduced_Green_function_dimension(); vector Berry_curvature(vector3D& k1, vector3D& k2, int nk, int orb, bool rec, int dir, int label); vector dos(const complex w, int label, bool use_grid=false); vector momentum_profile(const string& op, const vector> &k_set, int label); vector>> CPT_Green_function_inverse(const complex w, const vector> &k, bool spin_down, int label); vector>> CPT_Green_function(const complex w, const vector> &k, bool spin_down, int label); vector>> periodized_Green_function(const complex w, const vector> &k, bool spin_down, int label); vector>> band_Green_function(const complex w, const vector> &k, bool spin_down, int label); vector> periodized_Green_function_element(int r, int c, const complex w, const vector> &k, bool spin_down, int label); vector>> self_energy(const complex w, const vector> &k, bool spin_down, int label); vector>> tk(const vector> &k, bool spin_down, int label); vector> ground_state(int label); vector> averages(const vector &_ops = {}, int label=0); vector, vector>> Lehmann_Green_function(vector> &k, int orb, bool spin_down, int label); vector> cluster_info(); vector> systems_info(); vector> dispersion(const vector> &k, bool spin_down, int label); vector> epsilon(const vector> &k, bool spin_down, int label); void add_cluster(const vector3D &cpos, const vector> &pos, int ref=0, bool conj=false); void add_system(const string &name, const int clus=0); void anomalous_operator(const string &name, vector3D &link, complex amplitude, int orb1, int orb2, const string& type); void density_wave(const string &name, vector3D &link, complex amplitude, int orb, vector3D Q, double phase, const string& type); void explicit_operator(const string &name, const string &type, const vector, vector3D, complex>> &elem, int tau=1, int sigma=0); void global_parameter_init(); void hopping_operator(const string &name, vector3D &link, double amplitude, int orb1, int orb2, int tau, int sigma); void current_operator(const string &name, vector3D &link, double amplitude, int orb1, int orb2, int dir, bool re=true); void interaction_operator(const string &name, vector3D &link, double amplitude, int orb1, int orb2, const string &type); void k_integral(int dim, function &k, const int *nv, double I[])> f, vector &Iv, const double accuracy, bool verb=false); void k_integral_grid(int dim, int nkx, int nky, int nkz, function &k, const int *nv, double I[])> f, vector &Iv); void set_wavevector_grid(int nkx, int nky, int nkz); void get_wavevector_grid(int& nkx, int& nky, int& nkz); void new_lattice_model(const string &name, vector &superlattice, vector &lattice, const string &latt_hybrid=""); void new_model_instance(int label); void print_model(const string& filename, bool asy_operators=false, bool asy_labels=false, bool asy_orb=false, bool asy_neighbors=false, bool asy_working_basis=false); void qcm_init(); void set_basis(vector &basis); void set_parameter(const string& name, double value); void set_multiplier(const string& name, double value); void set_parameters(vector>&, vector>&); void wk_integral(int dim, function &k, const int *nv, double I[])> f, vector &Iv, const double accuracy,bool verb=false); void Green_function_solve(int label); void CDMFT_variational_set(vector>& varia); void CDMFT_host(const vector& freqs, const vector& weights, int label); void set_CDMFT_host(int label, const vector& freqs, const int clus, const vector>& H, const bool spin_down); double CDMFT_distance(const vector& p, int clus, int label); vector CDMFT_residuals(const vector& p, int clus, int label); vector CDMFT_gradient(const vector& p, int clus, int label); vector>> get_CDMFT_host(bool spin_down, int label); }; #endif /* QCM_hpp */