# ITensor Library Classes and Methods #
Detailed information about every method and function in the ITensor library.
The documentation may omit minor details that do not change how you use a method,
like describing a particular function as `f(ITensor T)` even though
its actual signature is `f(ITensor const& T)`.
## Utilities
* [[Reading and Writing Objects to Disk|classes/readwrite]]
* [[Support for MPI (Message Passing Interface) Parallelism|classes/parallel]]
* Support for working with lattices:
- [[LatticeBond Objects|classes/latticebond]]
- [[Functions for Making Lattices|classes/lattice_functions]]
* [[BondGate|classes/bondgate]] - type for making quantum circuits or time-evolution gates
## Index
* [[Index|classes/index]]. Tensor index.
* Special Index modes:
- [[QN Index|classes/index_qn]]. Index carrying QN block information.
* [[IndexVal|classes/indexval]]. Index-value pair.
* [[IndexSet|classes/indexset]]. Container for storing indices.
* [[QN|classes/qn]]. Abelian quantum numbers.
## ITensor
* [[ITensor|classes/itensor]]. The elementary tensor type.
* Sparse ITensors:
- [[QN ITensor|classes/qnitensor]]
- [[Single Element ITensor|classes/single_itensor]]
- [[Combiner|classes/combiner]]
- [[Delta and Diagonal ITensor|classes/diag_itensor]]
* [[Tensor Decompositions|classes/decomp]]. Singular value decomposition, density matrix diagonalization, etc.
## Matrix product states (MPS) and matrix product operators (MPO)
* [[SiteSet|classes/siteset]]. Collection of site objects, defining a Hilbert space and local operators.
- [[SpinHalf and SpinHalfSite|classes/spinhalf]]. S=1/2 spin sites.
- [[SpinOne and SpinOneSite|classes/spinone]]. S=1 spin sites.
- [[Boson and BosonSite|classes/boson]]. Spinless boson sites with adjustable max occupancy.
- [[Fermion and FermionSite|classes/fermion]]. Spinless fermion sites.
- [[Electron and ElectronSite|classes/electron]]. Spinful fermion sites.
- [[tJ and tJSite|classes/tj]]. t-J model sites.
- [[CustomSpin and CustomSpinSite|classes/customspin]]. Spin sites with custom spin S size.
* [[InitState|classes/initstate]]. Helper object for initializing product-state MPS.
* [[MPS|classes/mps]]. Matrix product state class.
* [[MPO|classes/mpo]]. Matrix product operator class.
* [[Algorithms for MPS and MPO|classes/mps_mpo_algs]].
* [[AutoMPO|classes/autompo]]. System for making MPOs from sums of local operators.
* [[Time Evolution of MPS|classes/tevol]]. Methods for time evolving MPS.
## Density matrix renormalization group (DMRG)
* [[Sweeps|classes/sweeps]]. Class for specifying DMRG accuracy parameters.
* [[DMRG|classes/dmrg]]. Interface for running DMRG calculations.