Bordered Heegaard Floer homology
bfh_python
In a sequence of papers, Peter Ozsváth, Dylan Thurston, and I gave an algorithm for computing the Heegaard Floer invariant HF-hat of a closed 3-manifold and the Ozsváth-Szabó spectral sequence associated to a link in the 3-sphere. We also gave a computer implementation of the algorithm for computing HF-hat. In his thesis, Bohua Zhan improved the algorithm, using a notion of "local DA bimodules". He also re-implemented the original and improved algorithms, and extended the implementation to comptue the Ozsváth-Szabó spectral sequence.
Zhan's code is bfh_python, available here. If you are interested in using bordered Heegaard Floer homology for computations, you should use this.
I have written some documentation introducing bfh_python, available here. This was supported by NSF grant DMS-1810893.
Archaic code referenced in my papers
The following code is largely archaic; use bfh_python instead.
- A technology demonstration of a package to compute Heegaard Floer invariants using bordered Floer homology is available here. This is referenced in "Computing HF-hat by factoring mapping classes".
- You will need Sage to run this. I have not checked that it still works in current versions of Sage.
- This is version 0.2 (August 5, 2011). It corrects several (critical) bugs found by Bohua Zhan.
- This version contains new installation options, thanks to Nathan Dunfield. See the README (also courtesy of Dunfield).
- Partial documentation is included, in a PDF called BordProgDocs
- Copyright 2010-2012 Robert Lipshitz, Peter Ozsvath and Dylan Thurston.
- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- This was supported by NSF Grant DMS-0905796 and a Sloan Research Fellowship.
- An extension of part of the bordered Floer package was used to perform computations for "Noncommutative Hodge-to-de Rham spectral sequence and the Heegaard Floer homology of double covers" is available here.
- This is version 1 (March 14, 2012).
- Partial documentation is included.
- The extension is Copyright 2012 Robert Lipshitz and David Treumann.
- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- This was supported by NSF Grant DMS-1149800.
Khovanov homology
Sucharit Sarkar and I constructed a stable homotopy refinement of Khovanov homology and gave a formula for computing the induced map Sq2 on Khovanov homology. We also used this to give a refinement of Rasmussen's s-invariant. We (mostly Sucharit) implemented these algorithms in code. These were supported by NSF Grant DMS-1149800.
- Code for computing the actions of Sq1 and Sq2 on Khovanov homology. Used in our paper "A Steenrod square on Khovanov homology".
- Code for computing the refined s-invariant from Sq2 on Khovanov homology. Used in and based on our paper "A refinement of Rasmussen's s-invariant".
There is also faster code for doing these kinds of computations, written by others:
- Dirk Schütz program KnotJob and its variants.
- Cotton Seed's program KnotKit.
Here is an in progress Python program to compute Khovanov homology by a divide-and-conquer strategy, based on Khovanov's arc algebras and bimodules. Most of the code was written by Hanna Hoffman. This was supported by NSF Grant DMS-1560783.
The code (as a .tar.gz file).
You need to have Python3 and numpy installed for it to work. To compute homology over Fp you need the galois package.
To try it out, try for example:
from khcx import closed_braid, print_homol K = closed_braid(25*[1,2]) print_homol(K.graded_rat_homol()) #Rational Khovanov homology of torus knot T(3,25) print_homol(K.graded_Fp_homol(2)) #mod-2 Khovanov homology of T(3,25)
More examples of how it works are in the two test files.
If SnapPy is available, the code only computes absolute gradings. Otherwise, it only computes relative homological and quantum gradings.
The code will be updated as more features are added.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.