Censuses of Platonic manifolds

The following manifolds were tabulated in A census of tetrahedral manifolds and in soon to be published work by Goerner.

snappy.TetrahedralOrientableCuspedCensus = TetrahedralOrientableCuspedCensus without filters

Iterator for the tetrahedral orientable cusped hyperbolic manifolds up to 25 tetrahedra, i.e., manifolds that admit a tessellation by regular ideal hyperbolic tetrahedra.

>>> for M in TetrahedralOrientableCuspedCensus(solids = 5):
...     print(M, M.volume())
otet05_00000(0,0) 5.07470803
otet05_00001(0,0)(0,0) 5.07470803
>>> TetrahedralOrientableCuspedCensus.identify(Manifold("m004"))
otet02_00001(0,0)
snappy.TetrahedralNonorientableCuspedCensus = TetrahedralNonorientableCuspedCensus without filters

Iterator for the tetrahedral non-orientable cusped hyperbolic manifolds up to 21 tetrahedra, i.e., manifolds that admit a tessellation by regular ideal hyperbolic tetrahedra.

>>> len(TetrahedralNonorientableCuspedCensus)
25194
>>> list(TetrahedralNonorientableCuspedCensus[:1.3])
[ntet01_00000(0,0)]
snappy.OctahedralOrientableCuspedCensus = OctahedralOrientableCuspedCensus without filters

Iterator for the octahedral orientable cusped hyperbolic manifolds up to 7 octahedra, i.e., manifolds that admit a tessellation by regular ideal hyperbolic octahedra.

>>> OctahedralOrientableCuspedCensus.identify(Manifold("5^2_1"))
ooct01_00001(0,0)(0,0)

For octahedral manifolds that are also the complement of an Augmented Knotted Trivalent Graph (AugKTG), the corresponding link is included:

>>> M = OctahedralOrientableCuspedCensus['ooct04_00034']
>>> M.link()
<Link: 4 comp; 17 cross>

The link can be viewed with M.plink(). To only see complements of AugKTGs, supply isAugKTG = True:

>>> len(OctahedralOrientableCuspedCensus(isAugKTG = True))
238
>>> for M in OctahedralOrientableCuspedCensus(isAugKTG = True)[:5]:
...     print(M, M.link().DT_code(DT_alpha=True))
ooct02_00001(0,0)(0,0)(0,0)(0,0) DT[mdbceceJamHBlCKgdfI]
ooct02_00002(0,0)(0,0)(0,0) DT[lcgbcIkhLBJecGaFD]
ooct02_00003(0,0)(0,0)(0,0) DT[icebbGIAfhcEdB]
ooct02_00005(0,0)(0,0)(0,0) DT[hcdbbFHegbDAc]
ooct04_00027(0,0)(0,0)(0,0)(0,0) DT[zdpecbBujVtiWzsLQpxYREadhOKCmFgN]
snappy.OctahedralNonorientableCuspedCensus = OctahedralNonorientableCuspedCensus without filters

Iterator for the octahedral non-orientable cusped hyperbolic manifolds up to 5 octahedra, i.e., manifolds that admit a tessellation by regular ideal hyperbolic octahedra.

>>> for M in OctahedralNonorientableCuspedCensus(solids = 3, betti = 3,cusps = 4):
...     print(M, M.homology())
noct03_00007(0,0)(0,0)(0,0)(0,0) Z/2 + Z + Z + Z
noct03_00029(0,0)(0,0)(0,0)(0,0) Z/2 + Z + Z + Z
noct03_00047(0,0)(0,0)(0,0)(0,0) Z/2 + Z + Z + Z
noct03_00048(0,0)(0,0)(0,0)(0,0) Z/2 + Z + Z + Z
snappy.CubicalOrientableCuspedCensus = CubicalOrientableCuspedCensus without filters

Iterator for the cubical orientable cusped hyperbolic manifolds up to 7 cubes, i.e., manifolds that admit a tessellation by regular ideal hyperbolic octahedra.

>>> M = TetrahedralOrientableCuspedCensus['otet05_00001']
>>> CubicalOrientableCuspedCensus.identify(M)
ocube01_00002(0,0)(0,0)
snappy.CubicalNonorientableCuspedCensus = CubicalNonorientableCuspedCensus without filters

Iterator for the cubical non-orientable cusped hyperbolic manifolds up to 5 cubes, i.e., manifolds that admit a tessellation by regular ideal hyperbolic octahedra.

>>> for M in CubicalNonorientableCuspedCensus[-3:]:
...     print(M, M.volume())
ncube05_30945(0,0) 25.37354016
ncube05_30946(0,0)(0,0) 25.37354016
ncube05_30947(0,0)(0,0) 25.37354016
snappy.DodecahedralOrientableCuspedCensus = DodecahedralOrientableCuspedCensus without filters

Iterator for the dodecahedral orientable cusped hyperbolic manifolds up to 2 dodecahedra, i.e., manifolds that admit a tessellation by regular ideal hyperbolic dodecahedra.

Complement of one of the dodecahedral knots by Aitchison and Rubinstein:

>>> M=DodecahedralOrientableCuspedCensus['odode02_00913']
>>> M.dehn_fill((1,0))
>>> M.fundamental_group()
Generators:

Relators:
snappy.DodecahedralNonorientableCuspedCensus = DodecahedralNonorientableCuspedCensus without filters

Iterator for the dodecahedral non-orientable cusped hyperbolic manifolds up to 2 dodecahedra, i.e., manifolds that admit a tessellation by regular ideal hyperbolic dodecahedra.

>>> len(DodecahedralNonorientableCuspedCensus)
4146
snappy.IcosahedralOrientableClosedCensus = IcosahedralOrientableClosedCensus without filters

Iterator for the icosahedral orientable closed hyperbolic manifolds up to 4 icosahedra, i.e., manifolds that admit a tessellation by regula finite hyperbolic icosahedra.

>>> M = IcosahedralOrientableClosedCensus[0]
>>> M.volume()
4.68603427
>>> M
oicocld01_00000(1,0)
snappy.IcosahedralNonorientableClosedCensus = IcosahedralNonorientableClosedCensus without filters

Iterator for the icosahedral non-orientable closed hyperbolic manifolds up to 3 icosahedra, i.e., manifolds that admit a tessellation by regular finite hyperbolic icosahedra.

>>> list(IcosahedralNonorientableClosedCensus)
[nicocld02_00000(1,0)]
snappy.CubicalOrientableClosedCensus = CubicalOrientableClosedCensus without filters

Iterator for the cubical orientable closed hyperbolic manifolds up to 10 cubes, i.e., manifolds that admit a tessellation by regular finite hyperbolic cubes.

>>> len(CubicalOrientableClosedCensus)
69
snappy.CubicalNonorientableClosedCensus = CubicalNonorientableClosedCensus without filters

Iterator for the cubical non-orientable closed hyperbolic manifolds up to 10 cubes, i.e., manifolds that admit a tessellation by regular finite hyperbolic cubes.

>>> len(CubicalNonorientableClosedCensus)
93
snappy.DodecahedralOrientableClosedCensus = DodecahedralOrientableClosedCensus without filters

Iterator for the dodecahedral orientable closed hyperbolic manifolds up to 3 dodecahedra, i.e., manifolds that admit a tessellation by regular finite hyperbolic dodecahedra with a dihedral angle of 72 degrees.

The Seifert-Weber space:

>>> M = DodecahedralOrientableClosedCensus(solids = 1)[-1]
>>> M.homology()
Z/5 + Z/5 + Z/5
snappy.DodecahedralNonorientableClosedCensus = DodecahedralNonorientableClosedCensus without filters

Iterator for the dodecahedral non-orientable closed hyperbolic manifolds up to 2 dodecahedra, i.e., manifolds that admit a tessellation by regular finite hyperbolic dodecahedra with a dihedral angle of 72 degrees.

>>> DodecahedralNonorientableClosedCensus[0].volume()
22.39812948