mps-0.0.0
MatrixProductStatesinC++
 All Data Structures Namespaces Functions Variables Enumerations Enumerator Groups Pages
mps::Lattice Class Reference

Class representing fermionic or hard-core-bosons particles hopping in a finite lattice. More...

Public Types

enum  particle_kind_t { HARD_CORE_BOSONS = 0, FERMIONS = 1 }
 

Public Member Functions

tensor::index dimension () const
 Dimensionality of the constrained Hilbert space. More...
 
const RSparse Hamiltonian (const RTensor &J, const RTensor &interactions, double mu, particle_kind_t kind=FERMIONS) const
 Full Hamiltonian containing hopping of kind and interactions. More...
 
const CSparse Hamiltonian (const CTensor &J, const CTensor &interactions, double mu, particle_kind_t kind=FERMIONS) const
 Full Hamiltonian containing hopping of kind and interactions. More...
 
const RSparse hopping_operator (int to, int from, particle_kind_t kind=FERMIONS) const
 Hopping operator for a particle between two sites. More...
 
const RSparse interaction_operator (int site1, int site2) const
 Hubbard interaction between different lattice site. More...
 
 Lattice (int sites, int N)
 Construct the internal representation for a lattice with N particles in those 'sites'.
 
const RSparse number_operator (int site) const
 Number operator for the given lattice site. More...
 
int particles () const
 Preconfigured number of particles. More...
 
int size () const
 Number of sites in the lattice. More...
 

Detailed Description

Class representing fermionic or hard-core-bosons particles hopping in a finite lattice.

The lattice constructs operators representing the motion of particles, their density, their interactions, assuming that there is a fixed (beforehand) number of particles at all times.

Definition at line 34 of file lattice.h.

Member Enumeration Documentation

Enumerator
HARD_CORE_BOSONS 

The lattice will contain impenetrable bosonic particles.

FERMIONS 

The lattice will contain fermions (in Jordan-Wigner representation).

Definition at line 44 of file lattice.h.

Member Function Documentation

tensor::index mps::Lattice::dimension ( ) const

Dimensionality of the constrained Hilbert space.

Definition at line 256 of file lattice.cc.

const RSparse mps::Lattice::Hamiltonian ( const RTensor &  J,
const RTensor &  interactions,
double  mu,
particle_kind_t  kind = FERMIONS 
) const

Full Hamiltonian containing hopping of kind and interactions.

Matrix J(i,j) is nonzero when there is hopping between sites 'i' and 'j', and interactions U(i,j) among those sites too. Entries in these matrices can be zero.

Definition at line 204 of file lattice.cc.

const CSparse mps::Lattice::Hamiltonian ( const CTensor &  J,
const CTensor &  interactions,
double  mu,
particle_kind_t  kind = FERMIONS 
) const

Full Hamiltonian containing hopping of kind and interactions.

Matrix J(i,j) is nonzero when there is hopping between sites 'i' and 'j', and interactions U(i,j) among those sites too. Entries in these matrices can be zero.

Definition at line 224 of file lattice.cc.

const RSparse mps::Lattice::hopping_operator ( int  to,
int  from,
particle_kind_t  kind = FERMIONS 
) const

Hopping operator for a particle between two sites.

Returns the equivalent of $a^{to}a_{from}$.

Definition at line 96 of file lattice.cc.

const RSparse mps::Lattice::interaction_operator ( int  site1,
int  site2 
) const

Hubbard interaction between different lattice site.

It implements operator $ n_{site1} n_{site2} $.

Definition at line 174 of file lattice.cc.

const RSparse mps::Lattice::number_operator ( int  site) const

Number operator for the given lattice site.

Definition at line 168 of file lattice.cc.

int mps::Lattice::particles ( ) const

Preconfigured number of particles.

Definition at line 250 of file lattice.cc.

int mps::Lattice::size ( ) const

Number of sites in the lattice.

Definition at line 244 of file lattice.cc.