Template Struct anomalous_operator¶
Defined in File anomalous_operator.hpp
Inheritance Relationships¶
Base Type¶
public Hermitian_operator(Struct Hermitian_operator)
Struct Documentation¶
-
template<typename op_field>
struct anomalous_operator : public Hermitian_operator¶ Represents a pairing operator. op_field is meant to be either “double” or “complex<double>”.
Public Functions
Constructor from name and matrix elements.
- Parameters:
_name – name of the operator
_the_model – model
_elements – nonzero one-body matrix elements
-
void check_spin_flip()¶
determines whether the operator has spin-flip/triplet terms sets the bool variable spin_flip accordingly Since this is an pairing operator, ‘spin flip’ occurs when there are triplet terms, i.e.
terms that couple the same spin!
-
virtual void set_target(vector<bool> &in_bath)¶
set the target of an operator 1 : cluster 2 : bath only 3 : hybridization
- Parameters:
in_bath – vector of bool defining the status of each site
-
inline virtual void set_hopping_matrix(double value, matrix<Complex> &tc, bool spin_down, int sys_mixing)¶
-
virtual double average_from_GF(matrix<Complex> &Gave, bool spin_down)¶
Computes the average of the operator in an uncorrelated ground state, determined solely by the average of the uncorrelated Green function.
-
virtual shared_ptr<HS_Hermitian_operator> build_HS_operator(sector sec, bool complex_HS_op)¶
returns a pointer to, and constructs the associated HS operator in the sector sec.
- Parameters:
sec – : sector of the Hilbert space
complex_HS_op – : true if the Hilbert space is complex
-
virtual void print(ostream &fout)¶
prints definition to a file
- Parameters:
fout – output stream
-
template<typename HS_field>
void set_hopping_matrix_templ(double value, matrix<HS_field> &tc, bool spin_down, int sys_mixing)¶
-
virtual vector<matrix_element<Complex>> matrix_elements()¶
returns a list of complexified matrix elements
-
inline virtual string type()¶
Applies the HS operator associated to the anomalous operator in the basis B to state vector x and adds the result to state vector y, by computing the matrix elements “on the fly” (OTF).
This is used in the “onthefly” option of the Hamiltonian format. This is the version for a real Hilbert space
Applies the HS operator associated to the anomalous operator in the basis B to state vector x and adds the result to state vector y, by computing the matrix elements “on the fly” (OTF).
This is used in the “onthefly” option of the Hamiltonian format. This is the version for a complex Hilbert space
-
inline virtual void set_hopping_matrix(double value, matrix<double> &tc, bool spin_down, int sys_mixing)
Adds the contribution of the operator to the 1-body matrices tc, tb and tcb.
- Parameters:
value – : value of the matrix element
tc – : 1-body matrix the operator contributes to
spin_down – : true in the spin-down case of mixing=4
sys_mixing – : mixing state of the model (not that of the operator)
-
inline virtual void set_hopping_matrix(double value, matrix<double> &tc, bool spin_down, int sys_mixing)
Public Members
-
bool spin_flip¶
true if Nambu doubling is required (i.e., x or y component of the triplet d-vector)
-
vector<matrix_element<op_field>> elements¶
one-body matrix elements