particlesmc
Package to run atomic / molecular Monte Carlo simulations
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.2%) to scientific vocabulary
Keywords
Repository
Package to run atomic / molecular Monte Carlo simulations
Basic Info
Statistics
- Stars: 18
- Watchers: 0
- Forks: 0
- Open Issues: 12
- Releases: 0
Topics
Metadata Files
README.md
ParticlesMC is a Julia package for performing atomic and molecular Monte Carlo simulations. It is designed to be efficient and user-friendly, making it suitable for both research and educational purposes. Built on top of the Arianna module, it leverages Arianna’s Monte Carlo framework.
MC simulation of a 2D liquid. This example can be reproduced by running particlesmc params.toml in the examples/movie/ folder. Movie generated with ovito.
Features
- Flexible execution: Simulations can be run from standalone scripts or through a command-line interface (CLI), enabling easy integration into workflows.
- Interaction potentials: Supports a broad range of interatomic and intermolecular interaction potentials.
- Monte Carlo moves: Implements state-of-the-art Monte Carlo moves for both atomic and molecular simulations.
- Computational efficiency: Designed with performance in mind to enable fast simulations.
- Arianna framework integration: Leverages the Arianna Monte Carlo framework, benefiting from advanced techniques such as Policy-Guided Monte Carlo (PGMC) and parallel tempering (soon).
Installation
Requirements
- Julia version 1.9 or higher
Installing ParticlesMC
You can install ParticlesMC using the Julia package manager in one of two ways:
Using the package mode (press
]in the Julia REPL):julia add https://github.com/TheDisorderedOrganization/ParticlesMC.gitUsing the Pkg API:
julia using Pkg Pkg.add(url="https://github.com/TheDisorderedOrganization/ParticlesMC.git")
Building ParticlesMC
The build should be automatic when installing ParticlesMC. If it hasn't, you can manually build the package, by entering the package mode (press ] in the Julia REPL) and by typing:
julia
build
This will build the particlesmc executable at ~/.julia/bin (please add this path to your PATH).
Usage
Running a Monte Carlo Simulation
To run a Monte Carlo simulation, you need an input atomic or molecular configuration file (typically with a .xyz extension) and a parameter file (in TOML format). The parameter file specifies both the system details (such as temperature, density, and interaction model) and the simulation details (such as simulation type, number of steps, Monte Carlo moves, and outputs). A minimal example is presented below. More detailed explanations can be found in the documentation.
config.xyz
3
Lattice="1.7321 0.0 0.0 0.0 1.7321 0.0 0.0 0.0 0.0" Properties=type:I:1:pos:R:2
1 0.1585 0.4965
1 1.7215 0.7468
1 0.7606 1.1439
params.toml ```toml [system] config = "config.xyz" temperature = 1.0 density = 1.0 list_type = "LinkedList"
[model] [model."1-1"] name = "LennardJones" epsilon = 1.0 sigma = 1.0 rcut = 2.5
[simulation]
type = "Metropolis"
steps = 500
seed = 10
parallel = false
output_path = "./"
[[simulation.move]] action = "Displacement" probability = 1.0 policy = "SimpleGaussian" parameters = {sigma = 0.05}
[[simulation.output]] algorithm = "StoreTrajectories" schedulerparams = {linearinterval = 50} fmt = "XYZ" ```
Explanation of the example:
This example defines a minimal Monte Carlo simulation setup:
- The
[system]section specifies the input configuration file (config.xyz), the simulation temperature and density, and the use of a linked list for neighbor searching. - The
[model]section defines the interaction potential between particles. Here, a Lennard-Jones potential is used for species pair "1-1" with specified parameters (epsilon,sigma, and cutoffrcut). - The
[simulation]section sets the simulation type to Metropolis, the number of Monte Carlo steps to 500, the random seed, whether to run in parallel, and the output path. - The
[[simulation.move]]section describes the Monte Carlo move to use: a displacement move with probability 1.0, guided by a simple Gaussian policy with a standard deviation (sigma) of 0.05. - The
[[simulation.output]]section configures the output: trajectories will be stored every 50 steps in the XYZ format.
By executing particlesmc params.toml you will run a basic Metropolis Monte Carlo simulation of particles interacting via the Lennard-Jones potential, using displacement moves, and periodically saving the system's trajectory.
Contributing
We welcome contributions from the community. If you have a new system or feature to add, please fork the repository, make your changes, and submit a pull request.
Citing
If you use Arianna in your research, please cite it! You can find the citation information in the CITATION file or directly through GitHub's "Cite this repository" button.
License
This project is licensed under the GNU General Public License v3.0. License. See the LICENSE file for details.
Contact
For any questions or issues, please open an issue on the GitHub repository or contact the maintainers.
Owner
- Name: TheDisorderedOrganization
- Login: TheDisorderedOrganization
- Kind: organization
- Repositories: 1
- Profile: https://github.com/TheDisorderedOrganization
Citation (CITATION.bib)
@software{ParticlesMC,
author = {Galliano, Leonardo and Simon, Romain},
title = {{ParticlesMC: Julia package for performing atomic and molecular Monte Carlo simulations.}},
url = {https://github.com/TheDisorderedOrganization/ParticlesMC.jl},
year = {2025}
}
GitHub Events
Total
- Issues event: 24
- Watch event: 17
- Delete event: 18
- Issue comment event: 29
- Push event: 83
- Public event: 1
- Pull request event: 36
- Create event: 21
Last Year
- Issues event: 24
- Watch event: 17
- Delete event: 18
- Issue comment event: 29
- Push event: 83
- Public event: 1
- Pull request event: 36
- Create event: 21
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 24
- Total pull requests: 43
- Average time to close issues: 27 days
- Average time to close pull requests: 1 day
- Total issue authors: 2
- Total pull request authors: 3
- Average comments per issue: 0.04
- Average comments per pull request: 1.05
- Merged pull requests: 38
- Bot issues: 0
- Bot pull requests: 7
Past Year
- Issues: 24
- Pull requests: 43
- Average time to close issues: 27 days
- Average time to close pull requests: 1 day
- Issue authors: 2
- Pull request authors: 3
- Average comments per issue: 0.04
- Average comments per pull request: 1.05
- Merged pull requests: 38
- Bot issues: 0
- Bot pull requests: 7
Top Authors
Issue Authors
- romainljsimon (22)
- leonardogalliano (2)
Pull Request Authors
- romainljsimon (26)
- leonardogalliano (9)
- dependabot[bot] (7)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/cache v3 composite
- actions/checkout v2 composite
- codecov/codecov-action v5 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/setup-julia v1 composite