|
|
|
from pymatgen.core import Element as PymatgenElement |
|
|
|
KNOWN_ELEMENT_SYMBOLS = {el.symbol for el in PymatgenElement} |
|
|
|
ATMOSPHERE_CONFIG = { |
|
"patterns": [ |
|
(r'\b(air)\b', 'Air', 'Oxidizing'), (r'\b(O\s?2|oxygen)\b', 'O2', 'Oxidizing'), |
|
(r'\b(Ar|argon)\b', 'Ar', 'Inert'), (r'\b(N\s?2|nitrogen)\b', 'N2', 'Inert'), |
|
(r'\b(H\s?2/N\s?2|N\s?2/H\s?2|forming\s*gas)\b', 'FormingGas(N2/H2)', 'Reducing'), |
|
(r'\b(Ar/H\s?2|H\s?2/Ar)\b', 'Ar/H2', 'Reducing'), (r'\b(H\s?2|hydrogen)\b', 'H2', 'Reducing'), |
|
(r'\b(vacuum)\b', 'Vacuum', 'Vacuum'), (r'\b(He|helium)\b', 'He', 'Inert'), |
|
(r'\b(CO2|carbon\s*dioxide)\b', 'CO2', 'Neutral/Other'), |
|
(r'\b(CO|carbon\s*monoxide)\b', 'CO', 'Reducing'), (r'\b(NH3|ammonia)\b', 'NH3', 'Reducing/Other'), |
|
], "default_specific": "unknown_atm_specific", "default_category": "Unknown_Atm_Category" |
|
} |
|
|
|
MIXING_METHOD_CONFIG = { |
|
"patterns": [ |
|
(r'\b(ball\s*mill(?:ing)?)\b', 'ball_milling'), (r'\b(grind(?:ing)?|ground|pulverized|milled)\b', 'grinding'), |
|
(r'\b(solution|wet|homogeni[sz]ation|slurr(y|ies))\b', 'wet_method'), |
|
(r'\b(solid-state|solid\s*state(\s*reaction)?)\b', 'solid_state_mixing'), |
|
(r'\b(stir(?:ring)?)\b', 'stirring'), (r'\b(sonica(te|tion|ted))\b', 'sonication'), |
|
(r'\b(planetary\s*mill(?:ing)?)\b', 'planetary_milling'), (r'\b(attritor\s*mill(?:ing)?)\b', 'attritor_milling'), |
|
(r'\b(shaker\s*mill(?:ing)?)\b', 'shaker_milling'), (r'\b(mortar\s*(and\s*pestle)?)\b', 'mortar_pestle'), |
|
], "default_method": "unknown_mix_method" |
|
} |
|
|
|
MAGPIE_LABELS = [] |
|
matminer_available = False |
|
MAGPIE_FEATURIZER = None |
|
try: |
|
from matminer.featurizers.composition import ElementProperty |
|
matminer_available = True |
|
MAGPIE_FEATURIZER = ElementProperty.from_preset("magpie", impute_nan=True) |
|
MAGPIE_LABELS = [f'magpie_{label.replace(" ", "_")}' for label in MAGPIE_FEATURIZER.feature_labels()] |
|
except ImportError: |
|
pass |
|
except Exception: |
|
pass |
|
|