The ptolemy module
The ptolemy module is part of the popular 3-manifold software SnapPy and can be used to find boundary-unipotent representations of a 3-manifold into pSL(N,C) and computing invariants such as volume and Chern-Simons invariant by creating Ptolemy varieties and finding the solutions to them. The math is explained in:
The ptolemy module automatically either calls Magma or uses sage functions (when used within sage) to compute solutions. We have also precomputed solutions using Magma for many manifolds of the SnapPy census. The results can be downloaded below.
In brief
Type the following lines into sage (with SnapPy installed) or SnapPy (with Magma installed) to compute the volumes and Ptolemy fields of boundary-unipotent representations of the Figure-eight knot complement into PSL(2,C) with non-trivial obstruction class:
| |
from snappy import Manifold
M = Manifold("4_1")
H = M.ptolemy_obstruction_classes()
c = H[1] # non-trivial obstruction class
p = M.ptolemy_variety(2, c)
sols = p.compute_solutions()
[sol.volume_numerical() for sol in sols]
[sol.number_field() for sol in sols]
|
The three new relevant methods of the Manifold class in SnapPy are:
- ptolemy_variety
- ptolemy_obstruction_classes
- gluing_equations_pgl
Each method comes with documentation which can be obtained by starting SnapPy or sage (with SnapPy installed) and typing, e.g.:
from snappy import Manifold help(Manifold("4_1").ptolemy_variety)
Video tutorial (More coming Shortly)
Data for manifolds of the SnapPy census
We have computed the primary decompositions of the Ptolemy varieties for the manifolds of the SnapPy census using Magma.
Data
- SnapPy Orientable Cusped Census
-
Link complements (coming soon)
Example how to use a file
-
Download m015__sl3.magma_out (isometric to 52) and type into SnapPy or sage
| |
from snappy import ptolemy
cd /PATH_TO_WHERE_FILE_IS
sols = ptolemy.solutions_from_magma_file("m015__sl3.magma_out")
[sol.volume_numerical() for sol in sols]
|
-
And to test a solution against a manifold (here m015 from example above):
| |
sols[0].check_against_manifold(Manifold("m015"))
|
Note: This code would not work for a link complement because SnapPy uses a non-deterministic algorithm to triangulate link complements. Example of how to check solution for a link complement.
|