Hello all, I am trying to calculate the bulk modulus of aluminum using pymatgen and a machine learned interatomic potential (MLIP) called CHGNet trained on the Materials Project database. I have my code below:
from chgnet.model.model import CHGNet
from pymatgen.core import Structure
from pymatgen.analysis.elasticity.strain import Deformation, DeformedStructureSet, Strain
from pymatgen.analysis.elasticity.stress import Stress
from pymatgen.analysis.elasticity import ElasticTensor
chgnet = CHGNet.load()
structure = Structure.from_file('cif_files/Al.cif')
prediction = chgnet.predict_structure(structure)
eq_stress = Stress(prediction['s'])
deformed_structure = DeformedStructureSet(structure)
strain_list = [i.green_lagrange_strain for i in deformed_structure.deformations]
stress_list = []
for i in range(len(deformed_structure)):
prediction = chgnet.predict_structure(deformed_structure[i])
stress_list.append(Stress(prediction['s']))
elastic_tensor = ElasticTensor.from_independent_strains(strain_list, stress_list, eq_stress)
print(elastic_tensor.property_dict)
The output I get is:
{'k_voigt': 9.845064083735359, 'k_reuss': 9.845063833881039, 'k_vrh': 9.845063958808199, 'g_voigt': 8.0023897488912, 'g_reuss': 4.5904549461157655, 'g_vrh': 6.2964223475034835, 'universal_anisotropy': 3.716336252207812, 'homogeneous_poisson': 0.23641618649298335, 'y_mod': 15569997014.898907}
I know the bulk modulus should be around 76GPa, but what I get from this is around 10GPa. What am I missing? Any help would be greatly appreciated! Many thanks