Installation
StableEMRIFisher requires Python 3.9 or later and has several key dependencies. The first main dependency is FastEMRIWaveforms (FEW), which is the current state-of-the-art framework for generating computationally efficient and accurate EMRI waveform models suitable for LISA data analysis.
Installing from Source
StableEMRIFisher works on both CPUs and GPUs. If installing directly from source, you can do so by cloning the repository and running the following commands:
git clone https://github.com/perturber/StableEMRIFisher.git
cd StableEMRIFisher
# Install CPU version
pip install -e ".[cpu]"
# Install with CUDA 11.x support if available
pip install -e ".[cuda11x]"
# Install with CUDA 12.x support if available
pip install -e ".[cuda12x]"
Note
This package requires the latest (v2.0.0) FastEMRIWaveforms (FEW) package to be installed. Installing StableEMRIFisher will install FastEMRIWaveforms by default (for both CPU and GPU).
StableEMRIFFisher will automatically install the following dependencies:
NumPy: Array computation and numerical operations
SciPy: Scientific computing utilities
h5py: HDF5 file format support for data storage
Cython: C-Extensions for python. Essential if the user wants to incorporate the LISA response.
matplotlib: To help assess stability of numerical derivatives
setuptools: To help build lisa-on-gpu and LISAAnalysisTools from source.
For full development, documentation and GPU support, we recommend installing all of the dependencies. For example, to install StableEMRIFisher with the development and documentation dependencies on a cuda-12x supported system, execute:
# Install with CUDA 12.x support if available
pip install -e ".[dev, docs, cuda12x]"
Building Documentation Locally
To build the documentation, make sure that the documentation dependencies are installed.
cd docs
make clean
make html
# View documentation
open _build/html/index.html # macOS
# or
xdg-open _build/html/index.html # Linux
Within docs/_build/html you can find the generated documentation. The file index.html can be opened in a web browser.
Response Function
The package StableEMRIFisher can optionally include the LISA response function to compute the Fisher matrix in the LISA detector frame. This requires two additional packages to be installed from source:
LISAAnalysisTools: To interface with the LISA response function and generate LISA-based Power Spectral Densities that describe the instrumental noise
git clone https://github.com/mikekatz04/LISAanalysistools.git python scripts/prebuild.py python setup.py install
LISA-on-gpu: GPU-accelerated time-domain LISA response function
git clone https://github.com/mikekatz04/lisa-on-gpu.git python scripts/prebuild.py python setup.py install
Verifying Installation
Test your installation by running:
import stableemrifisher
from stableemrifisher.fisher import StableEMRIFisher
# Check if GPU support is available
try:
import cupy as cp
print(f"GPU support available: {cp.cuda.is_available()}")
except ImportError:
print("GPU support not available (CuPy not installed)")
# Check FEW installation
try:
import few
print("FastEMRIWaveforms successfully imported")
except ImportError:
print("ERROR: FastEMRIWaveforms not found - please install FEW")