PYGAMD: Python GPU-Accelerated Molecular Dynamics Software
==========================================================
Version 1
---------
Copyright: Lu group
-------------------
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.
Installation
------------
pygamd:
::
python3 setup.py install
::
pip install pygamd
Installation time < half of an hour.
Requirements:
~~~~~~~~~~~~~
OS: Linux
Hardware: NVIDIA GPU, AMD GPU or DCU.
Dependencies
1. Python3.11 including numba, numpy, and pybind11 packages
2. NVIDIA CUDA Toolkit 12
Citation
--------
::
To cite PYGAMD in publications use:
Thanks to Zhongyuan Lu group for providing PYGAMD software in our research work.
Documentation
-------------
Official website: `https://pygamd.com <https://pygamd.com>`__ Online
manual could be read here:
`https://pygamd-v1.readthedocs.io/en/latest/ <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 <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 <https://github.com/youliangzhu/pygamd-v1/tree/main/examples>`__.
Example: DPD simulation of diblock copolymer
--------------------------------------------
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.
Contributing
------------
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/ <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.
License
-------
GNU General Public License v3 (GPLv3)
Raw data
{
"_id": null,
"home_page": "https://github.com/ylzhu/pygamd.py",
"name": "pygamd",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3",
"maintainer_email": null,
"keywords": "molecular dynamics",
"author": "You-Liang Zhu",
"author_email": "ylzhu@pygamd.com",
"download_url": "https://files.pythonhosted.org/packages/45/e0/e7f0db32d507a4dba7b6a025cda424ca8b3197e13962e5006c69dd3d4403/pygamd-1.4.6.tar.gz",
"platform": null,
"description": "PYGAMD: Python GPU-Accelerated Molecular Dynamics Software\r\n==========================================================\r\n\r\nVersion 1\r\n---------\r\n\r\nCopyright: Lu group\r\n-------------------\r\n\r\nMolecular dynamics is an essential tool in the scientific research on\r\ncolloids, polymers, biomolecules, and etc. ``PYGAMD`` is a platform\r\nbased on Python3 Numba where users can define their models and methods\r\nby themselves. The simulation models could be ranging from all-atom to\r\ncoarse-grained scales.\r\n\r\nInstallation\r\n------------\r\n\r\npygamd:\r\n\r\n::\r\n\r\n python3 setup.py install\r\n\r\n::\r\n\r\n pip install pygamd\r\n\r\nInstallation time < half of an hour.\r\n\r\n\r\nRequirements:\r\n~~~~~~~~~~~~~\r\n\r\nOS: Linux\r\nHardware: NVIDIA GPU, AMD GPU or DCU.\r\n\r\nDependencies\r\n\r\n1. Python3.11 including numba, numpy, and pybind11 packages\r\n2. NVIDIA CUDA Toolkit 12\r\n\r\n\r\nCitation\r\n--------\r\n\r\n::\r\n\r\n To cite PYGAMD in publications use:\r\n \r\n Thanks to Zhongyuan Lu group for providing PYGAMD software in our research work.\r\n\r\nDocumentation\r\n-------------\r\n\r\nOfficial website: `https://pygamd.com <https://pygamd.com>`__ Online\r\nmanual could be read here:\r\n`https://pygamd-v1.readthedocs.io/en/latest/ <https://pygamd-v1.readthedocs.io/en/latest/>`__.\r\nTutorials written by jupyter notebook are given here:\r\n`https://nbviewer.jupyter.org/github/youliangzhu/pygamd-v1/tree/main/tutorials/index.ipynb <https://nbviewer.jupyter.org/github/youliangzhu/pygamd-v1/tree/main/tutorials/index.ipynb>`__.\r\nMore examples could be found here:\r\n`https://github.com/youliangzhu/pygamd-v1/tree/main/examples <https://github.com/youliangzhu/pygamd-v1/tree/main/examples>`__.\r\n\r\nExample: DPD simulation of diblock copolymer\r\n--------------------------------------------\r\n\r\n1 First step: generate configuration\r\n\r\n::\r\n\r\n from poetry import molgen\r\n\r\n mol1=molgen.Molecule(10)#particle number\r\n mol1.setParticleTypes(\"A,A,A,A,A,B,B,B,B,B\")#type\r\n mol1.setTopology(\"0-1,1-2,2-3,3-4,4-5,5-6,6-7,7-8,8-9\")#topology\r\n mol1.setBondLength(0.75)#bond length\r\n mol1.setMass(1.0)#mass\r\n\r\n\r\n gen=molgen.Generators(20,20,20) # box size in x, y, and z direction\r\n gen.addMolecule(mol1,2400)#molecule, the number of molecules\r\n gen.outPutMST(\"A5B5\") #file name\r\n\r\n2 Second step: run simulation\r\n\r\n::\r\n\r\n import pygamd\r\n \r\n mst = pygamd.snapshot.read(\"A5B5.mst\")\r\n app = pygamd.application.dynamics(info=mst, dt=0.04)\r\n\r\n fn = pygamd.force.dpd(info=mst, rcut=1.0)\r\n fn.setParams(type_i=\"A\", type_j=\"A\", alpha=25.0, sigma=3.0)\r\n fn.setParams(type_i=\"B\", type_j=\"B\", alpha=25.0, sigma=3.0)\r\n fn.setParams(type_i=\"A\", type_j=\"B\", alpha=40.0, sigma=3.0)\r\n app.add(fn)\r\n\r\n fb = pygamd.force.bond(info=mst, func='harmonic')\r\n fb.setParams(bond_type = 'A-A', param=[4.0, 0.0])# param=[k, r0]\r\n fb.setParams(bond_type = 'A-B', param=[4.0, 0.0])# param=[k, r0]\r\n fb.setParams(bond_type = 'B-B', param=[4.0, 0.0])# param=[k, r0]\r\n app.add(fb)\r\n\r\n inn = pygamd.integration.gwvv(info=mst, group='all')\r\n app.add(inn)\r\n\r\n dm = pygamd.dump.mst(info=mst, group=['A', 'B'], file='p.mst', period=10000)\r\n app.add(dm)\r\n\r\n di = pygamd.dump.data(info=mst, group='all', file='data.log', period=100)\r\n app.add(di)\r\n\r\n app.run(500000)\r\n\r\n\r\nRuning time < 2 hours.\r\nResults are the snapshots for the transition from disordered structure to a lamellar phase.\r\n\r\nContributing\r\n------------\r\n\r\nWe welcome contributions to PYGAMD. Whether it is reporting a bug,\r\nstarting a discussion by asking a question, or proposing/requesting a\r\nnew feature, please go by creating a new issue here\r\n(`https://github.com/youliangzhu/pygamd-v1/issues/ <https://github.com/youliangzhu/pygamd-v1/issues/>`__)\r\nor writing an email to the author Dr. You-Liang Zhu (Email:\r\nylzhu@pygamd.com) so that we can talk about it. Please note that this\r\nproject is released with a Contributor Code of Conduct. By participating\r\nin this project you agree to abide by its terms.\r\n\r\nLicense\r\n-------\r\n\r\nGNU General Public License v3 (GPLv3)\r\n",
"bugtrack_url": null,
"license": "GNU General Public License v3 (GPLv3)",
"summary": "Python GPU-Accelerated Molecular Dynamics Software",
"version": "1.4.6",
"project_urls": {
"Homepage": "https://github.com/ylzhu/pygamd.py"
},
"split_keywords": [
"molecular",
"dynamics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ca94a2eb3f37d6d4213de06a79b62673cc365711c0841e86fbaf755db0012d88",
"md5": "c1e4e1ffb26bdc270f078b2e3d8eb89b",
"sha256": "97c1f195c1565c00bd9f7280f1064111be3a1ceaa742b31380354fd248499ce3"
},
"downloads": -1,
"filename": "pygamd-1.4.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c1e4e1ffb26bdc270f078b2e3d8eb89b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3",
"size": 49039534,
"upload_time": "2024-04-17T12:53:28",
"upload_time_iso_8601": "2024-04-17T12:53:28.686007Z",
"url": "https://files.pythonhosted.org/packages/ca/94/a2eb3f37d6d4213de06a79b62673cc365711c0841e86fbaf755db0012d88/pygamd-1.4.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "45e0e7f0db32d507a4dba7b6a025cda424ca8b3197e13962e5006c69dd3d4403",
"md5": "4afd5dba90529e39345a41830341d2f0",
"sha256": "4c2fa347d840a57f2b502b2fdc68dbb88746fd7e29e55873cb5a3d5d07e31fca"
},
"downloads": -1,
"filename": "pygamd-1.4.6.tar.gz",
"has_sig": false,
"md5_digest": "4afd5dba90529e39345a41830341d2f0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3",
"size": 48408233,
"upload_time": "2024-04-17T12:53:34",
"upload_time_iso_8601": "2024-04-17T12:53:34.550597Z",
"url": "https://files.pythonhosted.org/packages/45/e0/e7f0db32d507a4dba7b6a025cda424ca8b3197e13962e5006c69dd3d4403/pygamd-1.4.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-17 12:53:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ylzhu",
"github_project": "pygamd.py",
"github_not_found": true,
"lcname": "pygamd"
}