This is Michele Vallisneri's Synthetic LISA, now on GitHub with a cleaned-up version 2.
I thought I would celebrate the 2011 demise of the U.S. LISA project and the 2012 non-selection of the European eLISA by sharing this code as widely as possibly with posterity.
What is this?
Synthetic LISA, developed by Michele Vallisneri and John Armstrong at the Jet Propulsion Laboratory under the auspices of the LISA Mission Science Office, is a C++/Python package to simulate the LISA science process at the level of scientific and technical requirements. Synthetic LISA:
- generates synthetic time series of the LISA fundamental noises, as filtered through all the TDI observables;
- provides a streamlined module to compute the TDI responses to gravitational waves, according to a full model of TDI, including the motion of the LISA array, and the temporal and directional dependence of the armlengths;
- was a central component of lisatools, the software pipeline used to generate the Mock LISA Data Challenge datasets;
- can be used for a variety of LISA-like mission designs.
See the homepage at www.vallis.org.
- A a working installation of Python (2.6.X or 2.7.X) and of a Python-interoperable C/C++ compiler, preferably gcc (>= 4.0).
- numpy. If you have pip,
pip install numpywill do.
- pyRXP. You can do
pip install http://svn.reportlab.com/svn/public/pyRXP/trunk/src.
- SWIG. But you'll need it only if you need to modify the Python API.
If you have all the requirements,
python setup.py install
will do, which will install to the default location for your Python setup. To install to a specific directory, use
python setup.py install --prefix=$INSTALLDIR
$INSTALLDIR could be
$VIRTUAL_ENV (if you use virtualenv), etc.
A general description of the formulation, implementation, and usage of
Synthetic LISA can be found in
doc/manual.pdf included with the package. Those documents however are somewhat outdated. See also
doc/history.txt for a list of changes.
The briefest summary is that Synthetic LISA implements (at the C++ level) a number of objects that describe the LISA orbits, noises, and TDI observables, as well as gravitational-wave sources. The user writes Python scripts to create and connect these objects, and to generate synthetic data form them. The Python API is documented reasonably well in the docstrings found in
lisasim/lisasim-swig.i, which are accessible with Python's
help. The example scripts in
examples (and especially
examples/manual-examples) are a good place to start.
If you use Synthetic LISA in your work, please cite M. Vallisneri, "Synthetic LISA: Simulating Time Delay Interferometry in a Model LISA," Phys. Rev. D 71, 022001 (2005), which you can find in PRD and as gr-qc/0407102.
Synthetic LISA is licensed under the Caltech public domain license.