Skip to content

Unit for Young's modulus #4435

@anyangml

Description

@anyangml

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.

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

@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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions