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.
To perform Melting, linux system is recommended. The user needs to install:
-
pyiron, NGLview visualization framework, and LAMMPS.
Guide for installation, see: https://pyiron.github.io/source/installation.html
-
Ovito.
Guide for installation, see: https://anaconda.org/conda-forge/ovito
in case you want to run the notebook in a terminal,
-
snakemake.
Guide for installation, see: https://snakemake.readthedocs.io/en/stable/getting_started/installation.html
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.