Class fermionBasis#

Inheritance Relationships#

Derived Types#

Class Documentation#

class fermionBasis#

This is the main basis class for the electrons or fermions. Every other fermion model class is derived from this class. We normally dont inherit from this class. Just use as a local object. See for example spinhalf.

Subclassed by freeModel, kondoTwoImpuritySC, rabiAndersonSC

Public Types

enum modelSymmetry#

Symmetries used used in the proble chargeOnly: Only charge of the system is conserved. spinOnly : Only \(S_z\) component of the total spin is coserved. This is use for the superconducting Bath. chargeAndSpin: Both charge and spin is conserved.

Values:

enumerator chargeOnly#
enumerator spinOnly#
enumerator chargeAndSpin#

Public Functions

inline fermionBasis(size_t dof, modelSymmetry l)#
Parameters:
  • dof – : Fermion degree of freedom

  • l – : Symmetries of the system

inline auto get_raw_f_dag_operator() const#

Get the full Matrix of the f operators.

Returns:

inline auto get_f_dag_operator() const#

Get f operators of the site in terms of the qmatrix notations.

Returns:

inline void create_QuantumNChargeonly()#
inline void create_QuantumNspinCharge()#
inline void create_QuantumSpinOnly(std::vector<std::vector<size_t>> &qsymmetry)#
inline void createQNumbers(const std::vector<std::vector<size_t>> &qsymmetry)#
inline void create_Block_structure()#
inline auto get_unique_Qnumbers()#
inline std::vector<qOperator> get_block_operators(const std::vector<qmatrix<>> &sys_operators)#
inline qOperator get_block_Hamiltonian(const qmatrix<double> &sys_operators)#
inline auto get_basis() const#
inline void setDebugMode(bool debug = true)#
inline void createFermionBasis(size_t ldof)#
inline void set_f_dag_operators()#

Public Members

std::vector<qOperator> f_dag_operator#

\( f^\dagger \) of the system written using symmetries of the problem.

std::vector<std::vector<double>> fnParticle#

Quantization numbers used to write various system operators.

std::vector<qmatrix<>> fermionOprMat#