Exemple #1
0
def get_chemonly(string=''):
  """
  Get only mean chemical descriptors for a chemical formula, say Al2O3
  Args:
       string: chemical formula, say Al2O3, NaCl etc.
  Returns:
         mean_chem: average chemical descriptors
  """
  comp=Composition(string)
  el_dict=comp.get_el_amt_dict()
  arr=[]
  for k,v in el_dict.items():
     des=get_descrp_arr(k)
     arr.append(des)
  mean_chem=np.mean(arr,axis=0)
  return mean_chem
def get_comp_data(un_data):
    element_universe = [str(e) for e in Element]
    dict_element = {}
    for i, j in enumerate(element_universe):
        dict_element[str(j)] = i
    stoich_array = np.zeros((len(un_data), 3), dtype=float)
    at_num_array = np.zeros((len(un_data), 3), dtype=int)
    electroneg_array = np.zeros((len(un_data), 3), dtype=float)
    comp_array=[]
    for index, entry in enumerate(un_data):
        comp = Composition(entry[2])
        comp_array.append(comp.formula)
        temp_dict = dict(comp.get_el_amt_dict())
        for count, key in enumerate(temp_dict.keys()):
            stoich_array[index][count] = temp_dict[key]
            if key not in ['D', 'T']:
                at_num_array[index][count] = Element(key).Z
                electroneg_array[index][count] = Element(key).X
            else:
                at_num_array[index][count] = Element('H').Z
                electroneg_array[index][count] = Element('H').X
    return (comp_array,stoich_array,at_num_array,electroneg_array)
Exemple #3
0
if __name__ == '__main__':

    #chemo-structural features
    s = Structure.from_file('POSCAR')
    x = get_comp_descp(s)
    print(len(x))

    #only chemical features for a structure
    y = get_comp_descp(struct=s,
                       jcell=False,
                       jmean_chem=True,
                       jmean_chg=False,
                       jrdf=False,
                       jrdf_adf=False,
                       print_names=False)
    print(len(y))

    #chemical features based on composition only
    chm = get_chemonly('Al2O3')
    print(len(chm))

    #charge descriptors
    comp = Composition('Al2O3')
    el_dict = comp.get_el_amt_dict()
    chgarr = []
    for k, v in el_dict.items():
        chg = get_chgdescrp_arr(k)
        chgarr.append(chg)
    mean_chg = np.mean(chgarr, axis=0)
    print(len(mean_chg))