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:
CellCenter
(4.3-3): the cell center of the model graph
ModelType
(4.3-5): identifier of the type of model, e.g., tessellation, kagome, Lieb etc.
CellVertices
(4.3-7): the vertices of the model graph, i.e., the sites of the tight-binding model
CellEdges
(4.3-9): the edges of the model graph, i.e., the hoppings of the tight-binding model, including potential translations associated with them
CellFaces
(4.3-11): the oriented faces of the model graph, i.e., the plaquettes of the tight-binding model
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.
There are several functions for constructing specfic tight-binding models:
TGCellModelGraph
(4.2-1): constructs a model graph from a cell graph and a specification of which cell-graph vertices are to be used as vertices of the model graph, which define edges, and which define faces of the model graph.
TessellationModelGraph
(4.2-2): constructs a tessellation graph from a cell graph of a triangle group.
KagomeModelGraph
(4.2-4): constructs a kagome graph from a cell graph of a triangle group.
LiebModelGraph
(4.2-5): constructs a Lieb graph from a cell graph of a triangle group.
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)
.
‣ 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).
‣ 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).
‣ 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.
‣ 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).
‣ 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).
‣ GetProperTriangleGroup ( model ) | ( operation ) |
returns the proper triangle group \Delta^+ on which the model is based as a ProperTriangleGroup
object (see 2.1).
‣ CellRelators ( model ) | ( operation ) |
returns the relators in terms of elements of GetProperTriangleGroup(
model)
specifying the cell on which the model is defined.
‣ 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.
‣ GetTGCell ( model ) | ( operation ) |
returns the associated TGCell
object (see 3.1).
‣ ModelType ( model ) | ( operation ) |
returns a the identifier of the model type.
The following model types are currently implemented:
Derived graph: general model graph with vertices, edges, and faces derived from the cell graph. The model type is given as
[ "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.
Tessellation graph: tessellation model graph derived from a cell graph of a triangle group. The model type is given as
[ "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 graph: kagome model graph derived from a cell graph of a triangle group. The model type is given as
[ "KAGOME", p, [ "VEF", [ [ 1 ], [ 2 ], [ 2, 3 ] ] ] ]
See KagomeModelGraph
(4.2-4) for details.
Lieb graph: Lieb model graph derived from a cell graph of a triangle group. The model type is given as
[ "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.
‣ 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
Derived graph: "derived-model<[vfs,efs,ffs]>"
Tessellation graph: "{p,q}-tess"
Kagome graph: "p-kagome"
Lieb graph: "{p,q}-Lieb"
‣ 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.
‣ CellVertexPositions ( model ) | ( operation ) |
returns the positions of the vertices as elements of the proper triangle group \Delta^+.
‣ 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.
‣ 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).
‣ 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.
‣ 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.
‣ 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).
generated by GAPDoc2HTML