Arianna

A system-agnostic approach to Monte Carlo simulations

https://github.com/thedisorderedorganization/arianna.jl

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 (17.3%) to scientific vocabulary

Keywords

framework julia julialang machine-learning machine-learning-algorithms markov-chain-monte-carlo monte-carlo monte-carlo-methods monte-carlo-simulation
Last synced: 4 months ago · JSON representation ·

Repository

A system-agnostic approach to Monte Carlo simulations

Basic Info
  • Host: GitHub
  • Owner: TheDisorderedOrganization
  • License: gpl-3.0
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 1.18 MB
Statistics
  • Stars: 31
  • Watchers: 0
  • Forks: 0
  • Open Issues: 5
  • Releases: 6
Topics
framework julia julialang machine-learning machine-learning-algorithms markov-chain-monte-carlo monte-carlo monte-carlo-methods monte-carlo-simulation
Created 12 months ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

A system-agnostic approach to Monte Carlo simulations

[![docs](https://img.shields.io/badge/docs-online-blue.svg)](https://TheDisorderedOrganization.github.io/Arianna.jl) [![license](https://img.shields.io/badge/license-GPL%203.0-red.svg)](https://github.com/TheDisorderedOrganization/MCMC/blob/main/LICENSE) [![ci](https://github.com/TheDisorderedOrganization/Arianna.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/TheDisorderedOrganization/Arianna.jl/actions/workflows/ci.yml) [![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl) [![codecov](https://codecov.io/gh/TheDisorderedOrganization/Arianna.jl/graph/badge.svg?token=URGL1HJOOI)](https://codecov.io/gh/TheDisorderedOrganization/Arianna.jl)

Arianna is a flexible and extensible framework for Monte Carlo simulations. Instead of acting as a black-box simulator, it provides a modular structure where users define their own system and Monte Carlo "moves". The package includes some simple predefined systems for example purposes, and more complex systems are defined in other repos like ParticlesMC.

Features

  • General-Purpose Monte Carlo Engine: A lightweight framework that provides the core algorithms for Monte Carlo sampling, allowing users to define their own systems, moves, and proposal distributions.
  • Extensible Algorithms: Built-in support for Metropolis-Hastings with the flexibility to implement advanced techniques like event-chain Monte Carlo.
  • Policy-Guided Monte Carlo: Integrates adaptive sampling using policy gradient methods to optimise move parameters dynamically.
  • Predefined Systems: Includes simple examples to help users get started quickly, with additional system implementations available through companion repositories like ParticlesMC.

Installation

Requirements

  • Julia version 1.9 or higher

Installing Arianna

You can install Arianna using the Julia package manager in one of two ways:

  1. Using the package mode (press ] in the Julia REPL): julia add Arianna

  2. Using the Pkg API: julia using Pkg Pkg.add("Arianna")

Usage

Arianna is designed to work with user-defined systems rather than providing predefined ones. To learn how to use Arianna please see the documentation and the API. To help users get started, we provide example cases such as particle_1D.jl in the examples folder. Once you have defined your system and the associated moves, Arianna allows you to run Monte Carlo simulations and store relevant data. The following Julia script illustrates how to set up and execute a general simulation in the particle_1D.jl example.

```julia include("examples/particle1D/particle1d.jl")

x₀ = 0.0 β = 2.0 M = 10 chains = [System(x₀, β) for _ in 1:M] pool = (Move(Displacement(0.0), StandardGaussian(), ComponentArray(σ=0.1), 1.0),) steps = 10^5 burn = 1000 sampletimes = buildschedule(steps, burn, 10) path = "data/MC/particle1d/Harmonic/beta$β/M$M/seed$seed"

algorithmlist = ( (algorithm=Metropolis, pool=pool, seed=seed, parallel=false), (algorithm=StoreCallbacks, callbacks=(callbackenergy, callback_acceptance), scheduler=sampletimes), (algorithm=StoreTrajectories, scheduler=sampletimes), )

simulation = Simulation(chains, algorithm_list, steps; path=path, verbose=true) run!(simulation) ``` This implementation employs the Metropolis algorithm for Monte Carlo sampling of multiple independent chains, using Gaussian-distributed displacements as proposed moves. The simulation records energy and acceptance statistics while storing particle trajectories for analysis. The resulting data is saved in the specified output directory for further evaluation.

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 MIT 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

Citation (CITATION.bib)

@software{Arianna,
  author = {Galliano, Leonardo and Simon, Romain},
  title = {{Arianna.jl}},
  url = {https://github.com/TheDisorderedOrganization/Arianna.jl},
  year = {2025}
}

GitHub Events

Total
  • Create event: 11
  • Commit comment event: 10
  • Release event: 4
  • Issues event: 12
  • Watch event: 18
  • Delete event: 6
  • Issue comment event: 17
  • Push event: 82
  • Pull request event: 17
Last Year
  • Create event: 11
  • Commit comment event: 10
  • Release event: 4
  • Issues event: 12
  • Watch event: 18
  • Delete event: 6
  • Issue comment event: 17
  • Push event: 82
  • Pull request event: 17

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 26
  • Total pull requests: 48
  • Average time to close issues: 7 days
  • Average time to close pull requests: about 8 hours
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 0.62
  • Average comments per pull request: 1.1
  • Merged pull requests: 42
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 26
  • Pull requests: 48
  • Average time to close issues: 7 days
  • Average time to close pull requests: about 8 hours
  • Issue authors: 4
  • Pull request authors: 3
  • Average comments per issue: 0.62
  • Average comments per pull request: 1.1
  • Merged pull requests: 42
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • romainljsimon (6)
  • leonardogalliano (2)
  • ines2806 (1)
  • JuliaTagBot (1)
Pull Request Authors
  • leonardogalliano (29)
  • romainljsimon (22)
  • dependabot[bot] (6)
Top Labels
Issue Labels
enhancement (1) bug (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 3 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
juliahub.com: Arianna

A system-agnostic approach to Monte Carlo simulations

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 3 Total
Rankings
Dependent repos count: 8.5%
Average: 22.6%
Dependent packages count: 36.7%
Last synced: 4 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/cache v3 composite
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite