pylattica
pylattica: a package for prototyping lattice models in chemistry and materials science - Published in JOSS (2024)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
A simple framework for prototyping lattice evolution simulations e.g. cellular automata, lattice gas simulations, lattice Monte Carlo etc.
Basic Info
- Host: GitHub
- Owner: mcgalcode
- License: other
- Language: Python
- Default Branch: master
- Homepage: https://mcgalcode.github.io/pylattica/
- Size: 18.7 MB
Statistics
- Stars: 10
- Watchers: 1
- Forks: 2
- Open Issues: 2
- Releases: 4
Topics
Metadata Files
README.md
pylattica - A Framework for Lattice and Cellular Automata Simulation
pylattica is a Python library for prototyping and constructing cellular automaton and lattice models. The core features of these models are:
- There is a simulation state that evolves over time by repeatedly applying some unchanging rule
- The state of the simulation has a topology defined by a network of sites (i.e. each site has an unchanging set of neighbor sites)
- Each site has a state value associated with it that could change at each simulation step
- The future state of a site is determined by the state of its neighbor sites
These rules capture many common models in chemistry and materials science. For instance, in the Ising Model, spins are updated with probabilities related to the neighboring spins. In a Lattice Gas Automaton, the velocities of particles are determined collisions with neighboring particles. In lattice Monte Carlo simulations of surface catalysis, adsorption, desorption, and surface diffusion are dependent on the occupancy of neighboring sites.
pylattica aims to provide a general framework for prototyping these types of lattice simulations. It prioritizes providing a straightforward method for experimenting with different interaction rules and interaction neighborhoods. It provides some simple utilities for analyzing simulation states, and in the case of square grid systems, it provides visualization tools for the system state itself. Additionally, since this tool is focused on materials science, there is functionality for mapping system states to CIF files (for use in crystal lattice simulations).
Installation
pylattica can be installed from the PyPi source by running:
pip install pylattica
It can also be installed by cloning this repository, then running the following in the root of the repository:
pip install .
Documentation
Detailed documentation for this library can be found here.
Jupyter Notebook Examples
Example notebooks are included in docs/guides.
Note about Windows
pylattica makes use of Python's fork functionality in the multiprocessing library. This functionality is not available on windows, so certain features (the parallel keyword for the SynchronousRunner) will not be available on Windows platforms.
Development
Installation for development
To install pylattica for development purposes, use the standard editable installation command:
pip install -e .
from the root of the repository.
Running tests
After you have installed the repository, ensure that pytest is installed, then run:
pytest
from the root of the repository.
Building Documentation
The docs for this project are built using mkdocs. To build the documentation
pip install '.[docs]'
mkdocs build
To run the documentation server locally:
mkdocs serve
Linting
This project uses the black package for style and formatting, and prospector for type checking and other lint warnings. These packages are not listed as dependencies of this project, so you can install them manually. This is partially because this project doesn't rely on specific versions of them, and we expect developers to have their own installations already. You can run them as follows:
To assess the changes that will happen if you run the black linter, run the following:
black --check src
To automatically make the changes, remove the --check flag:
black src
To run all other linters with prospector, use this:
prospector
In the top of this repository.
Owner
- Name: Max Gallant
- Login: mcgalcode
- Kind: user
- Repositories: 3
- Profile: https://github.com/mcgalcode
JOSS Publication
pylattica: a package for prototyping lattice models in chemistry and materials science
Authors
Tags
chemistry materials science lattice models cellular automaton monte carloGitHub Events
Total
- Release event: 1
- Watch event: 1
- Issue comment event: 1
- Push event: 2
- Pull request event: 2
- Create event: 1
Last Year
- Release event: 1
- Watch event: 1
- Issue comment event: 1
- Push event: 2
- Pull request event: 2
- Create event: 1
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Max Gallant | m****2@g****m | 216 |
| Max Gallant | m****t@b****s | 1 |
| Max Gallant | m****t@M****l | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 5
- Total pull requests: 6
- Average time to close issues: 29 days
- Average time to close pull requests: about 4 hours
- Total issue authors: 4
- Total pull request authors: 1
- Average comments per issue: 3.8
- Average comments per pull request: 0.67
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 1 minute
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- amkrajewski (2)
- mcgalcode (1)
- xperrylinn (1)
- RiesBen (1)
Pull Request Authors
- mcgalcode (11)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 35 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 5
- Total maintainers: 1
pypi.org: pylattica
pylattica is a package for fast prototyping of lattice models for chemistry and materials science
- Documentation: https://pylattica.readthedocs.io/
- License: MIT
-
Latest release: 0.1.4
published 11 months ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4.3.0 composite
- codecov/codecov-action v3.1.1 composite
- Pillow >= 9.0
- maggma >= 0.49.5
- matplotlib >= 3.5.1
- monty >= 2022.9.9
- numpy >= 1.21.5
- plotly >= 5.6.0
- pydantic >= 1.10.2
- pymatgen >= 2022.3.29
- rustworkx >= 0.12.0
- scipy >= 1.8.0
- tqdm >= 4.63.0
