Goto Chapter: Top 1 2 3 4 5 6 7 8 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

4 Tight-binding Model Graphs
 4.1 Cell Model Graphs
 4.2 Constructing Models
 4.3 Model Properties
 4.4 Export and Import

4 Tight-binding Model Graphs

4.1 Cell Model Graphs

Tight-binding models are defined on top of a cell graph by selecting some of the vertices of the cell graph and adding edges between them. The model is thus defined on a cell and forms itself a graph of the same structure as the cell graph. The vertices of the model graph are a subset of vertices of the cell graph, while the edges must not be a subset of the edges of the cell graph. Faces are given as ordered lists of edges of the model graph.

Model graphs are implemented as objects of category TGCellModelGraph with the following components:

and is printed in the form

TGCellModelGraph( cell,
  center = w,
  type = <type>,
  vertices = [ [ w1, gi1 ], [ w2, gi2 ], ... ],
  edges = [ [ v1, v2, tag, gam ], ... ],
  faces = [ [ [ e1, o1 ], [ e2, o2 ], ... ], ... ],
  boundary = [ [ d1, d2, e, b, m, gam ], ... ]
)

See the corresponding references above and the discussion of tag in 4.1 for details.

4.2 Constructing Models

There are several functions for constructing specfic tight-binding models:

In all of those functions, the option simplify, which takes a non-negative integer as argument, can be used to specify the level of simplification of words in the translation group, both for the translation generators expressed in terms of generators of the proper triangle group and for the translations expressed as elements of the finitely presented group. The additional option simplifyMethod, which takes a string, can be used to specify the method of simplification. By default simplifyMethod is set to "BruteForce". If the package kbmag (see kbmag reference manual kbmag Reference Manual) is loaded it is possible to set simplifyMethod to "KnuthBendix", such that the Knuth-Bendix completion algorithm is used in the simplification. This method uses the available space in cache, which can be flushed by calling FlushCaches (see section Mutability and Copying in the GAP Reference Manual). As shown in 4.1, additional information about the edges is given by edge tags. The edge tags depend on the particular model type, but follow the basic structure

[ n, root ]

where n specifies the range of the edge, i.e., 1 for nearest-neighbors (based on the cell graph), 2 for next-nearest-neighbors, and so on, and root specifies how the edge was constructed. For n=1, root takes the form

[ [ w, gi ], s1, s2 ]

where gi is the position of the element \(\delta\) in \(T_{G^+}(G_w^+)\) characterizing the cell-graph edge vertex the edge roots in, and s1, s2 are the positions of the Schwarz triangles \(g_1,g_2\) associated with the cell-graph edges in \(T_{\Delta^+}(\Gamma)\). We can obtain \(\delta\) as follows:

GetRightTransversal( TGCellMSWPs( GetTGCell( model ) ) )[w][gi]

and \(g_1\):

GetRightTransversal( TGCellPointGroup( GetTGCell( model ) ) )[s1]

For n=2, on the other hand, edges are constructed based on faces, and as such root takes the form

[ f, e1, e2 ]

where f is the position of the face characterizing the edge in the list of faces CellFaces(model), and e1, e2 are the positions of the nearest-neighbor edges that together connect the same vertices as the next-nearest-neighbor edge in the list of edges CellEdges(model).

4.2-1 TGCellModelGraph
‣ TGCellModelGraph( cellgraph, vfs, efs, ffs )( function )

Returns: the model graph as TGCellModelGraph object (see 4.1).

Constructs the model graph derived from the TGCellGraph (see 3.7) cellgraph by selecting the vertices of types given in the list vfs as vertices of the model graph. The type is given in terms of the cell graph's vertex type, i.e., 1, 2, or 3, corresponding to the vertices of the fundamental Schwarz triangle \(x\), \(y\), and \(z\), respectively. The edges of the model graph are determined by adjacency to the cell-graph vertices of the type given in the list efs and the faces are determined by the cell-graph vertices of the type given in the list ffs.

The model type is set to

[ "VEF", [ vfs, efs, ffs ] ]

and edge tags take the form

[ 1, [ ve, s1, s2 ] ]

where the first entry, 1, indicates a nearest-neighbor edge, ve=[w,gi] specifies the cell-graph edge vertex with gi the position of the element in \(T_{G^+}(G_w^+)\), and s1, s2 are the positions of the Schwarz triangles associated with the cell-graph edges in \(T_{\Delta^+}(\Gamma)\).

4.2-2 TessellationModelGraph
‣ TessellationModelGraph( cellgraph[, dual] )( function )

Returns: the model graph as TGCellModelGraph object (see 4.1).

Constructs the \(\{p,q\}\)-tessellation model graph derived from the TGCellGraph (see 3.7) cellgraph of the triangle group \((2,q,p)\) associated with cellgraph. If the optional argument dual is set to true, the \(\{q,p\}\)-tessellation is constructed instead.

The model type is set to

[ "TESS", [ p, q ], [ "VEF", [ [ 2 ], [ 1 ], [ 3 ] ] ] ]

for the \(\{p,q\}\) tessellation and to

[ "TESS", [ q, p ], [ "VEF", [ [ 3 ], [ 1 ], [ 2 ] ] ] ]

for the \(\{q,p\}\) tessellation. The edge tags are given in the same format as in TGCellModelGraph (4.2-1).

4.2-3 AddOrientedNNNEdgesToTessellationModelGraph
‣ AddOrientedNNNEdgesToTessellationModelGraph( model )( function )

Modifies the \(\{p,q\}\)-tessellation model graph model in place by adding oriented next-nearest neighbor edges to all faces with at least five edges. The orientation of the next-nearest neighbor edges follows the positive orientation of the faces of the \(\{p,q\}\)-tessellation. Faces with four or less edges are ignored.

The edge tags of the next-nearest neighbor edges take the form

[ 2, [ f, e1, e2 ] ]

where the first entry, 2, indicates a next-nearest-neighbor edge, f is the position of the face characterizing the edge in the list of faces CellFaces(model), and e1, e2 are the positions of the nearest-neighbor edges that together connect the same vertices as the next-nearest-neighbor edge in the list of edges CellEdges(model). The model type remains unchanged.

4.2-4 KagomeModelGraph
‣ KagomeModelGraph( cellgraph )( function )

Returns: the model graph as TGCellModelGraph object (see 4.1).

Constructs the \(p\)-kagome model graph derived from the TGCellGraph (see 3.7) cellgraph of the triangle group \((2,3,p)\) associated with cellgraph.

The model type is set to

[ "KAGOME", p, [ "VEF", [ [ 1 ], [ 2 ], [ 2, 3 ] ] ] ]

The edge tags are given in the same format as in TGCellModelGraph (4.2-1).

4.2-5 LiebModelGraph
‣ LiebModelGraph( cellgraph[, dual] )( function )

Returns: the model graph as TGCellModelGraph object (see 4.1).

Constructs the \(\{p,q\}\)-Lieb model graph derived from the TGCellGraph (see 3.7) cellgraph of the triangle group \((2,q,p)\) associated with cellgraph. If the optional argument dual is set to true, the \(\{q,p\}\)-Lieb is constructed instead.

The model type is set to

[ "LIEB", [ p, q ], [ "VEF", [ [ 1, 2 ], [  ], [ 3 ] ] ] ]

for the \(\{p,q\}\) tesselation and to

[ "LIEB", [ q, p ], [ "VEF", [ [ 1, 3 ], [  ], [ 2 ] ] ] ]

for the \(\{q,p\}\) tesselation. The edge tags are given in the same format as in TGCellModelGraph (4.2-1).

4.3 Model Properties

4.3-1 GetProperTriangleGroup
‣ GetProperTriangleGroup( model )( operation )

returns the proper triangle group \(\Delta^+\) on which the model is based as a ProperTriangleGroup object (see 2.1).

4.3-2 CellRelators
‣ CellRelators( model )( operation )

returns the relators in terms of elements of GetProperTriangleGroup(model) specifying the cell on which the model is defined.

4.3-3 CellCenter
‣ CellCenter( model )( operation )

returns the an integer between \(1\) and \(3\) indicating the type of vertex of the triangle tessellation at the center of the cell graph with \(1\), \(2\), \(3\) corresponding to the vertices \(x\), \(y\), \(z\), of the fundamental Schwarz triangle.

4.3-4 GetTGCell
‣ GetTGCell( model )( operation )

returns the associated TGCell object (see 3.1).

4.3-5 ModelType
‣ ModelType( model )( operation )

returns a the identifier of the model type.

The following model types are currently implemented:

[ "VEF", [ vfs, efs, ffs ] ]

where vfs, efs, and ffs are lists of integers between 1 and 3 indicating the vertex types, edge types, and face types, respectively. See TGCellModelGraph (4.2-1) for details.

[ "TESS", [ p, q ], [ "VEF", [ [ 2 ], [ 1 ], [ 3 ] ] ] ]

for the \(\{p,q\}\) tessellation and as

[ "TESS", [ q, p ], [ "VEF", [ [ 3 ], [ 1 ], [ 2 ] ] ] ]

for the (dual) \(\{q,p\}\) tessellation. See TessellationModelGraph (4.2-2) for details.

[ "KAGOME", p, [ "VEF", [ [ 1 ], [ 2 ], [ 2, 3 ] ] ] ]

See KagomeModelGraph (4.2-4) for details.

[ "LIEB", [ p, q ], [ "VEF", [ [ 1, 2 ], [  ], [ 3 ] ] ] ]

for the \(\{p,q\}\) tesselation and as

[ "LIEB", [ q, p ], [ "VEF", [ [ 1, 3 ], [  ], [ 2 ] ] ] ]

for the (dual) \(\{q,p\}\) tesselation. See LiebModelGraph (4.2-5) for details.

4.3-6 ModelName
‣ ModelName( model )( operation )

returns a friendly name of the model. The friendly name is constructed from the model type and for the implemented model types is given as

4.3-7 CellVertices
‣ CellVertices( model )( operation )

returns the vertices of the model graph as a list.

Each vertex is of the form [ w, gi ] with w an integer between 1 and 3 indicating the vertex of the fundamental Schwarz triangle and gi the position of the element in the transversal \(T_{G^+}(G_w^+)\) labeling the vertex.

4.3-8 CellVertexPositions
‣ CellVertexPositions( model )( operation )

returns the positions of the vertices as elements of the proper triangle group \(\Delta^+\).

4.3-9 CellEdges
‣ CellEdges( model )( operation )

returns the edges of the model graph as a list.

Each edge is of the form [ v1, v2, tag, gam ] with v1, v2 the positions of the vertices in CellVertices(model) connected by the edge, tag uniquely identifying the edge, and gam the translation relating the unit cell containing v1 to the unit cell containing v2, as element of the finitely presented group FpGroup(TGCellTranslationGroup(GetTGCell(model))). If v1 corresponds to the vertex \((w, [g_{u_w}]_w)\) and v2 to the vertex \((w', [g_{\tilde{u}_{w'}}]_{w'})\), then gam corresponds to the translation \(\gamma\) such that

\[g_{\tilde{u}_{w'}} = g_{u_w}\gamma.\]

More details on the tags are given in the methods for constructing different models, see 4.2.

4.3-10 CellEdgeTranslations
‣ CellEdgeTranslations( model )( operation )

returns only the list of translations associated with the edges of the model in the same format as CellEdges (4.3-9).

4.3-11 CellFaces
‣ CellFaces( model )( operation )

returns the faces of the model graph as a list.

Each face is an ordered list of tuples [ edge, orientation ], where edges is a position in CellEdges(model) and orientation is equal to +1 (-1) if the orientation is the same (opposite) compared to the entry in CellEdges(model). The edges of the face are ordered such that the orientation of the face is positive.

4.4 Export and Import

4.4-1 Exporting TGCellModelGraph Objects
‣ Export( model, output-stream )( operation )
‣ Export( model, path )( operation )
‣ ExportString( model )( operation )

Export the model graph model to the OutputTextStream output-stream or to the file at the path given by the string path. Alternatively, the model graph can be exported to a string with ExportString, which returns said string.

4.4-2 Importing TGCellModelGraph Objects
‣ ImportTGCellModelGraph( input-stream[, tg] )( function )
‣ ImportTGCellModelGraphFromFile( path[, tg] )( function )
‣ ImportTGCellModelGraphFromString( string[, tg] )( function )

Returns: model graph as TGCellModelGraph (see 4.1).

Import a model graph from the InputTextStream input-stream or from the file at the path given by the string path. Alterantively, the model graph can be imported from the string string. Optionally, the triangle group can be given as a ProperTriangleGroup object tg (see 2.1).

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 Bib Ind

generated by GAPDoc2HTML