# 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 = TetrahedralOrientableCuspedTable 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 = TetrahedralNonorientableCuspedTable 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
>>> TetrahedralNonorientableCuspedCensus[:1.3]
[ntet01_00000(0,0)]

snappy.OctahedralOrientableCuspedCensus = OctahedralOrientableCuspedTable 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']


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]:
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]

snappy.OctahedralNonorientableCuspedCensus = OctahedralNonorientableCuspedTable 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 = CubicalOrientableCuspedTable 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 = CubicalNonorientableCuspedTable 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 = DodecahedralOrientableCuspedTable 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 = DodecahedralNonorientableCuspedTable 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 = IcosahedralOrientableClosedTable 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.

>>> IcosahedralOrientableClosedCensus[0].volume()
4.68603427

snappy.IcosahedralNonorientableClosedCensus = IcosahedralNonorientableClosedTable 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 = CubicalOrientableClosedTable 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 = CubicalNonorientableClosedTable 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 = DodecahedralOrientableClosedTable 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 = DodecahedralNonorientableClosedTable 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