RASPA3 3.0.0
A molecular simulation code for computing adsorption and diffusion in nanoporous materials
Loading...
Searching...
No Matches
RASPA3


Markdownify
RASPA3

This software is a general purpose classical simulation package.

It has been developed at the University of Amsterdam (Amsterdam, The Netherlands) during 2022/2024 in active collaboration with Eindhoven University of Technology (Eindhoven, Netherlands), Delft University of Technology (Delft, The Netherlands), and Northwestern University (Evanston, USA).

GitHub Actions Workflow Status GitHub Issues or Pull Requests Documentation Unittests

AuthorsContributorsRunningPythonDependenciesInstallation Guide

Authors

Drs. Youri Ran, University of Amsterdam
Drs. Shrinjay Sharma, Delft University of Technology
Dr. Salvador R.G. Balestra, Universidad Pablo de Olavide
Drs. Zhao Li, Northwestern University
Prof. Sofia Calero, Eindhoven University of Technology
Prof. Thijs Vlugt, Delft University of Technology
Prof. Randall Q. Snurr, Northwestern University
Dr. David Dubbeldam, University of Amsterdam

Contributors

Alvaro Vazquez Mayagoitia, Argonne National Lab, contribution to openmp-implementation discussion
Anserme, better README.md and packaging

Citing RASPA3

Y.A. Ran, S. Sharma, S.R.G. Balestra, Z. Li, S. Calero, T.J.H. Vlugt, R.Q. Snurr, D. Dubbeldam, _"RASPA3: A Monte Carlo code for computing adsorption and diffusion in nanoporous materials and thermodynamics properties of fluids"_, 2024, J. Chem. Phys., 161, 114106, DOI

Running

cd examples/basic/1_mc_methane_in_box
./run

Implemented so far

  • rigid molecules and rigid framework
  • multiple systems, box or framework
  • grand canonical ensemble (CBMC, CFCMC, and CB/CFCMC)
  • Gibbs ensemble (CBMC, CFCMC, and CB/CFCMC)
  • Monte Carlo NPT ensemble
  • transition matrix Monte Carlo
  • Molecular Dynamics NVT ensemble (Nose-Hoover thermostat)
  • binary restart
  • blocking pockets
  • PDB-movies, energy histograms, number of molecule histograms
  • RDF, MSD-order-N, VACF, density grids (cube files)
  • charge equilibration

Todo-list

  • tail-corrections for CFCMC
  • restart-file
  • MC/MD hybrid move
  • grids for rigid frameworks
  • flexible molecules
  • flexible frameworks
  • reaction ensemble
  • identity change
  • polarization
  • cell-lists for rigid frameworks
  • partial molar volumes
  • zeo++-type calculations
  • partial molar enthalpies/volumes
  • optimization
  • elastic constants
  • HDF5 property writing

Installation Guide

RASPA3 makes use of modern C++ and requires C++ version 23. This is only included with later versions of compilers and the code is only tested using LLVM & Clang version 18. All prebuilt versions are built with static linking, making it unnecessary for users to install dependencies.

For contributors or others who need to build from scratch, we recommend loading the supplied Dockerfiles, which include all the dependencies.

For python users we currently only offer installation via pip, that includes building from source, requiring users to have installed all dependencies.

  • Prebuilt installation
  • Building from source
    • Presets
    • Linux
      • Ubuntu 24
      • Fedora 40
    • macOS
    • Python

Download prebuilt installation

In Github, on the right side of the page, you will find the releases section. Select your OS and use the installer to install RASPA3. We provide packages for:

  • arm64
  • Intel/AMD core-avx2
  • Intel skylake-avx512

    Use the 'core-avx2' version for Intel and AMD cpu's that support the avx2 instruction set:
  • Intel: Haswell processors 2013 and newer
  • AMD: Excavator processors 2015 and newer

    The 'skylake-avx512' binary can provide a roughly 25% increase in speed compared to the 'core-avx2' on Intel cpu's that support avx512.

Build from source

Dependencies

  • cmake 3.28 or higher
  • ninja 1.11 or higher
  • llvm-18 or higher
  • python3 and pybind11
  • blas and lapack (64-bit integers)
  • openmp
  • hfd5

presets

cmake –list-presets
Available configure presets:

‍"macos-x64-core-avx2"
"macos-x64-skylake-avx512"
"macos-x64-debug"
"macos-x64-profile"
"macos-apple-silicon"
"macos-apple-silicon-debug"
"macos-apple-silicon-profile"
"windows-x64"
"windows-arm64"
"linux-x86_64"
"linux-x86_64-carbon"
"linux-x86_64-core-avx2-opensuse-leap-15.2"
"linux-x86_64-core-avx2-opensuse-leap-15.3"
"linux-x86_64-core-avx2-opensuse-leap-15.4"
"linux-x86_64-core-avx2-opensuse-leap-15.5"
"linux-x86_64-core-avx2-opensuse-tumbleweed"
"linux-x86_64-core-avx2-archlinux"
"linux-x86_64-core-avx2-redhat-6"
"linux-x86_64-core-avx2-redhat-7"
"linux-x86_64-core-avx2-redhat-8"
"linux-x86_64-core-avx2-redhat-9"
"linux-x86_64-core-avx2-debian-12"
"linux-x86_64-core-avx2-debian-11"
"linux-x86_64-core-avx2-debian-10"
"linux-x86_64-core-avx2-ubuntu-24"
"linux-x86_64-core-avx2-ubuntu-22"
"linux-x86_64-core-avx2-ubuntu-20"
"linux-x86_64-core-avx2-fedora-35"
"linux-x86_64-core-avx2-fedora-36"
"linux-x86_64-core-avx2-fedora-37"
"linux-x86_64-core-avx2-fedora-38"
"linux-x86_64-core-avx2-fedora-39"
"linux-x86_64-core-avx2-fedora-40"
"linux-x86_64-skylake-avx512-opensuse-leap-15.2"
"linux-x86_64-skylake-avx512-opensuse-leap-15.3"
"linux-x86_64-skylake-avx512-opensuse-leap-15.4"
"linux-x86_64-skylake-avx512-opensuse-leap-15.5"
"linux-x86_64-skylake-avx512-opensuse-tumbleweed"
"linux-x86_64-skylake-avx512-archlinux"
"linux-x86_64-skylake-avx512-redhat-6"
"linux-x86_64-skylake-avx512-redhat-7"
"linux-x86_64-skylake-avx512-redhat-8"
"linux-x86_64-skylake-avx512-redhat-9"
"linux-x86_64-skylake-avx512-debian-12"
"linux-x86_64-skylake-avx512-debian-11"
"linux-x86_64-skylake-avx512-debian-10"
"linux-x86_64-skylake-avx512-ubuntu-24"
"linux-x86_64-skylake-avx512-ubuntu-22"
"linux-x86_64-skylake-avx512-ubuntu-20"
"linux-x86_64-skylake-avx512-fedora-35"
"linux-x86_64-skylake-avx512-fedora-36"
"linux-x86_64-skylake-avx512-fedora-37"
"linux-x86_64-skylake-avx512-fedora-38"
"linux-x86_64-skylake-avx512-fedora-39"
"linux-x86_64-skylake-avx512-fedora-40"

linux

Ubuntu 24

apt-get install -y –no-install-recommends git ca-certificates cmake ninja-build
apt-get install -y –no-install-recommends llvm lld clang clang-tools clang-tidy libc++-dev libc++abi-dev libomp-dev libclang-rt-dev
apt-get install -y –no-install-recommends python3 pybind11-dev python3-pybind11 python3-dev
apt-get install -y –no-install-recommends liblapack64-dev libblas64-dev
cmake -B build –preset=linux-ubuntu-24
ninja -C build
ninja -C build install
ctest –test-dir build/tests/raspakit-tests –verbose

Fedora 40

dnf install -y wget git rpm-build
dnf install -y llvm lld cmake clang clang-tools-extra ninja-build
dnf install -y libomp-devel libcxx libcxxabi libcxx-devel libcxxabi-devel libcxx-static libcxxabi-static
dnf install -y lapack-devel lapack64 blas64
dnf install -y python3 python3-devel python3-pybind11
dnf install -y pybind11-devel
cmake -B –preset linux-fedora-40
ninja -C build
ninja -C build install
ctest –test-dir build/tests/raspakit-tests –verbose

macOS

brew install llvm lld libomp hdf5 libaec ninja cmake doxygen graphviz lapack pybind11
(make sure '`brew –prefix hdf5`/bin' for hdf5 is in your path)
cmake -B –preset macos-apple-silicon
(or cmake -B –preset macos-x64)
ninja -C build
ninja -C build install
ctest –test-dir build/tests/raspakit-tests –verbose

python

This package can also be built as a library for python. To build the python package the pip packaging system can be used. Note that due to compilation of the full package this might take a few minutes. To install, run the following command:

export CMAKE_PRESET="--preset=python"
pip install .

This will install the package to the current python environment.

We strongly advise users to use the CMakePresets.json preset for their given system. For building the python package with a given preset change the following line to reflect the given preset:

export CMAKE_PRESET="--preset=macos-apple-silicon"
pip install .