File size: 1,995 Bytes
3961ee7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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

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