{"id":15297017,"url":"https://github.com/whitead/symd","last_synced_at":"2025-04-14T22:54:28.815Z","repository":{"id":39490949,"uuid":"9337770","full_name":"whitead/symd","owner":"whitead","description":"N-Dimensional MD engine with symmetry group constraints written in C","archived":false,"fork":false,"pushed_at":"2024-07-24T17:41:26.000Z","size":47217,"stargazers_count":47,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T10:54:24.683Z","etag":null,"topics":["c","crystallography","molecular-dynamics","python","symmetry"],"latest_commit_sha":null,"homepage":"https://whitead.github.io/symd","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whitead.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-10T04:02:33.000Z","updated_at":"2025-03-06T11:31:31.000Z","dependencies_parsed_at":"2025-01-08T05:27:16.460Z","dependency_job_id":"51c27e00-8dee-407d-900f-4632f1a49ee3","html_url":"https://github.com/whitead/symd","commit_stats":{"total_commits":186,"total_committers":3,"mean_commits":62.0,"dds":"0.016129032258064502","last_synced_commit":"fd5782e48c22c7a9e66593bbd2b7242b3630efe1"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whitead%2Fsymd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whitead%2Fsymd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whitead%2Fsymd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whitead%2Fsymd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whitead","download_url":"https://codeload.github.com/whitead/symd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248546421,"owners_count":21122314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","crystallography","molecular-dynamics","python","symmetry"],"created_at":"2024-09-30T19:14:21.331Z","updated_at":"2025-04-14T22:54:28.783Z","avatar_url":"https://github.com/whitead.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Symmetric Molecular Dynamics Engine\n\n[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/whitead/symd)\n[![PyPI version](https://badge.fury.io/py/symd.svg)](https://badge.fury.io/py/symd)\n\nThis is a simple MD engine written in C that can be constrained to obey given symmetry groups at every frame. It can be compiled for any dimension, but scaffolding only exists for 2 and 3D lattices. It supports the following features:\n\n* NVE, NVT (BAOAB, CSVR thermostats), NPT\n* LJ, harmonic, cosine potentials\n* Neighbor lists (use `nlj` instead of `lj` for potential)\n* Symmetry constraints and all Bravais Lattices in 2D/3D\n\n## Purpose\n\nhttps://user-images.githubusercontent.com/908389/162356564-95f35117-e31b-412c-8a3a-c3a92a92ae81.mp4\n\n\nThis is not really intended to be a production-ready simulation engine. Instead, it is a reference implementation of symmetric MD. I hope then the algorithm can be incorporated into other engines, or this engine can be extended, for others to use the algorithm. The Python package (see below) should make implementing the method as easy as possible. With that said, the most important files are `box.c` and `group.c`, which contain the key algorithms: `fold_particles` and the NPT algorithms: `make_box`, and `try_rescale`.\n\n## Python Package\n\nThere is a companion python package (`symd`) that can be installed via:\n\n```sh\npip install symd\n```\n\nThis does not include the MD engine, but instead includes necessary details to set-up symmetry constraints like getting affine matrices and Bravais lattice tensors.\n\n## Docs \u0026 Examples\n\nSee [the docs](https://whitead.github.io/symd) which includes the python API, examples of running simulations, and shows how the figures from the manuscript were generated.\n\n## Compiling\n\n\n```sh\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake \u0026\u0026 [sudo] make install\n```\nThe executable is `symdX` where `X` is the number of spatial dimensions\n\n### Dependencies\n\n * libgsl-dev (GNU Scientific Library headers)\n * CMake\n\n\n## Python Interface\n\nIt is recommended to use the python interface, which simplifies building\nthe input files and parsing output files. See the examples in [the docs](https://whitead.github.io/symd/toc).\n\n## Example\n\nAn example can be found in the `examples/lj-symm-example` directory.\n\n## Citation\n\n[See paper](https://pubs.acs.org/doi/full/10.1021/acs.jctc.2c00401)\n\n```bibtex\n@article{cox2022symmetric,\nauthor = {Cox, Sam and White, Andrew D.},\ntitle = {Symmetric Molecular Dynamics},\njournal = {Journal of Chemical Theory and Computation},\nyear = {2022},\ndoi = {10.1021/acs.jctc.2c00401},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhitead%2Fsymd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhitead%2Fsymd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhitead%2Fsymd/lists"}