Skip to main content

OVITO Python modifier to generate bulk crystal structures with target Warren-Cowley parameters.

Project description

Atomistic Reverse Monte-Carlo

PyPI Version PyPI Downloads

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 bibtex entry to follow.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

AtomisticReverseMonteCarlo-0.0.3.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file AtomisticReverseMonteCarlo-0.0.3.tar.gz.

File metadata

File hashes

Hashes for AtomisticReverseMonteCarlo-0.0.3.tar.gz
Algorithm Hash digest
SHA256 8d9d78f50b673e9756b3c5d87db98685c2325066175893810cdec11acb2383dd
MD5 44e0cff48a271e955f1209c285ca9c6e
BLAKE2b-256 b2d11589b29d23ede4732e848e6b69da4354ace19fe7d289b027efcb4be9f4ed

See more details on using hashes here.

File details

Details for the file AtomisticReverseMonteCarlo-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for AtomisticReverseMonteCarlo-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7f03c8e058c89c50fe61df8fd0a15fa8398be631b5932a1e5eaa8ade6cb7cb10
MD5 afbd192e6819e55358621cdcee0371d7
BLAKE2b-256 8744d9ebd37fb1d82e47415bc9293813a123b88bb5d244adf68b10e51298a808

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page