{-|
Module      : TBit.Toolbox
Description : re-exports useful functions
Copyright   : (c) Matthew Daniels, 2014
License     : New BSD
Maintainer  : danielsmw@gmail.com
Stability   : experimental

This module re-exports several useful functions so that we don't need
to import a bunch of libraries at once into a script we'll frequently
be switching the output from.
-}

module TBit.Toolbox ( 
                    -- * Topological calculations
                      chern
                    , chernBand
                    , bandCurvature
                    , occupiedCurvature
                    -- * Orbital magnetization functions
                    , orbMag
                    , intrinsicOM
                    , bandIntrinsicOM
                    -- * Electric properties
                    , nernstConductivity
                    -- * Energetic properties
                    , eigenstates
                    , eigenenergies
                    -- * Some basic Hamiltonian tools
                    , squareLattice
                    , hexLattice
                    , kagomeLattice
                    , kagomeRibbon
                    , ring
                    , toMatrix
                    , neighborTerm
                    , onsiteTerm
                    , parityStaggeredTerm
                    , localMoments
                    , rashbaZ
                    -- * Plotting utilities
                    , bzPlot
                    , paramPlot
                    , bandPlot
                    , kPath ) where

import TBit.Topological.Chern (chern, chernBand)
import TBit.Topological.Curvature (bandCurvature, occupiedCurvature)
import TBit.Magnetic.OrbitalMagnetization (orbMag, intrinsicOM, bandIntrinsicOM)
import TBit.Electronic.Conductance
import TBit.Plots (bzPlot, paramPlot, bandPlot)
import TBit.Framework (kPath)
import TBit.Hamiltonian.Eigenstates (eigenenergies, eigenstates)
import TBit.Hamiltonian.Builder.Examples (squareLattice, ring, hexLattice, kagomeRibbon, kagomeLattice)
import TBit.Hamiltonian.Builder.Matrification (toMatrix)
import TBit.Hamiltonian.Builder.Terms (neighborTerm, onsiteTerm, parityStaggeredTerm, localMoments, rashbaZ)