https://github.com/arguelles/nuSQuIDS
Raw File
Tip revision: 640e1c38dd2a3f67cb017199ad729114b7fc04eb authored by Carlos on 12 March 2024, 10:13:20 UTC
fix constness in implementation of quickwrite
Tip revision: 640e1c3
README.md
nuSQuIDS
========

A user manual can be generated by: make docs;

Prerequisites
-------------

The following packages are required to build and use the client library, and
can probably be had from your favorite package manager:

* gsl (>= 1.15): http://www.gnu.org/software/gsl/
* hdf5 with c bindings: http://www.hdfgroup.org/HDF5/
* C++ compiler with C++11 support
* SQUIDS (>= 1.2): https://github.com/jsalvado/SQuIDS/

PythonToolBox
-------------
Run online jupyter notebook example
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/arguelles/nuSQuIDS/master?filepath=resources%2Fpython%2Fexample%2FnuSQUIDS-DEMO.ipynb) 

Additionally for compiling and using the python bindings:

Required:
* boost (>= 1.63): http://www.boost.org/
* numpy: http://www.numpy.org/
* matplotlib: http://matplotlib.org/

Recommended:
* ipython: http://ipython.org/

Documentation
-------------

The LaTeX and pdf files are included in nuSQuIDS/doc/ folder.

Configuration
-------------

The path for the GSL libraries can be specified by running:

	./configure --with-gsl-incdir=GSL_include_path --with-gsl-libdir-=GSL_library_path

or, assuming a standard installation into 'include' and 'lib' subdirectories within a common prefix:

	./configure --with-gsl=GSL_prefix

The path for the HDF5 libraries can be specified by running:

	./configure --with-hdf5-incdir=HDF5_include_path --with-hdf5-libdir=HDF5_library_path

or more simply 

	./configure --with-hdf5=HDF5_prefix

Finally, the path for SQuIDS can be specified by:

	./configure --with-squids-incdir=SQuIDS_include_path --with-squids-libdir=SQuIDS_library_path

or commonly just

	./configure --with-squids=SQuIDS_prefix

To compile the python interface it is additionally necessary to pass the 
`--with-python-bindings` option to `configure`. Also, the boost python library, 
a working python installation, and numpy must be available. The location of the
boost library can be specified using:

	./configure --with-boost-incdir=boost_include_path --with-boost-libdir-=boost_library_path

or in simple cases

	./configure --with-boost=boost_prefix

The python executable (which will also be used to locate numpy) can be specified with:

	./configure --python-bin=PYTHON_EXECUTABLE

Once configuration is complete the library can be compiled by running:

	make

Unit tests to verify correct behavior can be run using:

	make test

A set of example programs demonstrating usage and functionality 
can be compiled with the command:

	make examples

The resulting example executables can then be found in the various 
subdirectories of `examples`

Finally the library can be installed using:

	make install

By default this will attempt to install the library within /usr/local; 
this can be changed by using the --prefix option when running configure:

	./configure --prefix=$HOME

Compiling the Python Interface
------------------------------

If you have activated the python interface by doing `--with-python-bindings` then proceed according to this instructions
Even when configured the python interface is not built with the main library. 
To compile it do the following:

	cd resources/python/src/
	make

After successful compilation the bindings will be stored in `resources/python/bindings/`. 
To make them available from within python, modify your PYTHONPATH:

	export PYTHONPATH=$(PATH_TO_nuSQUIDS)/resources/python/bindings/:$PYTHONPATH
back to top