A preliminary conceptualization of the alloy design process often requires an extension of elemental properties to compositional spaces. A classic example is the Hume-Rothery rules that use elemental properties to describe the approximate conditions under which solid solutions might form in binary alloys. Moreover, in recent years, various machine learning models have used features derived from elemental properties to predict structure and properties of alloys.
The primary goals behind the development of 'mapal' are to enable :
Easy mapping of alloy features over compositional variations in binary, ternary and multi-principal element alloy (MPEA) systems.
Integration with machine learning frameworks that require calculation of alloy features.
Use of pre-trained machine learning models to map phase selection and properties over compositional spaces in MPEAs.
Important user notes
1. Alloy representation : mapal uses a 'string' format for alloy name to capture the composition of any given alloy. A numeric suffix ('integer' or 'float') after the element represents its stoichiometry within the alloy. If an element does not have a suffix, stoichiometry of '1' is considered. This terminology is in line with the commonly adopted representation for MPEAs. Some examples are as below :
'AlTi' represents equiatomic binary of Al & Ti; whereas 'Al2Ti' or 'AlTi0.5' is a binary alloy where number of atoms of Al:Ti are in a 2:1 ratio.
'CoCrFeNi' is an equiatomic quaternary; whereas 'CoCr2FeNi2.5' is a quaternary alloy where number of atoms of Co:Cr:Fe:Ni are in a 1:2:1:2.5 ratio.
2. Operators, mutable element properties and in-built features : mapal generates alloy features based on two methodologies:
Using an operator to mutate elemental properties : An operator is a mathematical function that can be applied to any mutable property to create composition dependent alloy feature. For e.g., 'asymmetry' operator can be applied to any mutable element property such as 'radius', 'modulus', and 'cohesive energy'. Creation of such features requires passing a 'tuple' specifying both the operator and mutable element property, for e.g., ('asymmetry', 'r_met') or ('asymmetry', 'E')
Creating an in-built feature : A feature based on defined function. For e.g., 'configurational entropy', 'lattice distortion energy' or 'Wang parameter'. While an operator can be applied to any elemental property, in-built features are strictly-defined parameters and thus require passing only a 'string' specifying the feature, for e.g., 'S_config', 'latt_dist_energy' or 'Wang_parameter'.
Refer to documentation of 'mapal.alloy_features' package for more information on all the operators and features available. .
3. Components : The components in an alloy system can be both a pure element (such as 'Al', 'Ti', etc.) or an alloy (such as 'CrFe', 'AlTi0.5', 'CrFeNi', etc.). This enables mapping higher order MPEAs and allows observing the effect of variation in concentration of either a single element or group of elements.