-
Notifications
You must be signed in to change notification settings - Fork 918
Open
Labels
Description
Python version
3.11.5
Pymatgen version
2025.5.28
Operating system version
No response
Current behavior
I think the unit for Young's modulus is wrong.
If I understand correctly, in the following calculation, the units for shear modulus and bulk modulus are assumed to be GPa
.
pymatgen/src/pymatgen/analysis/elasticity/elastic.py
Lines 199 to 205 in 20afc86
def y_mod(self) -> float: | |
""" | |
Calculates Young's modulus (in SI units) using the | |
Voigt-Reuss-Hill averages of bulk and shear moduli. | |
""" | |
return 9.0e9 * self.k_vrh * self.g_vrh / (3 * self.k_vrh + self.g_vrh) | |
However the units are in eV/A^3
pymatgen/src/pymatgen/analysis/elasticity/elastic.py
Lines 188 to 198 in 20afc86
@property | |
def k_vrh(self) -> float: | |
"""The K_vrh (Voigt-Reuss-Hill) average bulk modulus (in eV/A^3).""" | |
return 0.5 * (self.k_voigt + self.k_reuss) | |
@property | |
def g_vrh(self) -> float: | |
"""The G_vrh (Voigt-Reuss-Hill) average shear modulus (in eV/A^3).""" | |
return 0.5 * (self.g_voigt + self.g_reuss) | |
@property |
Expected Behavior
a unit conversion from eV/A^3
to GPa
shall be applied before calculating Young's modulus
Minimal example
Relevant files to reproduce this bug
No response