Skip to content

Installation

Jon Drobny edited this page Oct 21, 2020 · 42 revisions

Without optional features, rustBCA should compile with one command using rustup/cargo on Windows, MacOS, and Linux systems. HDF5 and rcpr, the Adaptive Chebyshev Proxy Rootfinder with Automatic Subdivision and Polynomial Rootfinder package, work on Linux with some dependencies, listed below. HDF5 has been tested on Windows, but HDF5 1.10.6 must be used. rcpr has not yet been successfully compiled on Windows. However, it can be compiled on Windows Subsystem for Linux (WSL) and likely on Ubuntu for Windows or Cygwin.

Installation

Manual Dependences:

  • rustup, the Rust toolchain (includes cargo, the Rust package manager, rustc, the Rust compiler, and more).

Automatic Dependencies:

Optional Dependencies:

  • HDF5 libraries
  • rcpr: https://github.com/drobnyjt/rcpr the CPR and polynomial rootfinder, required for using attractive-repulsive interaction potentials such as Lennard-Jones or Morse, may require the following to be installed, depending on the system:
    • gcc
    • build-essential
    • cmake
    • gfortran
    • liblapack-dev
    • libblas-dev
    • liblapacke-dev
  • Python 3.6+
  • Numpy, Matplotlib, toml, Shapely, scipy

Ubuntu 18.04 LTS:

  1. Optional: install Python 3.6+ (this comes natively in Ubuntu 18.04)
  2. Install curl, apt-get install curl
  3. Install rustup, the Rust toolchain (includes rustc, the compiler, and cargo, the package manager) from https://rustup.rs/
  4. Optional: Install pip for Python-3, apt-get install python3-pip
  5. Optional: Install Python libraries for making input files, python3 -m pip install numpy matplotlib shapely scipy
  6. Optional: Install Python toml library from source:
  • git clone https://github.com/uiri/toml.git
  • cd toml
  • python3 setup.py install
  1. Install Cargo, apt install cargo
  2. Build RustBCA
  • git clone https://github.com/lcpp-org/rustBCA
  • cd rustBCA
  • cargo build --release
  1. Optional: Build RustBCA with optional dependencies, hdf5 and/or rcpr (with your choice of backed: openblas, netlib, or intel-mkl):
  • cargo build --release --features cpr_rootfinder_netlib,hdf5_input
  • cargo build --release --features cpr_rootfinder_openblas,hdf5_input
  • cargo build --release --features cpr_rootfinder_intel_mkl,hdf5_input
  1. input.toml is the input file -- see Usage for more information
  2. cargo test will run all required tests
  3. Optional: cargo test --features cpr_rootfinder_* will run all required and optional tests for desired backend *