Spaces:
Running
Running
File size: 1,265 Bytes
587c7e5 419b35b 587c7e5 419b35b 587c7e5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import sys
import numpy as np
import pytest
from mlip_arena.models import MLIPEnum
from mlip_arena.tasks.elasticity import run as ELASTICITY
from mlip_arena.tasks.utils import get_calculator
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=get_calculator(
calculator_name=model.name,
),
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)
|