Molecular dynamics is an essential tool in the scientific research on
colloids, polymers, biomolecules, and etc. PYGAMD
is a platform
based on Python3 Numba where users can define their models and methods
by themselves. The simulation models could be ranging from all-atom to
coarse-grained scales.
pygamd:
python3 setup.py install
pip install pygamd
Installation time < half of an hour.
OS: Linux Hardware: NVIDIA GPU, AMD GPU or DCU.
Dependencies
- Python3.11 including numba, numpy, and pybind11 packages
- NVIDIA CUDA Toolkit 12
To cite PYGAMD in publications use: Thanks to Zhongyuan Lu group for providing PYGAMD software in our research work.
Official website: https://pygamd.com Online manual could be read here: https://pygamd-v1.readthedocs.io/en/latest/. Tutorials written by jupyter notebook are given here: https://nbviewer.jupyter.org/github/youliangzhu/pygamd-v1/tree/main/tutorials/index.ipynb. More examples could be found here: https://github.com/youliangzhu/pygamd-v1/tree/main/examples.
1 First step: generate configuration
from poetry import molgen mol1=molgen.Molecule(10)#particle number mol1.setParticleTypes("A,A,A,A,A,B,B,B,B,B")#type mol1.setTopology("0-1,1-2,2-3,3-4,4-5,5-6,6-7,7-8,8-9")#topology mol1.setBondLength(0.75)#bond length mol1.setMass(1.0)#mass gen=molgen.Generators(20,20,20) # box size in x, y, and z direction gen.addMolecule(mol1,2400)#molecule, the number of molecules gen.outPutMST("A5B5") #file name
2 Second step: run simulation
import pygamd mst = pygamd.snapshot.read("A5B5.mst") app = pygamd.application.dynamics(info=mst, dt=0.04) fn = pygamd.force.dpd(info=mst, rcut=1.0) fn.setParams(type_i="A", type_j="A", alpha=25.0, sigma=3.0) fn.setParams(type_i="B", type_j="B", alpha=25.0, sigma=3.0) fn.setParams(type_i="A", type_j="B", alpha=40.0, sigma=3.0) app.add(fn) fb = pygamd.force.bond(info=mst, func='harmonic') fb.setParams(bond_type = 'A-A', param=[4.0, 0.0])# param=[k, r0] fb.setParams(bond_type = 'A-B', param=[4.0, 0.0])# param=[k, r0] fb.setParams(bond_type = 'B-B', param=[4.0, 0.0])# param=[k, r0] app.add(fb) inn = pygamd.integration.gwvv(info=mst, group='all') app.add(inn) dm = pygamd.dump.mst(info=mst, group=['A', 'B'], file='p.mst', period=10000) app.add(dm) di = pygamd.dump.data(info=mst, group='all', file='data.log', period=100) app.add(di) app.run(500000)
Runing time < 2 hours. Results are the snapshots for the transition from disordered structure to a lamellar phase.
We welcome contributions to PYGAMD. Whether it is reporting a bug, starting a discussion by asking a question, or proposing/requesting a new feature, please go by creating a new issue here (https://github.com/youliangzhu/pygamd-v1/issues/) or writing an email to the author Dr. You-Liang Zhu (Email: ylzhu@pygamd.com) so that we can talk about it. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
GNU General Public License v3 (GPLv3)