Python package to install BOUT++ and its dependencies.
NOTE: This package is meant as a "last resort" to install BOUT++, for example when you are not a
root
user, and you are trying to install on a "tricky" system. Otherwise BOUT++ can easily be installed using docker or installed as explained in the BOUT ++ documentation .
bout_install
is a lightweight package, and requires only python3
,
requests
and an internet connection to run.
Building BOUT++
and dependencies can be done by executing
from bout_install import install_bout
install_bout(config_path=None, add_to_bashrc=False)
or from command-line
bout_install --help
which returns
usage: bout_install [-h] [-c CONFIG] [-a]
Install BOUT++ with dependencies
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
Path to the configuration file. Default is
/path/to/bout_install/bout_install/config.ini
-a, --add_to_bashrc If set, paths to binaries and libraries of
dependencies will be added to .bashrc. Default is
false
This will build BOUT++ and its dependencies according to the content of
config.ini
:
[bout_options]
# Let these be empty for default behavior
# Read docstring of InstallerUsingGit.InstallerUsingGit.__init__ for details
# NOTE: Commit 8567b2d5bb5f4b70face0b8d0849fc1bbafbbdb0 is known to work
git_dir =
checkout =
enable_checks = no
enable_optimize = 3
[install_options]
# If packages not residing in local should be used
use_preinstalled = false
# Let these be empty for default behavior
# Read docstring of Installer.Installer.setup_install_dirs for details
main_dir =
install_dir =
local_dir =
examples_dir =
[required]
fftw = true
hdf5 = true
mpi = true
netcdf = true
[optional]
cmake = false
ffmpeg = false
gcc = false
slepc = true
sundials = true
# NOTE: PETSc is installed if slepc is true
petsc = false
[versions]
cmake = 3.7.2
ffmpeg = 3.1.4
fftw = 3.3.6-pl2
gcc = 6.1.0
hdf5 = 1.10.1
mpi = 3.2
nasm = 2.13.03
netcdf = 4.4.1.1
netcdf_cxx = 4.3.0
# NOTE: Only certain PETSc versions are supported by BOUT++
petsc = 3.10.0
# NOTE: Sundials 2.7.0 have given openmp problems
sundials = 2.6.2
# NOTE: Must correspond to the PETSc version
slepc = 3.10.0
yasm = 1.3.0
x264 = x264-snapshot-20180709-2245-stable
The package can be installed from pip
:
pip install bout-install
Alternatively it can be installed from source
python setup.py install
The test suite can be executed through pytest
or through codecov pytest-cov
.
Installation through
pip install pytest
or
pip install codecov pytest-cov
and run with
pytest
or
pytest --cov=./
respectively
NOTE: Due to time constraints of automatic testing with Travis, the unittests have been "blinded" by adding a "." in front of the name. In this way
pytest
will ignore those test. "Un-blind" them by removing the leading " ." in order to run them.
This project is licensed under the GNU Lesser General Public License - see the LICENSE file for details
- The BOUT++ team for fast and accurate response on the issue tracker and slack-channel