Sequences of triangle-group quotients G^{(n)} are used to approximate the thermodynamic limit, either in real space [LP23], or in reciprocal space [LMB23]. They are constructed as quotients of the (proper) triangle group \Delta^+ by translation groups \Gamma^{(n)}\triangleleft\Delta^+ such that
\Delta^+ = \Gamma^{(0)} \triangleright \Gamma^{(1)} \triangleright \Gamma^{(2)} \triangleright \cdots
and \bigcap_{n\geq 0} \Gamma^{(n)} = {1}.
To check whether a given sequence of triangle-group quotients is valid, i.e., whether the corresponding translation groups form a normal sequence as described above, the following function can be used:
‣ IsTGQuotientSequence ( sequence ) | ( function ) |
returns true if the given list of TGQuotient
objects (see 2.3) is a valid sequence of quotient groups of the same triangle group, i.e., if the corresponding translation groups form a normal sequence as described above.
Sequences of quotient groups can efficiently be identified through the construction of adjacency matrices that capture the normal subgroup relation between pairwise distinct translation groups of corresponding quotients.
The quotient sequences structure is implemented as an object of category TGQuotientSequencesStructure
with the following components:
Signature
(6.2-2): signature of the underlying triangle group
BoundByGenus
(6.2-3): upper bound of the triangle group quotient genus
GetListTGQuotients
(6.2-4): list of quotients with genus smaller than upper bound of the triangle group quotient genus
MirrorSymmetries
(6.2-5): binary list, 1 if quotients have mirror symmetries 0 otherwise
IsSparse
(6.2-6): boolean, if true the adjacency matrix is sparsely represented
AdjacencyMatrix
(6.2-7): adjacency matrix, which includes all quotients with and without mirror symmetries
NearestNeighborAdjacencyMatrix
(6.2-8): adjacency matrix of normal subgroup relation between consecutive translation groups of corresponding quotients
LongestSequence
(6.2-9): list of longest sequence of quotient groups and is printed in the form
TGQuotientSequencesStructure( [r, q, p], boundByGenus = int, lstTGQuotients = [[genus, number], ... ], lstMirrorSymmetries = [ 0 / 1 , ... ], sparse = bool, adjMatrix = [[ ... ], ... ] )
‣ TGQuotientSequencesStructure ( tg ) | ( function ) |
Returns: quotient sequences structure as TGQuotientSequencesStructure
object.
Construct the quotient sequences structure for the triangle group tg (\Delta^+), given as ProperTriangleGroup
object (see 2.1), for available quotients from the library, i.e., Conder’s list.
The option boundByGenus
, an upper bound, can be passed, which takes a positive integer below 102, limiting the number of quotients considered. If a positive integer below 102 is provided, triangle group quotients with genus smaller than boundByGenus
will be used, a value above 102 will default back to 66. The default is 66. The option sparse
, which takes a boolean, can be used to generate a sparse representation of the adjacency matrix. If sparse is true the adjacency matrix is of the form [ [ [ rowIdx, colIdx ], entry ], ... ]
, where entry
is the corresponding matrix entry at position rowIdx
and colIdx
, which represent indices of the matrix rows and columns, respectively. The default is false.
This function saves constructed translation groups in cache, which can be flushed by calling FlushCaches
(see section Mutability and Copying in the GAP Reference Manual).
‣ Signature ( tgQSS ) | ( operation ) |
returns the signature of the triangle group associated with the quotient sequences structure tgQSS. [ r, q, p ]
.
‣ BoundByGenus ( tgQSS ) | ( operation ) |
returns the upper bound used to generate the adjacency matrix of the quotient sequences structure tgQSS.
‣ GetListTGQuotients ( tgQSS ) | ( operation ) |
returns the list of quotients used to generate the adjacency matrix of the quotient sequences structuretgQSS. If the option boundByGenus
was used in the generation of tgQSS, a corresponding reduced list will be returned. The default is ListTGQuotients(Signature(tgQSS))
.
‣ MirrorSymmetries ( tgQSS ) | ( operation ) |
returns an ordered binary list of ones and zeros, 1
if quotients have mirror symmetries 0
otherwise. The position of each entry corresponds to the position of quotients in the list GetListTGQuotients(tgQSS)
.
‣ IsSparse ( tgQSS ) | ( operation ) |
returns a boolean, true
if the adjacency matrix in tgQSS is sparse false
otherwise.
‣ AdjacencyMatrix ( tgQSS ) | ( operation ) |
returns the adjacency matrix which captures the normal subgroup relation between pairwise distinct translation groups of corresponding quotients, of dimension Length(GetListTGQuotients(tgQSS))
x Length(GetListTGQuotients(tgQSS))
. If IsSparse(tgQSS)
is true, the adjacency matrix will be sparsely represented [ [ [ rowIdx, colIdx ], entry ], ... ]
, where entry
is the corresponding matrix entry at position rowIdx
and colIdx
, which represent indices of the matrix rows and columns, respectively.
‣ NearestNeighborAdjacencyMatrix ( tgQSS ) | ( operation ) |
returns the adjacency matrix which captures the normal subgroup relation between consecutive translation groups of corresponding quotients, with dimensions Length(GetListTGQuotients(tgQSS))
x Length(GetListTGQuotients(tgQSS))
. If IsSparse(tgQSS)
is true, the adjacency matrix will be sparsely represented [ [ [ rowIdx, colIdx ], entry ], ... ]
, where entry
is the corresponding matrix entry at position rowIdx
and colIdx
, which represent indices of the matrix rows and columns, respectively.
‣ LongestSequence ( tgQSS ) | ( operation ) |
returns a list of quotients of the form [[genus, number], ... ]
a normal sequence as described above. The returned list of quotients is not necessarily the only longest normal sequence of that length.
The option quotient
can be provided, specifying the first quotient in the list. This is either an integer giving the position in Conder’s list or a list of the form [genus, number]
giving the genus and number in Conder’s list of the quotient. The default is 0, i.e., no first quotient specified. The option nonMirrorSymmetric
, which takes a boolean, enables that the list of quotients includes quotients that have no mirror symmetries.
While such sequences can be found in the library of triangle-group quotients described in 2.4, an exhaustive search based on low-index normal subgroups such as the one that that library is based on is not efficient for producing long sequences directly. However, given a normal sequence of translation groups and one additional translation group not part of the sequence, it is possible to extend the sequence by forming intersections [Len23]. Let \Gamma^{(n)} be the last element of the sequence and \Gamma'\triangleleft\Delta^+ a translation group not part of the sequence, then
\Gamma^{(n+1)} = \Gamma^{(n)} \cap \Gamma'
is a normal subgroup of both \Gamma^{(n)} and \Delta^+ (but not necessarily a strict subgroup of \Gamma^{(n)}). This can be used to extend sequences of triangle-group quotients.
The HyperCells package implements the following functions to extend sequences:
‣ ExtendTGQuotientSequence ( quotients, sequence ) | ( function ) |
Returns: sequence of triangle-group quotients as a list of TGQuotient
objects.
Extends the sequence sequence using the list of additional quotients quotients, where both arguments are lists of TGQuotient
objects (see 2.3). Intersections of the last element of the (extended) sequences are successively formed with the quotients in quotients.
‣ NextTGQuotientOptions ( quotients, Q0 ) | ( function ) |
Returns: list of viable options of quotients in the form [ [ Q, ind ], ... ]
, where Q
is a TGQuotient
object and ind
is the index of the intersection of the translation groups of Q
and Q0
in the translation group of Q0
.
Searches for viable options to extend a sequence ending with the quotient Q0 using the list of additional quotients quotients, where all quotients are given as TGQuotient
objects (see 2.3).
‣ Export ( tgQSS, output-stream ) | ( operation ) |
‣ Export ( tgQSS, path ) | ( operation ) |
‣ ExportString ( tgQSS ) | ( operation ) |
Export the quotient sequences structure TGQuotientSequencesStructure
tgQSS to the OutputTextStream
output-stream or to the file at the path given by the string path. Alternatively, the quotient sequences structure can be exported to a string with ExportString
, which returns said string.
‣ ImportTGQuotientSequencesStructure ( input-stream ) | ( function ) |
‣ ImportTGQuotientSequencesStructureFromFile ( path ) | ( function ) |
‣ ImportTGQuotientSequencesStructureFromString ( string ) | ( function ) |
Returns: quotient sequences structure as TGQuotientSequencesStructure
(see 6.2).
Import an the quotient sequences structure from the InputTextStream
input-stream or from the file at the path given by the string path. Alternatively, the the quotient sequences structure can be imported from the string string.
‣ ExportTGQuotientList ( list, path ) | ( function ) |
Exports the given list of TGQuotient
objects (see 2.3) as a text file.
‣ ExportTGQuotientSequences ( seqs, path ) | ( function ) |
Exports the given list of sequences, each a list of TGQuotient
objects (see 2.3) as a text file.
‣ ImportTGQuotientList ( input-stream ) | ( function ) |
‣ ImportTGQuotientListFromFile ( path ) | ( function ) |
Returns: list of TGQuotient
objects.
Import a list of TGQuotient
objects (see 2.3) from the input-stream input-stream or from a file at path path.
‣ ImportTGQuotientSequences ( input-stream ) | ( function ) |
‣ ImportTGQuotientSequencesFromFile ( path ) | ( function ) |
Returns: list of list of TGQuotient
objects.
Import a list of lists of TGQuotient
objects (see 2.3) from the input-stream input-stream or from a file at path path.
generated by GAPDoc2HTML