Skip to main content

Python package to install BOUT++ and its dependencies

Project description

Test Docker codecov pypi package Python PEP8 License

bout_install

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 .

Getting Started

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

Installing from pip

The package can be installed from pip:

pip install bout-install

Installing from source

Alternatively it can be installed from source

python setup.py install

Running the tests

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.

License

This project is licensed under the GNU Lesser General Public License - see the LICENSE file for details

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bout_install-0.1.9.tar.gz (23.8 kB view hashes)

Uploaded Source

Built Distribution

bout_install-0.1.9-py3-none-any.whl (34.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page