Skip to content

lfzhu-phys/Melting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Melting is based on the interface method and aims to fully automatically predict the melting temperature of unaries represented by arbitrary interatomic potentials. With this approach, only two parameters, element and potential, are necessary to specify. The automated procedure is fully implemented in a pyiron-based Jupyter notebook and LAMMPS is the engine to perform all the automatic calculations.

Set up the environment

To perform Melting, linux system is recommended. The user needs to install:

  1. pyiron, NGLview visualization framework, and LAMMPS.

    Guide for installation, see: https://pyiron.github.io/source/installation.html

  2. Ovito.

    Guide for installation, see: https://anaconda.org/conda-forge/ovito

in case you want to run the notebook in a terminal,

  1. snakemake.

    Guide for installation, see: https://snakemake.readthedocs.io/en/stable/getting_started/installation.html

Run the notebook

The user needs to download the Jupyter notebook, melting.ipynb, to the path where the pyiron projects locate, e.g., "~/pyiron/projects/". Two approaches can be used to run the notebook.

Approach 1:

cd ~/pyiron/projects
jupyter notebook

Open the downloaded notebook, modify the potential and element, and execute the notebook directly.

Approach 2:

Use snakemake to run the notebook. This approach requires an input.json file in the following format:

{
 "Config":   [ "pair_style eam/alloy \n",
               "pair_coeff * * potential Al\n"],
 "Filename": ["/home/pyiron/projects/potential"],
 "Species":  ["Al"],
 "element":  "Al",
 "crystalstructure": "Fcc"
}

and a Snakefile, which is in the following format:

rule melting:
    notebook:
        "melting.ipynb"

After creating input.json and Snakefile in the same path as that melting.ipynb locates, one can simply execute the protocol by:

snakemake --use-conda 

The parameters defined in the input.json file will overwrite those in the Jupyter notebook. With this approach, there is no need to interfere with all the computational and technical details.

Both approaches write the estimated melting points and predicted melting points from all loop calculations in a file melting.json.

About

A fully automated approach to determine the melting temperature of crystalline materials

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published