TBTK
TBTK::ModelFactory Class Reference

Static Public Member Functions

static ModelcreateSquareLattice (std::initializer_list< int > size, std::initializer_list< bool > periodic, std::complex< double > t)
 
static ModelcreateHexagonalLattice (std::initializer_list< int > size, std::initializer_list< bool > periodic, std::complex< double > t)
 
static ModelcreateModel (const StateSet &stateSet, const AbstractOperator &o=DefaultOperator())
 
static ModelcreateModel (const StateSet &stateSet, const StateTreeNode &stateTreeNode, const AbstractOperator &o=DefaultOperator())
 
static ModelcreateModel (const UnitCell &unitCell, std::initializer_list< int > size, std::initializer_list< bool > periodic, const bool *includedCells=NULL, const AbstractOperator &o=DefaultOperator())
 
static void addSquareGeometry (Model *model, std::initializer_list< int > size)
 
static void addHexagonalGeometry (Model *model, std::initializer_list< int > size)
 
static Modelmerge (std::initializer_list< Model *> models)
 

Member Function Documentation

◆ addHexagonalGeometry()

static void TBTK::ModelFactory::addHexagonalGeometry ( Model model,
std::initializer_list< int >  size 
)
static

Add geometry information to hexagonal lattice.

◆ addSquareGeometry()

static void TBTK::ModelFactory::addSquareGeometry ( Model model,
std::initializer_list< int >  size 
)
static

Add geometry information to square lattice.

◆ createHexagonalLattice()

static Model* TBTK::ModelFactory::createHexagonalLattice ( std::initializer_list< int >  size,
std::initializer_list< bool >  periodic,
std::complex< double >  t 
)
static

Create hexagonal lattice with two spins per site and nearest neighbor hopping amplitude t. Unit cell conatins four atom such that the final lattice is rectangualrly shaped.

Parameters
sizeList of ranges. {10, 20}, creates a hexagonal lattice with rectangular dimension 10x20.
periodicSpecifies whether given dimension should have periodic boundary conditions or not.
tNearest neighbor hopping amplitude.

◆ createModel() [1/3]

static Model* TBTK::ModelFactory::createModel ( const StateSet stateSet,
const AbstractOperator o = DefaultOperator() 
)
static

Create a model from a StateSet.

◆ createModel() [2/3]

static Model* TBTK::ModelFactory::createModel ( const StateSet stateSet,
const StateTreeNode stateTreeNode,
const AbstractOperator o = DefaultOperator() 
)
static

Create a model from a StateTreeNode.

◆ createModel() [3/3]

static Model* TBTK::ModelFactory::createModel ( const UnitCell unitCell,
std::initializer_list< int >  size,
std::initializer_list< bool >  periodic,
const bool *  includedCells = NULL,
const AbstractOperator o = DefaultOperator() 
)
static

Create a model from a UnitCell.

Parameters
unitCellUnit cell to repeat.
sizeNumber of unit cells in the final lattice. For example {SIZE_X, SIZE_Y, SIZE_Z} results in a model consisting of SIZE_XxSIZE_YxSIZE_Z unit cells.
periodicSpecifies whether a given dimension should have periodic boundary conditions or not.
includedCellsa boolean array indicating which unit cells to include in the final lattice. The array should be one dimensional with the layout includeedCell[x*SIZE_Y*SIZE_Z + y*SIZE_Z + z] (TBTK conventional layout with trailing indices most closly packed). If NULL is passed, every unit cell is included.
oOperator to calculate matrix elements for.

◆ createSquareLattice()

static Model* TBTK::ModelFactory::createSquareLattice ( std::initializer_list< int >  size,
std::initializer_list< bool >  periodic,
std::complex< double >  t 
)
static

Create square lattice with two spins per site and nearest neighbor hopping amplitude t.

Parameters
sizeList of ranges. {10}, {10, 20}, {10, 20, 30} creates a square lattice of size 10, 10x20, and 10x20x30, respectively.
periodicSpecifies whether given dimension should have periodic boundary conditions or not.
tNearest neighbor hopping amplitude.

◆ merge()

static Model* TBTK::ModelFactory::merge ( std::initializer_list< Model *>  models)
static

Merge models.


The documentation for this class was generated from the following file: