Warning
This repository accompanies an early version of PyCV (v1), described in the paper in JOSS. A newer version of PyCV (v2) is now included in plumed's main repository, as a plugin; the new version has the same scope but a slightly different syntax and installation procedure. This repository remains for historical preservation.
Note: this is a fork of the official PLUMED repository. Please see PLUMED's homepage for information on the PLUMED library.
The PYCV module enables PLUMED2 Collective Variables (CVs) and arbitrary functions to be defined and auto-differentiated in the Python language.
Advantages of using PYCV over standard development of CVs in C++ are:
- functions may be prototyped in high-level code, using extensive mathematical libraries, and no boilerplate;
- just-in-time compilation occurs transparently: there are no compilation and link delays for code changes;
- CVs may be automatically differentiated in common cases.
Please see the project's homepage, paper, and regression tests for detailed instructions.
Giorgino T. PYCV: a PLUMED 2 Module Enabling the Rapid Prototyping of Collective Variables in Python. The Journal of Open Source Software 4(42):1773
| Software | Version |
|---|---|
| PLUMED | 2.8.0 |
| Python | 3.7.7 (Homebrew) |
| Jax | 0.2.17 |
| Jaxlib | 0.1.69 |
| Numpy | 1.19.5 |
PYCV is distributed under the LGPL terms: see COPYRIGHT.
PYCV includes the pybind11 library, distributed under its own license terms (BSD-3).