.. _program_listing_file_src_ed_model.hpp: Program Listing for File model.hpp ================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src_ed/model.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef model_h #define model_h #include #include #include #include #include "ED_basis.hpp" #include "state.hpp" #include "Operators/destruction_operator.hpp" #define MIN_GAP 1.0e-6 struct Hermitian_operator; struct model { bool is_closed; bool is_factorized; bool has_complex_HS; map>> destruction_complex; map>> destruction; map> basis; map> factorized_basis; map> term; map > last_eigenvectors; //storing the last eigenvectors in each sectors for further solve map last_eigenvalues; //storing the last eigenvalues in each sectors for further solve mutable std::mutex model_mutex; shared_ptr group; size_t n_bath; size_t n_orb; size_t n_sites; string name; vector in_bath; vector>> sym_orb; int mixing; model(const string &_name, const size_t _n_orb, const size_t _n_bath, const vector> &gen, bool bath_irrep); void add_chemical_potential(); bool create_or_destroy(int pm, const symmetric_orbital &a, state &x, vector &y, double z); bool create_or_destroy(int pm, const symmetric_orbital &a, state &x, vector &y, Complex z); void print(ostream& fout); void print_graph(const vector> &pos); shared_ptr provide_basis(const sector& sec); shared_ptr provide_factorized_basis(const sector& sec); void build_HS_operators(const sector& sec, bool is_complex); }; #endif