mlip-arena / tests /test_elasticity.py
Yuan (Cyrus) Chiang
Add elasticity task (#37)
587c7e5 unverified
raw
history blame
1.22 kB
import sys
import numpy as np
import pytest
from mlip_arena.models import MLIPEnum
from mlip_arena.tasks.elasticity import run as ELASTICITY
from prefect.testing.utilities import prefect_test_harness
from ase.build import bulk
@pytest.mark.skipif(
sys.version_info[:2] != (3, 11),
reason="avoid prefect race condition on concurrent tasks",
)
@pytest.mark.parametrize("model", [MLIPEnum["MACE-MP(M)"]])
def test_elasticity(model: MLIPEnum):
"""
Test elasticity prefect workflow with a simple cubic lattice.
"""
with prefect_test_harness():
result = ELASTICITY(
atoms=bulk("Cu", "fcc", a=3.6),
calculator_name=model.name,
calculator_kwargs={},
device=None,
optimizer="BFGSLineSearch",
optimizer_kwargs=None,
filter="FrechetCell",
filter_kwargs=None,
criterion=None,
persist_opt=False,
cache_opt=False,
)
assert isinstance(result, dict)
assert isinstance(result["elastic_tensor"], np.ndarray)
assert result["elastic_tensor"].shape == (3, 3, 3, 3)
assert isinstance(result["elastic_tensor"][0, 0, 0, 0], float)