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