22
33import warnings
44from collections import defaultdict
5+ from mp_api .client .core .utils import validate_ids
56
67from emmet .core .elasticity import ElasticityDoc
78
@@ -25,6 +26,7 @@ def search_elasticity_docs(self, *args, **kwargs): # pragma: no cover
2526
2627 def search (
2728 self ,
29+ material_ids : str | list [str ] | None = None ,
2830 elastic_anisotropy : tuple [float , float ] | None = None ,
2931 g_voigt : tuple [float , float ] | None = None ,
3032 g_reuss : tuple [float , float ] | None = None ,
@@ -42,6 +44,8 @@ def search(
4244 """Query elasticity docs using a variety of search criteria.
4345
4446 Arguments:
47+ material_ids (str, List[str]): A single Material ID string or list of strings
48+ (e.g., mp-149, [mp-149, mp-13]).
4549 elastic_anisotropy (Tuple[float,float]): Minimum and maximum value to consider for
4650 the elastic anisotropy.
4751 g_voigt (Tuple[float,float]): Minimum and maximum value in GPa to consider for
@@ -70,6 +74,12 @@ def search(
7074 """
7175 query_params = defaultdict (dict ) # type: dict
7276
77+ if material_ids :
78+ if isinstance (material_ids , str ):
79+ material_ids = [material_ids ]
80+
81+ query_params .update ({"material_ids" : "," .join (validate_ids (material_ids ))})
82+
7383 if k_voigt :
7484 query_params .update ({"k_voigt_min" : k_voigt [0 ], "k_voigt_max" : k_voigt [1 ]})
7585
0 commit comments