CHARMM GPU-only molecular dynamics package.
chcuda is distributed under the BSD-3-clause open source license, as described in the LICENSE file in the top level of the repository. Some external dependencies are used that are licensed under different terms, as enumerated below.
- Catch2 for unit testing (BSL license).
Samarjeet Prasad (NIH)
Antti-Pekka Hynninen Bernard R. Brooks (NIH)
Requirements:
- gcc [10.1]
- CUDA [11.1.1]
- conda's netcdf
- cmake
Suggested installation method using conda:
- Clone this repository via
git clone [email protected]:samarjeet/apocharmm --recursive
(if you already cloned this repo, but forgot the --recursive
flag, simply run git submodule update --init --force --remote
from within the apocharmm directory).
- Create & activate the right conda environment :
conda env create -f environment.yml
conda activate apoenv
-
Finish setting up your compilation environment (make sure you have gcc [10.1] and cuda [11.1.1] available). We suggest using, for faster compilation,
export MAKEFLAGS=-j
. -
Run the installation via :
pip install -e .
Requires sphinx and its "rtd" theme (both available through conda, and installed by default if you created a conda environment using the environment.yml
file for the full installation).
Generation of the API documentation requires a GPU machine . It also requires the apocharmm package to
be installed, i.e. the installation above to have been run.
From the docs
folder, run
make html
Once run, open docs/build/html/index.html
.
NB: (for dev usage) changes to the documentation require a rebuild to be taken into account.
Requires Doxygen (conda install -c conda-forge doxygen
).
To generate the core documentation, run doxygen docs/doxygen/config/doxybis
from the base directory, then open docs/doxygen/build/html/index.html
.
The nice HTML theme is doxygen-awesome.
Prepare tests:
- Create and move to a new directory (
mkdir debug; cd debug
) - Run
cmake ..
to setup the compilation within this subdir - Run
make
(same requirements as for the Installation)
Tests executable should be located within debug/unittests/