smol
smol: A Python package for cluster expansions and beyond - Published in JOSS (2022)
Science Score: 100.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
Found 1 DOI reference(s) in JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
4 of 9 committers (44.4%) from academic institutions -
✓Institutional organization owner
Organization cedergrouphub has institutional domain (ceder.berkeley.edu) -
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Keywords from Contributors
Repository
Statistical Mechanics on Lattices
Basic Info
- Host: GitHub
- Owner: CederGroupHub
- License: other
- Language: Python
- Default Branch: main
- Homepage: https://cedergrouphub.github.io/smol/
- Size: 93.2 MB
Statistics
- Stars: 84
- Watchers: 4
- Forks: 17
- Open Issues: 20
- Releases: 22
Topics
Metadata Files
README.md

Statistical Mechanics on Lattices
 [](https://www.codacy.com/gh/CederGroupHub/smol/dashboard?utm_source=github.com&utm_medium=referral&utm_content=CederGroupHub/smol&utm_campaign=Badge_Coverage) [](https://results.pre-commit.ci/latest/github/CederGroupHub/smol/main) [](https://pypi.org/project/smol) [](https://www.python.org/downloads/) [](https://mybinder.org/v2/gh/CederGroupHub/smol/HEAD?labpath=docs%2Fsrc%2Fnotebooks%2Findex.ipynb) [](https://joss.theoj.org/papers/e96a568ca53ee9d14548d7b8bed69b25)
Lightweight but caffeinated Python implementation of computational methods for statistical mechanical calculations of configurational states in crystalline materials.
smol is a minimal implementation of computational methods to calculate statistical mechanical and thermodynamic properties of crystalline material systems based on the cluster expansion method from alloy theory and related methods. Although smol is intentionally lightweight---in terms of dependencies and built-in functionality---it has a modular design that closely follows underlying mathematical formalism and provides useful abstractions to easily extend existing methods or implement and test new ones.
Functionality
smol currently includes the following functionality:
Defining cluster expansion functions for a given disordered structure using a variety of available site basis functions with and without explicit redundancy.
Option to include explicit electrostatics in expansions using the Ewald summation method.
Computing correlation vectors for a set of training structures with a variety of functionality to inspect the resulting feature matrix.
Defining fitted cluster expansions for subsequent property prediction.
Fast evaluation of correlation vectors and differences in correlation vectors from local updates in order to quickly compute properties and changes in properties for specified supercell sizes.
Flexible toolset to sample cluster expansions using Monte Carlo with canonical, semigrand canonical, and charge neutral semigrand canonical ensembles using a Metropolis or a Wang-Landau sampler.
Special quasi-random structure generation based on either correlation vectors or cluster interaction vectors.
Solving for periodic ground-states of any given cluster expansion with or without electrostatics over a given supercell.
smol is built on top of pymatgen so any pre/post structure analysis can be done seamlessly using the various functionality supported there.
Installation
From pypi:
pip install smol
From source:
Clone the repository. The latest tag in the main branch is the stable version of the
code. The main branch has the newest tested features, but may have more
lingering bugs. From the top level directory
pip install .
Although smol is not tested on Windows platforms, it should still run on Windows since
there aren't any platform specific dependencies. The only known installation issue
is building pymatgen dependencies. If simply running pip install smol fails, try
installing pymatgen with conda first:
conda install -c conda-forge pymatgen
pip install smol
You can also simply use the environment.yml file in the repository to install smol:
conda env create -f environment.yml
source activate smol-env
Usage
Refer to the documentation for details on using smol. Going through the example notebooks will also help you get started. You can run the example notebooks interactively in binder.
Citing
If you use smol in your research, please give the repo a star :star: and refer to the citing page in the documentation for formal citation information.
Contributing
We welcome all your contributions with open arms! Please fork and pull request any contributions. See the developing page in the documentation for how to contribute.
Changes
The most recent changes are detailed in the change log.
Copyright Notice
Statistical Mechanics on Lattices (smol) Copyright (c) 2022, The Regents
of the University of California, through Lawrence Berkeley National
Laboratory (subject to receipt of any required approvals from the U.S.
Dept. of Energy) and the University of California, Berkeley. All rights reserved.
If you have questions about your rights to use or distribute this software,
please contact Berkeley Lab's Intellectual Property Office at
IPO@lbl.gov.
NOTICE. This Software was developed under funding from the U.S. Department
of Energy and the U.S. Government consequently retains certain rights. As
such, the U.S. Government has been granted for itself and others acting on
its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the
Software to reproduce, distribute copies to the public, prepare derivative
works, and perform publicly and display publicly, and to permit others to do so.
Owner
- Name: Ceder Group
- Login: CederGroupHub
- Kind: organization
- Website: http://ceder.berkeley.edu/
- Repositories: 19
- Profile: https://github.com/CederGroupHub
JOSS Publication
smol: A Python package for cluster expansions and beyond
Authors
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Department of Materials Science and Engineering, University of California Berkeley, Berkeley CA, 94720, USA, Materials Sciences Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720, USA
Tags
computational materials science lattice models cluster expansion method Monte CarloCitation (CITATION.cff)
cff-version: 1.2.0
title: smol - Statistical Mechanics on Lattices
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Luis
family-names: Barroso-Luque
email: lbluque@berkeley.edu
orcid: 'https://orcid.org/0000-0002-6453-9545'
- given-names: Julia
name-particle: H.
family-names: Yang
orcid: 'https://orcid.org/0000-0002-5713-2288'
- given-names: Fengyu
family-names: Xie
orcid: 'https://orcid.org/0000-0002-1169-1690'
- given-names: Tina
family-names: Chen
orcid: 'https://orcid.org/0000-0003-0254-8339'
- given-names: Ronald
name-particle: L.
family-names: Kam
- given-names: Zinab
family-names: Yadidi
- given-names: Peichen
family-names: Zhong
orcid: 'https://orcid.org/0000-0003-1921-1628'
identifiers:
- type: doi
value: 10.21105/joss.04504
description: JOSS publication for this package
- type: doi
value: 10.5281/zenodo.7115050
description: Zenodo archive of version v0.0.7
repository-code: 'https://github.com/CederGroupHub/smol'
url: 'https://cedergrouphub.github.io/smol/'
license: BSD-3-Clause-LBNL
preferred-citation:
type: article
authors:
- given-names: Luis
family-names: Barroso-Luque
email: lbluque@berkeley.edu
orcid: 'https://orcid.org/0000-0002-6453-9545'
- given-names: Julia
name-particle: H.
family-names: Yang
orcid: 'https://orcid.org/0000-0002-5713-2288'
- given-names: Fengyu
family-names: Xie
orcid: 'https://orcid.org/0000-0002-1169-1690'
- given-names: Tina
family-names: Chen
orcid: 'https://orcid.org/0000-0003-0254-8339'
- given-names: Ronald
name-particle: L.
family-names: Kam
- given-names: Zinab
family-names: Yadidi
- given-names: Peichen
family-names: Zhong
orcid: 'https://orcid.org/0000-0003-1921-1628'
- given-names: Gerbrand
family-names: Ceder
orcid: 'https://orcid.org/0000-0001-9275-3605'
doi: "10.21105/joss.04504"
journal: "Journal of Open Source Software"
month: 9
start: 4504 # First page number
end: 4504 # Last page number
title: "smol: A Python package for cluster expansions and beyond"
volume: 7
number: 77
year: 2022
GitHub Events
Total
- Create event: 33
- Release event: 4
- Issues event: 16
- Watch event: 18
- Delete event: 37
- Issue comment event: 33
- Push event: 45
- Pull request review comment event: 2
- Pull request review event: 7
- Pull request event: 73
- Fork event: 4
Last Year
- Create event: 33
- Release event: 4
- Issues event: 16
- Watch event: 18
- Delete event: 37
- Issue comment event: 33
- Push event: 45
- Pull request review comment event: 2
- Pull request review event: 7
- Pull request event: 73
- Fork event: 4
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| lbluque | l****e@b****u | 1,554 |
| qchempku2017 | 6****6@q****m | 200 |
| dependabot[bot] | 4****] | 143 |
| Ronald Kam | k****d@b****u | 80 |
| pre-commit-ci[bot] | 6****] | 53 |
| tchen0965 | t****5@g****m | 13 |
| juliayang | j****g@b****u | 8 |
| Peichen Zhong | z****c@b****u | 8 |
| zinab jadidi | z****i@g****m | 4 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 43
- Total pull requests: 266
- Average time to close issues: 4 months
- Average time to close pull requests: 11 days
- Total issue authors: 13
- Total pull request authors: 6
- Average comments per issue: 2.7
- Average comments per pull request: 0.34
- Merged pull requests: 205
- Bot issues: 0
- Bot pull requests: 208
Past Year
- Issues: 6
- Pull requests: 79
- Average time to close issues: about 1 month
- Average time to close pull requests: 16 days
- Issue authors: 5
- Pull request authors: 6
- Average comments per issue: 2.5
- Average comments per pull request: 0.43
- Merged pull requests: 47
- Bot issues: 0
- Bot pull requests: 69
Top Authors
Issue Authors
- qchempku2017 (20)
- lbluque (6)
- kamronald (4)
- Jeff-oakley (3)
- ghalibalfaza (2)
- jrjfonseca (1)
- dmebane (1)
- txy159 (1)
- mstapelberg (1)
- MarDiehl (1)
- tankylz (1)
- jic198 (1)
- juliayang (1)
Pull Request Authors
- dependabot[bot] (153)
- github-actions[bot] (44)
- lbluque (40)
- pre-commit-ci[bot] (27)
- kamronald (13)
- qchempku2017 (9)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 530 last-month
-
Total dependent packages: 1
(may contain duplicates) -
Total dependent repositories: 1
(may contain duplicates) - Total versions: 21
- Total maintainers: 1
pypi.org: smol
Lighthweight but caffeinated Python implementation of computational methods for statistical mechanical calculations of configurational states in crystalline material systems.
- Documentation: https://smol.readthedocs.io/
- License: :: Statistical Mechanics on Lattices (smol) Copyright (c) 2022, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy) and the University of California, Berkeley. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. (3) Neither the name of the University of California, Lawrence Berkeley National Laboratory, U.S. Dept. of Energy, University of California, Berkeley nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. You are under no obligation whatsoever to provide any bug fixes, patches, or upgrades to the features, functionality or performance of the source code ("Enhancements") to anyone; however, if you choose to make your Enhancements available either publicly, or directly to Lawrence Berkeley National Laboratory, without imposing a separate written license agreement for such Enhancements, then you hereby grant the following license: a non-exclusive, royalty-free perpetual license to install, use, modify, prepare derivative works, incorporate into other computer software, distribute, and sublicense such enhancements or derivative works thereof, in binary and source code form.
-
Latest release: 0.5.7
published 11 months ago
Rankings
Maintainers (1)
pypi.org: statmech-on-lattices
Lighthweight but caffeinated Python implementation of computational methods for statistical mechanical calculations of configurational states in crystalline material systems.
- Homepage: https://cedergrouphub.github.io/smol
- Documentation: https://statmech-on-lattices.readthedocs.io/
- License: Modified BSD
-
Latest release: 0.0.2
published over 3 years ago