AtomisticReverseMonteCarlo
OVITO Python modifier to generate bulk crystal structures with target Warren-Cowley parameters.
Install / Use
/learn @killiansheriff/AtomisticReverseMonteCarloREADME
Atomistic Reverse Monte-Carlo
OVITO Python modifier to generate bulk crystal structures with target Warren-Cowley parameters.
Usage
Here's an example on how to use the code to create the fcc_wc.dump file which has Warren-Cowley parameters that falls within a 1% difference of the targeted ones:
from ovito.io import export_file, import_file
from AtomisticReverseMonteCarlo import AtomisticReverseMonteCarlo
mod = AtomisticReverseMonteCarlo(
nneigh=12, # number of neighbors to compute WC parameters (12 1NN in fcc)
T=1e-9, # rMC temperature
target_wc=[ # wc target 1-pij/cj
[0.32719603, -0.19925471, -0.12794131],
[-0.19925471, 0.06350427, 0.13575045],
[-0.12794131, 0.13575045, -0.00762235],
],
tol_percent_diff=[ # max percent tolerence allowed before stopping
[1, 1, 1],
[1, 1, 1],
[1, 1, 1],
],
save_rate=1000, # save rate
seed=123,
max_iter=None, # infinity number of iterations
)
# Load the intial snapshot
pipeline = import_file("fcc_random.dump")
pipeline.modifiers.append(mod)
data = pipeline.compute()
# Load data of the last trajectory
data = pipeline.compute(-1)
print(f'Target Warren-Cowley parameters: \n {data.attributes["Target Warren-Cowley parameters"]}')
print(f'Warren-Cowley parameters: \n {data.attributes["Warren-Cowley parameters"]}')
print(f'Warren-Cowley Percent error: \n {data.attributes["Warren-Cowley percent error"]}')
export_file(
data,
"fcc_wc.dump",
"lammps/dump",
columns=[
"Particle Identifier",
"Particle Type",
"Position.X",
"Position.Y",
"Position.Z",
],
)
The script can be found in the examples directory.

Installation
For a standalone Python package or Conda environment, please use:
pip install --user AtomisticReverseMonteCarlo
For OVITO PRO built-in Python interpreter, please use:
ovitos -m pip install --user AtomisticReverseMonteCarlo
If you want to install the lastest git commit, please replace AtomisticReverseMonteCarlo with git+https://github.com/killiansheriff/AtomisticReverseMonteCarlo.

Contact
If any questions, feel free to contact me (ksheriff at mit dot edu).
References & Citing
If you use this repository in your work, please cite:
@article{sheriffquantifying2024,
title = {Quantifying chemical short-range order in metallic alloys},
doi = {10.1073/pnas.2322962121},
journaltitle = {Proceedings of the National Academy of Sciences},
author = {Sheriff, Killian and Cao, Yifan and Smidt, Tess and Freitas, Rodrigo},
date = {2024-06-18},
}
Related Skills
node-connect
352.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
