```
\        /   /   |-\    -----
 \      /    |   |  \   |
  \    /    /    |   |  |--
   \  /     |    |  /   |
    \/      /    |-/    -----

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
```

This is VIDE, the Void IDentification and Examination toolkit.

For more information, see http://www.cosmicvoids.net

Please cite arXiv:1406.1191 and arXiv:0712.0349 if you use this software, 
using the following suggested sentence:

"This work uses voids identified with VIDE\footnote{\url{http:www.cosmicvoids.net}} (Sutter et al. 2014), 
which implements an enhanced version of ZOBOV (Neyrinck 2008) to construct 
voids with a watershed algorithm."


License/Copyright information
-----------------------------

Copyright (C) 2010-2020 Guilhem Lavaux, 2011-2014 P.M. Sutter.
This software is put under the GNU Public License. 
Please see LICENSE for further information.

Mainline VIDE contributions from Ben Wandelt, Nico Hamaus, Alice Pisani, 
Paul Zivick, and Qingqing Mao.
This toolkit includes ZOBOV, originally developed by Mark Neyrinck. 
See `zobov/zobov_readme.txt` for copyright/license information. 
SDF library provided by Michael S. Warren and John Salmon. 
HOD fitting code provided by Francisco Navarro. 
HOD halo population code provided by Jeremy Tinker.
RAMSES module provided by Benjamin B. Thompson.


Requirements
------------

The package swig needs to be installed and available in the PATH (http://www.swig.org/). It 
is required by scipy and we have not decided to bundle it with VIDE at the moment.


Quick Start Guide
-----------------

It is generally advised to create a python3 virtual environment. This can be achieved as follows
```
python3 -m venv --system-site-packages $PLACE_OF_VENV
source $PLACE_OF_VENV/bin/activate
```
where `$PLACE_OF_VENV` is where you decide to put your environment on your
harddrive (e.g. `$HOME/my_venv`).

Note: on OSX there are some difficulties to use the native clang compiler.
Please use a brew installed compiler like GCC.
```
brew install gcc
export CC=/usr/local/bin/gcc-10
export CXX=/usr/local/bin/g++-10
```
The gcc-10 is of course dependent on the version that was installed by brew.

After this step you may start the build process
```
python3 setup.py build
```

It will take a lot of time. It may also download python packages that you miss
on your system.  On BigSur some of them fail to compile by default. 

After installing the package with 
```python3 setup.py install
``` 

To test that the package is indeed installed you can execute

```
python3 -m vide_pipeline
```
which will state
```
Usage: python3 -m vide_pipeline parameter_file.py
```

The VIDE tools are all packaged in the `vide` package. 


Running with observation
-----------------------

An example parameter file and dataset is given in the examples/example_observation directory. The parameter file contains all the information VIDE needs to run: where to find inputs and place outputs, tolerances for managing boundary handling, and information about your particular datasets, like redshift boundaries. To see how this works, here is an example:

cd examples/example_observation
python3 -m vide_pipeline example_observation.py

Running with simulation
-----------------------

Working with simulations requires a preliminary step, consisting in using the script "vide_prepare_simulation" which is installed automatically. This script performs necessary processing on your simulation file, such as extracting slices, performing subsampling, placing particles on a lightcone, and so on. For a demonstration, see the "example_simulation.py" parameter file in the examples/example_simulation/ directory. Running this script creates a series of auxillary parameter files that can then be run individually for void finding. Here is an example of this procedure:

cd examples/example_simulation
vide_prepare_simulation --all --parm example_simulation.py
python3 -m vide_pipeline example_simulation/sim_ss1.0.py
```


Notes for CONDA
---------------


If you use a conda installation, you have to be sure to use all the building tools that 
are consistent. On linux that means for example installing the conda packages `gcc_linux-64`
 and `gxx_linux-64`. In addition to that it is recommended to define the environment variable 
`LIBRARY_PATH=the_path_of_your_conda_environment_with_/lib`. For example if your environment
is in '/home/user/conda' you should define

```
export LIBRARY_PATH=/home/user/conda/lib
```

You can then initiate the construction with

```
python3 setup.py build
```

Version Summary
-----------------

v1.0 - Initial Release
v2.0 - Ported to python3, revisited build system
