EAM Analysis

[1]:
import mdapy as mp
from mdapy.potential_tool import get_eos
mp.__version__
[1]:
'1.0.0a2'

Generate an EAM alloy for CoNiFeAlCu

[2]:
element_list = ['Co', 'Ni', 'Fe', 'Al', 'Cu']
element_ratio = [0.25, 0.25, 0.25, 0.075, 0.175]
[3]:
mp.EAMGenerator(element_list);
[4]:
eam = mp.EAM('CoNiFeAlCu.eam.alloy')

Generate an average EAM

[5]:
mp.EAMAverage('CoNiFeAlCu.eam.alloy', element_ratio);
[6]:
eam_ave = mp.EAM('CoNiFeAlCu.average.eam.alloy')

Check EAM data

[7]:
fig, ax = eam_ave.plot()
ax[2].set_ylim(-20, 400);
../_images/gettingstarted_eam_analysis_10_0.png

Compare the mechanical properties predicted by EAM and average EAM

[8]:
a_model = mp.build_crystal('A', 'fcc', 3.6, nx=3, ny=3, nz=3)
a_model.calc = eam_ave
a_eos = get_eos(a_model, 0.9, 1.1, 21)
[9]:
model = mp.build_hea(element_list, element_ratio, 'fcc', 3.6, nx=3, ny=3, nz=3, random_seed=1)
model.calc = eam
eos = get_eos(model, 0.9, 1.1, 21)

Compare with lammps

Make sure you have installed LAMMPS python package

[10]:
from mdapy.lammps_potential import LammpsPotential
[11]:
eam_lmp = LammpsPotential(
    pair_parameter="""
    pair_style eam/alloy
    pair_coeff * * CoNiFeAlCu.eam.alloy Co Ni Fe Al Cu
    """,
    element_list=element_list
)
model.calc = eam_lmp
eos_lmp = get_eos(model, 0.9, 1.1, 21)
[12]:
eam_lmp_a = LammpsPotential(
    pair_parameter="""
    pair_style eam/alloy
    pair_coeff * * CoNiFeAlCu.average.eam.alloy A
    """,
    element_list=['A']
)
a_model.calc = eam_lmp_a
a_eos_lmp = get_eos(a_model, 0.9, 1.1, 21)
[13]:
fig, ax = mp.set_figure()

ax.plot(eos[:, 0], eos[:, 1], label='HEA')
ax.plot(eos_lmp[:, 0], eos_lmp[:, 1], '--', label='HEA_lmp')
ax.plot(a_eos[:, 0], a_eos[:, 1], 'o', label='Ave')
ax.plot(a_eos_lmp[:, 0], a_eos_lmp[:, 1], '*', label='Ave_lmp')
ax.legend()

ax.set_xlabel(r'Volume ($\mathregular{A^3}$/atom)')
ax.set_ylabel('PE (eV/atom)')
[13]:
Text(0, 0.5, 'PE (eV/atom)')
../_images/gettingstarted_eam_analysis_19_1.png
[14]:
import os

os.remove('CoNiFeAlCu.average.eam.alloy')
os.remove('CoNiFeAlCu.eam.alloy')