Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/deepmodeling/ADMP
Automatic Differentiation Multipole Moment Molecular Forcefield
https://github.com/deepmodeling/ADMP
Last synced: 2 months ago
JSON representation
Automatic Differentiation Multipole Moment Molecular Forcefield
- Host: GitHub
- URL: https://github.com/deepmodeling/ADMP
- Owner: deepmodeling
- Fork: true (Roy-Kid/ADMP)
- Created: 2021-12-26T07:22:47.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-11T02:15:25.000Z (9 months ago)
- Last Synced: 2024-07-31T09:11:08.645Z (5 months ago)
- Language: Python
- Homepage: admp.vercel.app
- Size: 1.12 MB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- deepmodeling-projects - GitHub
README
# ADMP
Automatic Differentiable Multipolar Polarizable (ADMP) force field calculator.
This module provides an auto-differentiable implementation of multipolar polarizable force fields, that resembles the behavior of [MPID](https://github.com/andysim/MPIDOpenMMPlugin) plugin of OpenMM. Supposedly, this module is developed for the following purposes:
1. Achieving an easy calculation of force and virial of the multipolar polarizable forcefield.
2. Allowing fluctuating (geometric-dependent) multipoles/polarizabilities in multipolar polarizable potentials.
3. Allowing the calculation of derivatives of various force field parameters, thus achieving a more systematic and automatic parameter optimization scheme.The module is based on [JAX](https://github.com/google/jax) and [JAX-MD](https://github.com/google/jax-md) projects.
## Installation
### Dependencies
ADMP module depends on the following packages, install them before using ADMP:
1. Install [jax](https://github.com/google/jax) (pick the correct cuda version, see more details on their installation guide):
```bash
pip install jax[cuda11_cudnn82] -f https://storage.googleapis.com/jax-releases/jax_releases.html
```2. Install [jax-md](https://github.com/google/jax-md) :
```bash
pip install jax-md --upgrade
```ADMP currently relies on the space and partition modules to provide neighbor list
3. Install ADMP:
ADMP is a pure python module, just simply put it in your $PYTHONPATH.
```bash
export PYTHONPATH=$PYTHONPATH:/path/to/admp
```## Settings
In `admp/settings.py`, you can modify some global settings, including:
**PRECISION**: single or double precision
**DO_JIT**: whether do jit or not.
## Example
We provide a MPID 1024 water box example. In water_1024 and water_pol_1024, we show both the nonpolarizable and the polarizable cases.
```bash
cd ./examples/water_1024
./run_admp.pycd ./examples/water_pol_1024
./run_admp.py
```if `DO_JIT = True`, then the first run would be a bit slow, since it tries to do the jit compilation. Further executions of `get_forces` or `get_energy` should be much faster.