Struct Hermitian_operator¶
Defined in File Hermitian_operator.hpp
Inheritance Relationships¶
Derived Types¶
public Heisenberg_operator(Struct Heisenberg_operator)public Hund_operator(Struct Hund_operator)public anomalous_operator< op_field >(Template Struct anomalous_operator)public general_interaction_operator< op_field >(Template Struct general_interaction_operator)public interaction_operator(Struct interaction_operator)public one_body_operator< op_field >(Template Struct one_body_operator)
Struct Documentation¶
-
struct Hermitian_operator¶
Abstract class representing a Hermitian operator, i.e. a term in the Hamiltonian.
Subclassed by Heisenberg_operator, Hund_operator, anomalous_operator< op_field >, general_interaction_operator< op_field >, interaction_operator, one_body_operator< op_field >
Public Functions
-
virtual shared_ptr<HS_Hermitian_operator> build_HS_operator(sector sec, bool complex_Hilbert_space) = 0¶
-
virtual string type() = 0¶
-
virtual vector<matrix_element<Complex>> matrix_elements() = 0¶
-
virtual void print(ostream &fout) = 0¶
-
virtual void set_hopping_matrix(double value, matrix<Complex> &tc, bool spin_down, int sys_mixing) = 0¶
-
virtual void set_hopping_matrix(double value, matrix<double> &tc, bool spin_down, int sys_mixing) = 0¶
-
virtual void set_target(vector<bool> &in_bath) = 0¶
-
bool shift_label(size_t label, size_t &shifted_label, bool bath, bool nambu, bool spin_down)¶
Public Members
-
bool is_active¶
true is the operator is active (nonzero)
-
bool is_complex¶
true is the operator has complex matrix elements, which requires a complex Hilbert space
-
bool is_factorizable¶
-
bool is_interaction¶
true if the operator is an interaction
-
double nambu_correction_full¶
Nambu correction to the averages in the full Nambu mixing case.
-
double nambu_correction¶
Nambu correction to the averages in the restricted Nambu mixing case.
-
double norm¶
multiplicative factor on the average (e.g. to divide by the number of sites)
-
int mixing¶
mixing caused by this operator (default = normal)
-
mutable std::mutex hs_op_mutex¶
protects HS_operator map from concurrent insertions
-
map<sector, shared_ptr<HS_Hermitian_operator>> HS_operator¶
Hilbert space realizations, organized by sector.
-
size_t target¶
target of the operator: 1:cluster, 2:bath, or 3:hybrid (binary coding).
-
string name¶
name of the operator
-
virtual shared_ptr<HS_Hermitian_operator> build_HS_operator(sector sec, bool complex_Hilbert_space) = 0¶