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).
• Authors • Contributors • Running • Python • Dependencies • Installation Guide •
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
Alvaro Vazquez Mayagoitia, Argonne National Lab, contribution to openmp-implementation discussion
Anserme, better README.md and packaging
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
cd examples/basic/1_mc_methane_in_box
./run
- 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
- MC/MD hybrid move
- tail-corrections for CFCMC
- restart-file
- 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
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.
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.
- 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
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"
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
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
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
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 .