Source code for jarvis.ai.descriptors.cfid

"""
Classical Force-field Inspired Descriptors (CFID).

The CFID provide a complete set of chemo-structural descriptors able to
differentiate between structural prototypes. Specifically, the combination
of pairwise radial, nearest neighbor, bond-angle, dihedral-angle and
core-charge distributions, together with hundreds of chemistry-related
descriptors, plays an important role in predicting formation energies,
bandgaps, static refractive indices, magnetic properties, and modulus of
elasticity for 3D materials as well as exfoliation energies of two-dimensional
(2D) layered materials.

The 1557 CFID are described in detail below:

============================================== ===========     ============
Descriptor name                                Array_index     Total number
Chemical (mean_chem)                                0-437          438
Simulation cell-size (cell)                       438-441            4
Radial charge (mean_chg)                          442-819          378
Radial distribution function (rdf)                820-919          100
Angular distribution upto 1st nn cutoff (adfa)   920-1098          179
Angular distribution upto 2nd nn cutoff (adfb)  1099-1277          179
Dihedral distribution upto 1st nn cutoff (ddf)  1278-1456          179
Nearest neighbor distribution (nn)              1457-1556          100
Total                                                   -          1557
============================================== ===========     ============

Details of element based chemical descriptors are below:

===================         ==================================================
Descriptor_name                            Details
jv_enp                      Energy per atom of an element from JARVIS-DFT
KV                          Bulk modulus of an element from JARVIS-DFT
GV                          Shear modulus of an element from JARVIS-DFT
C-m (m=0 to 35)             Elastic constants of element from JARVIS-DFT
                            (total 36)
op_eg                       OptB88vdW bandgap during SCF for an element
mop_eg                      OptB88vdW bandgap during linear optics for element
voro_coord                  Voronoi coordination number of an elemental-crystal
                            structure
ndunfilled                  Number of unfilled d-orbitals
ndvalence                   Number of valence d-orbitals
nsunfilled                  Number of unfilled s-orbitals
nsunfilled                  Number of valence s-orbitals
npunfilled                  Number of unfilled p-orbitals
npvalence                   Number of valence p-orbitals
nfunfilled                  Number of unfilled f-orbitals
nfvalence                   Number of valence f-orbitals
first_ion                   First ionization energy of an element
oq_bg                       OQMD bandgap for an element
elec_aff                    Electron affinity
vol_pa                      Volume per atom of an element
hfus                        Heat of fusion of an element
oq_enp                      OQMD energy per atom
Polariz                     Polarizability
Z                           Atomic number
X                           Electronegativity
row                         Row number in the periodic table
column                      Column number in the periodic table
max_oxid_s                  Maximum oxidation state
min_oxid_s                  Minimum oxidation state
block                       s,p,d,f block assigned to 0,1,2,3 blocks
is_alkali                   Is it alkali element 0/1
is_alkaline                 Is it alkaline element 0/1
is_metalloid                Is it metalloid element 0/1
is_noble_gas                Is it noble gas element 0/1
is_transition_metal         Is it transition element 0/1
is_metalloid                Is it metalloid element 0/1
is_halogen                  Is it halogen element 0/1
is_lanthanoid               Is it lanthanoid element 0/1
is_actinoid                 Is it actinoid element 0/1
atom_mass                   Atomic mass
atom_rad                    Atomic radii
therm_cond                  Thermal conductivity
mol_vol                     Molar volume
bp                          Boiling point
mp                          Melting point
avg_ion_rad                 Average ionic radii
polzbl                      Polarizability
e1                          Static dielectric function in x-direction from
                            JARVIS-DFT using OptB88vdW functional
e2                          Static dielectric function in y-direction from
                            JARVIS-DFT using OptB88vdW functional
e3                          Static dielectric function in z-direction from
                            JARVIS-DFT using OptB88vdW functional
me1                         Static dielectric function in x-direction from
                            JARVIS-DFT using TB-mBJ potential
me2                         Static dielectric function in y-direction from
                            JARVIS-DFT using TB-mBJ potential
me3                         Static dielectric function in z-direction from
                            JARVIS-DFT using TB-mBJ potential
===================         ==================================================

Addition (‘add’), multiplications (‘mult’), subtraction (‘subs’) and quotient
(‘divi’) of hfus, polzbl, first_ion_en, mol_vol, bp,mp, mol_vol, mol_vol,
therm_cond and voro_coord were performed to give additional chemical
descriptors.

Details of simulation cell-size based descriptors are below:

===============   =========================================
Descriptor_name          Details
cell_0            Volume per atom of the cell
cell_1            Logarithm of volume per atom of the cell
cell_2            Packing fraction
cell_3            Density
===============   =========================================

Find details in:
https://journals.aps.org/prmaterials/abstract/10.1103/PhysRevMaterials.2.083801
"""
from jarvis.analysis.structure.neighbors import NeighborsAnalysis
from jarvis.core.specie import get_descrp_arr_name
import numpy as np
from math import log
from jarvis.core.composition import Composition
from jarvis.core.specie import Specie


[docs]def get_chem_only_descriptors( formula="Al2O3", extra=[], mean_only=False, max_only=False, min_only=False, source="cfid", ): """Get jarvis_cfid or magpie descriptors for each formula.""" s = Composition.from_string(formula) el_dict = s.to_dict() arr = [] sum = 0 for k, v in el_dict.items(): sum += v des = v * Specie(k, source=source).get_descrp_arr arr.append(des) names = list(Specie("H", source=source)._data["H"].keys()) if mean_only: chem = np.mean(np.array(arr), axis=0) / sum names = ["Mean_" + source + "_" + str(n) for n in names] elif max_only: chem = np.max(np.array(arr), axis=0) # / sum names = ["Max_" + source + "_" + str(n) for n in names] elif min_only: chem = np.min(np.array(arr), axis=0) # / sum names = ["Min_" + source + "_" + str(n) for n in names] else: chem = ( list(np.mean(np.array(arr), axis=0) / sum) + list(np.max(np.array(arr), axis=0) / sum) + list(np.min(np.array(arr), axis=0) / sum) ) chem = np.array(chem) names = ( ["Mean_" + source + "_" + str(n) for n in names] + ["Max_" + source + "_" + str(n) for n in names] + ["Min_" + source + "_" + str(n) for n in names] ) chem = list(chem) for ii, i in enumerate(extra): chem.append(i) nm = "extra_" + str(ii) names.append(nm) chem = np.array(chem) return chem, names
[docs]class CFID(object): """Convert Atoms class into 1557 descriptors.""" def __init__(self, atoms): """Initialize with jarvis.core.atoms.Atoms class.""" self._atoms = atoms
[docs] def get_comp_descp( self, jcell=True, jmean_chem=True, jmean_chg=True, jrdf=False, jrdf_adf=True, print_names=False, ): """ Get chemo-structural CFID decriptors. Args: jcell: whether to use cell-size descriptors jmean_chem: whether to use average chemical descriptors jmean_chg: whether to use average charge distribution descriptors jmean_rdf: whether to use radial distribution descriptors jrdf_adf: whether to use radial and angle distribution descriptors print_names: whether to print names of descriptors Returns: cat: catenated final descriptors """ cat = [] s = self._atoms cell = [] mean_chem = [] rdf = [] nn = [] mean_chg = [] adfa = [] adfb = [] ddf = [] if jmean_chem: el_dict = s.composition._content # print (el_dict,type(el_dict)) arr = [] for k, v in el_dict.items(): des = Specie(k).get_descrp_arr arr.append(des) mean_chem = np.mean(np.array(arr), axis=0) # print ('mean_chem',len(mean_chem)) if jcell: v_pa = round(float(s.volume) / float(s.num_atoms), 5) logv_pa = round(log(v_pa), 5) pf = s.packing_fraction density = round(s.density, 5) cell = np.array([v_pa, logv_pa, pf, density]) # print ('jcell',len(cell)) if jrdf: Nbrs = NeighborsAnalysis(s) _, distrdf, nn = Nbrs.get_rdf() rdf = np.array(distrdf) print("rdf", len(rdf)) if jrdf_adf: try: adfa = np.zeros(179) adfb = np.zeros(179) ddf = np.zeros(179) rdf = np.zeros(100) nn = np.zeros(100) distributions = NeighborsAnalysis(s).get_all_distributions rdf = distributions["rdf"] nn = distributions["nn"] adfa = distributions["adfa"] adfb = distributions["adfb"] ddf = distributions["ddf"] except Exception: pass adfa = np.array(adfa) adfb = np.array(adfb) rdf = np.array(rdf) ddf = np.array(ddf) nn = np.array(nn) # print ('adfa',len(adfa)) # print ('ddf',len(ddf)) # print ('adfb',len(adfb)) # print ('rdf',len(rdf)) # print ('nn',len(nn)) if jmean_chg: chgarr = [] el_dict = s.composition._content for k, v in el_dict.items(): chg = Specie(k).get_chgdescrp_arr chgarr.append(chg) mean_chg = np.mean(chgarr, axis=0) # print ('mean_chg',len(mean_chg)) if print_names: nmes = [] chem_nm = get_descrp_arr_name() for d, nm in zip( [mean_chem, cell, mean_chg, rdf, adfa, adfb, ddf, nn], [ "mean_chem", "cell", "mean_chg", "rdf", "adfa", "adfb", "ddf", "nn", ], ): if len(d) != 0: for ff, dd in enumerate(d): cat.append(dd) if nm == "mean_chem": tag = chem_nm[ff] else: tag = str(nm) + str("_") + str(ff) nmes.append(str(tag)) cat = np.array(cat).astype(float) # print (nmes,len(nmes)) return nmes else: for d, nm in zip( [mean_chem, cell, mean_chg, rdf, adfa, adfb, ddf, nn], [ "mean_chem", "cell", "mean_chg", "rdf", "adfa", "adfb", "ddf", "nn", ], ): if len(d) != 0: # if d != []: for ff, dd in enumerate(d): cat.append(dd) cat = np.array(cat).astype(float) return cat
[docs]def feat_names(): """Names of the 1557 descriptors.""" names = [ "bp_mult_atom_rad", "hfus_add_bp", "elec_aff_mult_voro_coord", "mol_vol_subs_atom_mass", "is_halogen", "atom_mass_subs_first_ion_en", "row", "mol_vol_mult_atom_mass", "voro_coord_divi_therm_cond", "voro_coord_subs_mp", "polzbl_mult_atom_rad", "elec_aff_mult_X", "GV", "nfunfill", "voro_coord_subs_therm_cond", "mp_divi_therm_cond", "elec_aff_add_X", "mol_vol_add_bp", "C-9", "C-8", "C-7", "C-6", "C-5", "C-4", "C-3", "C-2", "C-1", "C-0", "mp_subs_elec_aff", "hfus_add_elec_aff", "elec_aff_subs_first_ion_en", "therm_cond_subs_mol_vol", "X_subs_mol_vol", "first_ion_en_subs_hfus", "first_ion_en_add_voro_coord", "first_ion_en_divi_atom_mass", "atom_rad_subs_polzbl", "me1", "me3", "me2", "elec_aff_mult_atom_mass", "elec_aff_add_atom_mass", "therm_cond_subs_elec_aff", "atom_rad_divi_atom_mass", "atom_rad_divi_voro_coord", "max_oxid_s", "polzbl_mult_first_ion_en", "mp_divi_voro_coord", "mol_vol_divi_hfus", "mp_divi_atom_mass", "therm_cond_subs_mp", "npvalence", "mol_vol_subs_atom_rad", "atom_rad_divi_hfus", "mp", "hfus_add_atom_rad", "atom_mass_add_voro_coord", "atom_mass_divi_atom_rad", "hfus_divi_atom_rad", "polzbl_mult_X", "first_ion_en", "bp_add_X", "therm_cond_subs_atom_rad", "first_ion_en_subs_voro_coord", "first_ion_en_subs_polzbl", "hfus_subs_X", "first_ion_en_mult_mol_vol", "first_ion_en_mult_mp", "bp_mult_atom_mass", "bp_subs_mp", "polzbl_add_atom_rad", "therm_cond_subs_hfus", "mol_vol_add_mp", "first_ion_en_subs_elec_aff", "atom_mass_add_therm_cond", "atom_mass_divi_therm_cond", "first_ion_en_divi_mol_vol", "polzbl_divi_mp", "elec_aff_subs_therm_cond", "ndunfill", "op_eg", "atom_mass_subs_mp", "mol_vol_subs_voro_coord", "jv_enp", "polzbl_mult_atom_mass", "first_ion_en_add_mp", "first_ion_en_add_atom_mass", "mol_vol_mult_bp", "mol_vol_add_atom_mass", "nfvalence", "hfus_subs_voro_coord", "voro_coord_divi_mol_vol", "hfus_mult_first_ion_en", "mp_mult_atom_mass", "polzbl", "therm_cond_subs_first_ion_en", "mol_vol_subs_elec_aff", "therm_cond_divi_atom_rad", "first_ion_en_subs_atom_mass", "atom_rad_mult_X", "mp_subs_mol_vol", "hfus_divi_bp", "mol_vol_subs_therm_cond", "mol_vol_subs_first_ion_en", "oq_bg", "therm_cond_mult_X", "mol_vol_subs_X", "elec_aff_subs_X", "atom_rad", "bp_subs_elec_aff", "polzbl_divi_first_ion_en", "mp_mult_atom_rad", "polzbl_mult_mp", "first_ion_en_divi_bp", "atom_mass", "bp_subs_therm_cond", "bp_add_atom_mass", "polzbl_divi_hfus", "hfus_mult_atom_rad", "first_ion_en_divi_voro_coord", "mp_add_therm_cond", "hfus_mult_atom_mass", "hfus_divi_mol_vol", "hfus_divi_polzbl", "first_ion_en_divi_hfus", "elec_aff_subs_atom_mass", "hfus_mult_voro_coord", "polzbl_subs_X", "elec_aff_mult_therm_cond", "atom_rad_subs_atom_mass", "is_alkali", "voro_coord_subs_atom_mass", "mol_vol_mult_X", "hfus_subs_mp", "mol_vol_divi_atom_rad", "atom_mass_subs_polzbl", "atom_rad_divi_mol_vol", "elec_aff_add_bp", "C-13", "C-12", "C-11", "C-10", "C-17", "C-16", "C-15", "C-14", "hfus_divi_voro_coord", "polzbl_subs_atom_mass", "C-19", "C-18", "X_subs_atom_rad", "X_subs_elec_aff", "voro_coord", "mp_add_atom_mass", "elec_aff_add_mp", "is_noble_gas", "polzbl_add_bp", "hfus_add_polzbl", "X_subs_first_ion_en", "mp_subs_first_ion_en", "atom_rad_mult_voro_coord", "mol_vol_subs_mp", "atom_mass_divi_mp", "voro_coord_subs_polzbl", "bp_divi_first_ion_en", "polzbl_add_mp", "polzbl_add_therm_cond", "hfus_subs_atom_rad", "first_ion_en_divi_therm_cond", "X_subs_atom_mass", "mol_vol_subs_bp", "polzbl_mult_therm_cond", "bp_subs_voro_coord", "e1", "e3", "e2", "atom_rad_subs_X", "X_add_voro_coord", "mp_mult_voro_coord", "mp_subs_atom_mass", "mp_add_voro_coord", "therm_cond_divi_hfus", "bp_divi_atom_mass", "first_ion_en_mult_X", "hfus_mult_mol_vol", "voro_coord_divi_bp", "mol_vol_divi_voro_coord", "atom_mass_divi_voro_coord", "is_lanthanoid", "mol_vol_divi_polzbl", "atom_mass_subs_therm_cond", "atom_rad_divi_therm_cond", "atom_mass_divi_polzbl", "bp_add_atom_rad", "voro_coord_subs_hfus", "polzbl_subs_bp", "polzbl_divi_bp", "elec_aff_mult_mp", "ndvalence", "atom_mass_divi_mol_vol", "mp_divi_mol_vol", "therm_cond_subs_voro_coord", "atom_mass_subs_atom_rad", "polzbl_divi_voro_coord", "polzbl_subs_mp", "polzbl_subs_therm_cond", "KV", "min_oxid_s", "elec_aff_mult_atom_rad", "therm_cond_subs_polzbl", "voro_coord_subs_bp", "bp_add_voro_coord", "nsunfill", "mp_mult_X", "atom_mass_mult_atom_rad", "first_ion_en_mult_voro_coord", "elec_aff_subs_voro_coord", "bp_divi_mp", "atom_rad_subs_mol_vol", "bp_subs_hfus", "atom_rad_subs_first_ion_en", "hfus_divi_mp", "first_ion_en_subs_mp", "mp_add_atom_rad", "hfus_add_atom_mass", "bp_subs_mol_vol", "hfus_add_first_ion_en", "bp_subs_atom_rad", "bp_divi_atom_rad", "C-26", "atom_mass_subs_hfus", "mp_subs_therm_cond", "polzbl_divi_atom_rad", "polzbl_add_mol_vol", "first_ion_en_add_bp", "hfus_subs_therm_cond", "mp_divi_hfus", "X_subs_bp", "bp_mult_mp", "atom_mass_mult_therm_cond", "mol_vol_divi_therm_cond", "voro_coord_subs_X", "first_ion_en_subs_mol_vol", "polzbl_add_elec_aff", "therm_cond_subs_atom_mass", "hfus_subs_bp", "atom_mass_subs_mol_vol", "X", "is_actinoid", "hfus_subs_first_ion_en", "first_ion_en_divi_mp", "atom_rad_add_therm_cond", "atom_rad_divi_polzbl", "hfus_divi_atom_mass", "mp_mult_therm_cond", "first_ion_en_add_X", "polzbl_add_voro_coord", "mol_vol_subs_polzbl", "therm_cond_divi_first_ion_en", "bp_mult_voro_coord", "atom_mass_add_atom_rad", "hfus_mult_mp", "voro_coord_divi_polzbl", "elec_aff_add_therm_cond", "C-28", "C-29", "hfus_add_voro_coord", "C-27", "C-24", "C-25", "C-22", "C-23", "C-20", "C-21", "therm_cond_divi_polzbl", "mol_vol_mult_mp", "mp_subs_X", "bp_subs_atom_mass", "first_ion_en_add_therm_cond", "voro_coord_divi_atom_mass", "atom_mass_subs_voro_coord", "hfus_add_therm_cond", "atom_rad_divi_mp", "mp_subs_voro_coord", "hfus_mult_polzbl", "bp_divi_hfus", "therm_cond_divi_voro_coord", "first_ion_en_subs_atom_rad", "atom_rad_subs_bp", "atom_rad_add_X", "mol_vol_add_voro_coord", "avg_ion_rad", "bp_divi_mol_vol", "atom_rad_subs_mp", "atom_mass_mult_voro_coord", "therm_cond_add_X", "atom_rad_subs_therm_cond", "polzbl_add_first_ion_en", "polzbl_mult_bp", "first_ion_en_mult_elec_aff", "elec_aff_subs_mol_vol", "nsvalence", "mol_vol_subs_hfus", "atom_mass_divi_bp", "bp_subs_polzbl", "bp_add_mp", "polzbl_divi_mol_vol", "voro_coord_subs_elec_aff", "elec_aff_add_atom_rad", "mol_vol_add_atom_rad", "hfus_mult_X", "mp_subs_hfus", "voro_coord_divi_first_ion_en", "atom_rad_divi_first_ion_en", "elec_aff_mult_mol_vol", "is_metalloid", "hfus_mult_therm_cond", "hfus_divi_therm_cond", "therm_cond_divi_mol_vol", "elec_aff", "mp_divi_atom_rad", "elec_aff_subs_polzbl", "polzbl_divi_atom_mass", "atom_rad_subs_elec_aff", "bp_divi_therm_cond", "atom_mass_mult_X", "mp_divi_polzbl", "elec_aff_subs_atom_rad", "voro_coord_divi_atom_rad", "hfus_subs_mol_vol", "mol_vol_add_therm_cond", "bp_mult_X", "therm_cond_divi_mp", "mp_subs_polzbl", "atom_rad_divi_bp", "atom_rad_subs_hfus", "polzbl_subs_elec_aff", "therm_cond_divi_atom_mass", "bp_divi_voro_coord", "bp_add_therm_cond", "hfus_divi_first_ion_en", "X_mult_voro_coord", "bp_subs_X", "polzbl_subs_voro_coord", "coulmn", "first_ion_en_divi_polzbl", "first_ion_en_mult_atom_mass", "mol_vol_mult_therm_cond", "bp_mult_therm_cond", "mol_vol", "mol_vol_mult_voro_coord", "atom_mass_subs_elec_aff", "atom_mass_divi_first_ion_en", "hfus_subs_elec_aff", "first_ion_en_mult_bp", "polzbl_mult_mol_vol", "polzbl_add_atom_mass", "elec_aff_mult_bp", "voro_coord_subs_atom_rad", "mp_add_X", "elec_aff_subs_bp", "polzbl_divi_therm_cond", "polzbl_mult_voro_coord", "bp", "therm_cond_mult_voro_coord", "elec_aff_subs_mp", "C-31", "C-30", "C-33", "C-32", "C-35", "C-34", "first_ion_en_subs_X", "is_transition_metal", "mp_subs_bp", "hfus_add_mol_vol", "block", "atom_rad_subs_voro_coord", "X_subs_therm_cond", "polzbl_subs_first_ion_en", "hfus_subs_atom_mass", "mol_vol_divi_bp", "first_ion_en_subs_therm_cond", "elec_aff_add_voro_coord", "voro_coord_divi_hfus", "therm_cond", "bp_subs_first_ion_en", "X_subs_voro_coord", "therm_cond_divi_bp", "mp_divi_bp", "first_ion_en_divi_atom_rad", "hfus_subs_polzbl", "mol_vol_divi_mp", "atom_rad_add_voro_coord", "mol_vol_mult_atom_rad", "first_ion_en_mult_atom_rad", "hfus_mult_bp", "voro_coord_subs_first_ion_en", "Z", "polzbl_subs_hfus", "polzbl_add_X", "is_alkaline", "npunfill", "first_ion_en_subs_bp", "voro_coord_divi_mp", "atom_mass_divi_hfus", "oq_enp", "elec_aff_subs_hfus", "atom_mass_subs_bp", "first_ion_en_add_elec_aff", "first_ion_en_add_mol_vol", "hfus_mult_elec_aff", "polzbl_mult_elec_aff", "hfus_add_X", "hfus_add_mp", "therm_cond_subs_bp", "bp_divi_polzbl", "X_subs_hfus", "atom_rad_mult_therm_cond", "therm_cond_add_voro_coord", "mop_eg", "X_subs_polzbl", "mol_vol_divi_first_ion_en", "mp_divi_first_ion_en", "voro_coord_subs_mol_vol", "elec_aff_add_mol_vol", "mol_vol_add_X", "atom_mass_add_X", "polzbl_subs_atom_rad", "mol_vol_divi_atom_mass", "polzbl_subs_mol_vol", "mp_subs_atom_rad", "X_subs_mp", "atom_mass_subs_X", "first_ion_en_add_atom_rad", "therm_cond_subs_X", "hfus", "first_ion_en_mult_therm_cond", "cell_0", "cell_1", "cell_2", "cell_3", "mean_chg_0", "mean_chg_1", "mean_chg_2", "mean_chg_3", "mean_chg_4", "mean_chg_5", "mean_chg_6", "mean_chg_7", "mean_chg_8", "mean_chg_9", "mean_chg_10", "mean_chg_11", "mean_chg_12", "mean_chg_13", "mean_chg_14", "mean_chg_15", "mean_chg_16", "mean_chg_17", "mean_chg_18", "mean_chg_19", "mean_chg_20", "mean_chg_21", "mean_chg_22", "mean_chg_23", "mean_chg_24", "mean_chg_25", "mean_chg_26", "mean_chg_27", "mean_chg_28", "mean_chg_29", "mean_chg_30", "mean_chg_31", "mean_chg_32", "mean_chg_33", "mean_chg_34", "mean_chg_35", "mean_chg_36", "mean_chg_37", "mean_chg_38", "mean_chg_39", "mean_chg_40", "mean_chg_41", "mean_chg_42", "mean_chg_43", "mean_chg_44", "mean_chg_45", "mean_chg_46", "mean_chg_47", "mean_chg_48", "mean_chg_49", "mean_chg_50", "mean_chg_51", "mean_chg_52", "mean_chg_53", "mean_chg_54", "mean_chg_55", "mean_chg_56", "mean_chg_57", "mean_chg_58", "mean_chg_59", "mean_chg_60", "mean_chg_61", "mean_chg_62", "mean_chg_63", "mean_chg_64", "mean_chg_65", "mean_chg_66", "mean_chg_67", "mean_chg_68", "mean_chg_69", "mean_chg_70", "mean_chg_71", "mean_chg_72", "mean_chg_73", "mean_chg_74", "mean_chg_75", "mean_chg_76", "mean_chg_77", "mean_chg_78", "mean_chg_79", "mean_chg_80", "mean_chg_81", "mean_chg_82", "mean_chg_83", "mean_chg_84", "mean_chg_85", "mean_chg_86", "mean_chg_87", "mean_chg_88", "mean_chg_89", "mean_chg_90", "mean_chg_91", "mean_chg_92", "mean_chg_93", "mean_chg_94", "mean_chg_95", "mean_chg_96", "mean_chg_97", "mean_chg_98", "mean_chg_99", "mean_chg_100", "mean_chg_101", "mean_chg_102", "mean_chg_103", "mean_chg_104", "mean_chg_105", "mean_chg_106", "mean_chg_107", "mean_chg_108", "mean_chg_109", "mean_chg_110", "mean_chg_111", "mean_chg_112", "mean_chg_113", "mean_chg_114", "mean_chg_115", "mean_chg_116", "mean_chg_117", "mean_chg_118", "mean_chg_119", "mean_chg_120", "mean_chg_121", "mean_chg_122", "mean_chg_123", "mean_chg_124", "mean_chg_125", "mean_chg_126", "mean_chg_127", "mean_chg_128", "mean_chg_129", "mean_chg_130", "mean_chg_131", "mean_chg_132", "mean_chg_133", "mean_chg_134", "mean_chg_135", "mean_chg_136", "mean_chg_137", "mean_chg_138", "mean_chg_139", "mean_chg_140", "mean_chg_141", "mean_chg_142", "mean_chg_143", "mean_chg_144", "mean_chg_145", "mean_chg_146", "mean_chg_147", "mean_chg_148", "mean_chg_149", "mean_chg_150", "mean_chg_151", "mean_chg_152", "mean_chg_153", "mean_chg_154", "mean_chg_155", "mean_chg_156", "mean_chg_157", "mean_chg_158", "mean_chg_159", "mean_chg_160", "mean_chg_161", "mean_chg_162", "mean_chg_163", "mean_chg_164", "mean_chg_165", "mean_chg_166", "mean_chg_167", "mean_chg_168", "mean_chg_169", "mean_chg_170", "mean_chg_171", "mean_chg_172", "mean_chg_173", "mean_chg_174", "mean_chg_175", "mean_chg_176", "mean_chg_177", "mean_chg_178", "mean_chg_179", "mean_chg_180", "mean_chg_181", "mean_chg_182", "mean_chg_183", "mean_chg_184", "mean_chg_185", "mean_chg_186", "mean_chg_187", "mean_chg_188", "mean_chg_189", "mean_chg_190", "mean_chg_191", "mean_chg_192", "mean_chg_193", "mean_chg_194", "mean_chg_195", "mean_chg_196", "mean_chg_197", "mean_chg_198", "mean_chg_199", "mean_chg_200", "mean_chg_201", "mean_chg_202", "mean_chg_203", "mean_chg_204", "mean_chg_205", "mean_chg_206", "mean_chg_207", "mean_chg_208", "mean_chg_209", "mean_chg_210", "mean_chg_211", "mean_chg_212", "mean_chg_213", "mean_chg_214", "mean_chg_215", "mean_chg_216", "mean_chg_217", "mean_chg_218", "mean_chg_219", "mean_chg_220", "mean_chg_221", "mean_chg_222", "mean_chg_223", "mean_chg_224", "mean_chg_225", "mean_chg_226", "mean_chg_227", "mean_chg_228", "mean_chg_229", "mean_chg_230", "mean_chg_231", "mean_chg_232", "mean_chg_233", "mean_chg_234", "mean_chg_235", "mean_chg_236", "mean_chg_237", "mean_chg_238", "mean_chg_239", "mean_chg_240", "mean_chg_241", "mean_chg_242", "mean_chg_243", "mean_chg_244", "mean_chg_245", "mean_chg_246", "mean_chg_247", "mean_chg_248", "mean_chg_249", "mean_chg_250", "mean_chg_251", "mean_chg_252", "mean_chg_253", "mean_chg_254", "mean_chg_255", "mean_chg_256", "mean_chg_257", "mean_chg_258", "mean_chg_259", "mean_chg_260", "mean_chg_261", "mean_chg_262", "mean_chg_263", "mean_chg_264", "mean_chg_265", "mean_chg_266", "mean_chg_267", "mean_chg_268", "mean_chg_269", "mean_chg_270", "mean_chg_271", "mean_chg_272", "mean_chg_273", "mean_chg_274", "mean_chg_275", "mean_chg_276", "mean_chg_277", "mean_chg_278", "mean_chg_279", "mean_chg_280", "mean_chg_281", "mean_chg_282", "mean_chg_283", "mean_chg_284", "mean_chg_285", "mean_chg_286", "mean_chg_287", "mean_chg_288", "mean_chg_289", "mean_chg_290", "mean_chg_291", "mean_chg_292", "mean_chg_293", "mean_chg_294", "mean_chg_295", "mean_chg_296", "mean_chg_297", "mean_chg_298", "mean_chg_299", "mean_chg_300", "mean_chg_301", "mean_chg_302", "mean_chg_303", "mean_chg_304", "mean_chg_305", "mean_chg_306", "mean_chg_307", "mean_chg_308", "mean_chg_309", "mean_chg_310", "mean_chg_311", "mean_chg_312", "mean_chg_313", "mean_chg_314", "mean_chg_315", "mean_chg_316", "mean_chg_317", "mean_chg_318", "mean_chg_319", "mean_chg_320", "mean_chg_321", "mean_chg_322", "mean_chg_323", "mean_chg_324", "mean_chg_325", "mean_chg_326", "mean_chg_327", "mean_chg_328", "mean_chg_329", "mean_chg_330", "mean_chg_331", "mean_chg_332", "mean_chg_333", "mean_chg_334", "mean_chg_335", "mean_chg_336", "mean_chg_337", "mean_chg_338", "mean_chg_339", "mean_chg_340", "mean_chg_341", "mean_chg_342", "mean_chg_343", "mean_chg_344", "mean_chg_345", "mean_chg_346", "mean_chg_347", "mean_chg_348", "mean_chg_349", "mean_chg_350", "mean_chg_351", "mean_chg_352", "mean_chg_353", "mean_chg_354", "mean_chg_355", "mean_chg_356", "mean_chg_357", "mean_chg_358", "mean_chg_359", "mean_chg_360", "mean_chg_361", "mean_chg_362", "mean_chg_363", "mean_chg_364", "mean_chg_365", "mean_chg_366", "mean_chg_367", "mean_chg_368", "mean_chg_369", "mean_chg_370", "mean_chg_371", "mean_chg_372", "mean_chg_373", "mean_chg_374", "mean_chg_375", "mean_chg_376", "mean_chg_377", "rdf_0", "rdf_1", "rdf_2", "rdf_3", "rdf_4", "rdf_5", "rdf_6", "rdf_7", "rdf_8", "rdf_9", "rdf_10", "rdf_11", "rdf_12", "rdf_13", "rdf_14", "rdf_15", "rdf_16", "rdf_17", "rdf_18", "rdf_19", "rdf_20", "rdf_21", "rdf_22", "rdf_23", "rdf_24", "rdf_25", "rdf_26", "rdf_27", "rdf_28", "rdf_29", "rdf_30", "rdf_31", "rdf_32", "rdf_33", "rdf_34", "rdf_35", "rdf_36", "rdf_37", "rdf_38", "rdf_39", "rdf_40", "rdf_41", "rdf_42", "rdf_43", "rdf_44", "rdf_45", "rdf_46", "rdf_47", "rdf_48", "rdf_49", "rdf_50", "rdf_51", "rdf_52", "rdf_53", "rdf_54", "rdf_55", "rdf_56", "rdf_57", "rdf_58", "rdf_59", "rdf_60", "rdf_61", "rdf_62", "rdf_63", "rdf_64", "rdf_65", "rdf_66", "rdf_67", "rdf_68", "rdf_69", "rdf_70", "rdf_71", "rdf_72", "rdf_73", "rdf_74", "rdf_75", "rdf_76", "rdf_77", "rdf_78", "rdf_79", "rdf_80", "rdf_81", "rdf_82", "rdf_83", "rdf_84", "rdf_85", "rdf_86", "rdf_87", "rdf_88", "rdf_89", "rdf_90", "rdf_91", "rdf_92", "rdf_93", "rdf_94", "rdf_95", "rdf_96", "rdf_97", "rdf_98", "rdf_99", "adfa_0", "adfa_1", "adfa_2", "adfa_3", "adfa_4", "adfa_5", "adfa_6", "adfa_7", "adfa_8", "adfa_9", "adfa_10", "adfa_11", "adfa_12", "adfa_13", "adfa_14", "adfa_15", "adfa_16", "adfa_17", "adfa_18", "adfa_19", "adfa_20", "adfa_21", "adfa_22", "adfa_23", "adfa_24", "adfa_25", "adfa_26", "adfa_27", "adfa_28", "adfa_29", "adfa_30", "adfa_31", "adfa_32", "adfa_33", "adfa_34", "adfa_35", "adfa_36", "adfa_37", "adfa_38", "adfa_39", "adfa_40", "adfa_41", "adfa_42", "adfa_43", "adfa_44", "adfa_45", "adfa_46", "adfa_47", "adfa_48", "adfa_49", "adfa_50", "adfa_51", "adfa_52", "adfa_53", "adfa_54", "adfa_55", "adfa_56", "adfa_57", "adfa_58", "adfa_59", "adfa_60", "adfa_61", "adfa_62", "adfa_63", "adfa_64", "adfa_65", "adfa_66", "adfa_67", "adfa_68", "adfa_69", "adfa_70", "adfa_71", "adfa_72", "adfa_73", "adfa_74", "adfa_75", "adfa_76", "adfa_77", "adfa_78", "adfa_79", "adfa_80", "adfa_81", "adfa_82", "adfa_83", "adfa_84", "adfa_85", "adfa_86", "adfa_87", "adfa_88", "adfa_89", "adfa_90", "adfa_91", "adfa_92", "adfa_93", "adfa_94", "adfa_95", "adfa_96", "adfa_97", "adfa_98", "adfa_99", "adfa_100", "adfa_101", "adfa_102", "adfa_103", "adfa_104", "adfa_105", "adfa_106", "adfa_107", "adfa_108", "adfa_109", "adfa_110", "adfa_111", "adfa_112", "adfa_113", "adfa_114", "adfa_115", "adfa_116", "adfa_117", "adfa_118", "adfa_119", "adfa_120", "adfa_121", "adfa_122", "adfa_123", "adfa_124", "adfa_125", "adfa_126", "adfa_127", "adfa_128", "adfa_129", "adfa_130", "adfa_131", "adfa_132", "adfa_133", "adfa_134", "adfa_135", "adfa_136", "adfa_137", "adfa_138", "adfa_139", "adfa_140", "adfa_141", "adfa_142", "adfa_143", "adfa_144", "adfa_145", "adfa_146", "adfa_147", "adfa_148", "adfa_149", "adfa_150", "adfa_151", "adfa_152", "adfa_153", "adfa_154", "adfa_155", "adfa_156", "adfa_157", "adfa_158", "adfa_159", "adfa_160", "adfa_161", "adfa_162", "adfa_163", "adfa_164", "adfa_165", "adfa_166", "adfa_167", "adfa_168", "adfa_169", "adfa_170", "adfa_171", "adfa_172", "adfa_173", "adfa_174", "adfa_175", "adfa_176", "adfa_177", "adfa_178", "adfb_0", "adfb_1", "adfb_2", "adfb_3", "adfb_4", "adfb_5", "adfb_6", "adfb_7", "adfb_8", "adfb_9", "adfb_10", "adfb_11", "adfb_12", "adfb_13", "adfb_14", "adfb_15", "adfb_16", "adfb_17", "adfb_18", "adfb_19", "adfb_20", "adfb_21", "adfb_22", "adfb_23", "adfb_24", "adfb_25", "adfb_26", "adfb_27", "adfb_28", "adfb_29", "adfb_30", "adfb_31", "adfb_32", "adfb_33", "adfb_34", "adfb_35", "adfb_36", "adfb_37", "adfb_38", "adfb_39", "adfb_40", "adfb_41", "adfb_42", "adfb_43", "adfb_44", "adfb_45", "adfb_46", "adfb_47", "adfb_48", "adfb_49", "adfb_50", "adfb_51", "adfb_52", "adfb_53", "adfb_54", "adfb_55", "adfb_56", "adfb_57", "adfb_58", "adfb_59", "adfb_60", "adfb_61", "adfb_62", "adfb_63", "adfb_64", "adfb_65", "adfb_66", "adfb_67", "adfb_68", "adfb_69", "adfb_70", "adfb_71", "adfb_72", "adfb_73", "adfb_74", "adfb_75", "adfb_76", "adfb_77", "adfb_78", "adfb_79", "adfb_80", "adfb_81", "adfb_82", "adfb_83", "adfb_84", "adfb_85", "adfb_86", "adfb_87", "adfb_88", "adfb_89", "adfb_90", "adfb_91", "adfb_92", "adfb_93", "adfb_94", "adfb_95", "adfb_96", "adfb_97", "adfb_98", "adfb_99", "adfb_100", "adfb_101", "adfb_102", "adfb_103", "adfb_104", "adfb_105", "adfb_106", "adfb_107", "adfb_108", "adfb_109", "adfb_110", "adfb_111", "adfb_112", "adfb_113", "adfb_114", "adfb_115", "adfb_116", "adfb_117", "adfb_118", "adfb_119", "adfb_120", "adfb_121", "adfb_122", "adfb_123", "adfb_124", "adfb_125", "adfb_126", "adfb_127", "adfb_128", "adfb_129", "adfb_130", "adfb_131", "adfb_132", "adfb_133", "adfb_134", "adfb_135", "adfb_136", "adfb_137", "adfb_138", "adfb_139", "adfb_140", "adfb_141", "adfb_142", "adfb_143", "adfb_144", "adfb_145", "adfb_146", "adfb_147", "adfb_148", "adfb_149", "adfb_150", "adfb_151", "adfb_152", "adfb_153", "adfb_154", "adfb_155", "adfb_156", "adfb_157", "adfb_158", "adfb_159", "adfb_160", "adfb_161", "adfb_162", "adfb_163", "adfb_164", "adfb_165", "adfb_166", "adfb_167", "adfb_168", "adfb_169", "adfb_170", "adfb_171", "adfb_172", "adfb_173", "adfb_174", "adfb_175", "adfb_176", "adfb_177", "adfb_178", "ddf_0", "ddf_1", "ddf_2", "ddf_3", "ddf_4", "ddf_5", "ddf_6", "ddf_7", "ddf_8", "ddf_9", "ddf_10", "ddf_11", "ddf_12", "ddf_13", "ddf_14", "ddf_15", "ddf_16", "ddf_17", "ddf_18", "ddf_19", "ddf_20", "ddf_21", "ddf_22", "ddf_23", "ddf_24", "ddf_25", "ddf_26", "ddf_27", "ddf_28", "ddf_29", "ddf_30", "ddf_31", "ddf_32", "ddf_33", "ddf_34", "ddf_35", "ddf_36", "ddf_37", "ddf_38", "ddf_39", "ddf_40", "ddf_41", "ddf_42", "ddf_43", "ddf_44", "ddf_45", "ddf_46", "ddf_47", "ddf_48", "ddf_49", "ddf_50", "ddf_51", "ddf_52", "ddf_53", "ddf_54", "ddf_55", "ddf_56", "ddf_57", "ddf_58", "ddf_59", "ddf_60", "ddf_61", "ddf_62", "ddf_63", "ddf_64", "ddf_65", "ddf_66", "ddf_67", "ddf_68", "ddf_69", "ddf_70", "ddf_71", "ddf_72", "ddf_73", "ddf_74", "ddf_75", "ddf_76", "ddf_77", "ddf_78", "ddf_79", "ddf_80", "ddf_81", "ddf_82", "ddf_83", "ddf_84", "ddf_85", "ddf_86", "ddf_87", "ddf_88", "ddf_89", "ddf_90", "ddf_91", "ddf_92", "ddf_93", "ddf_94", "ddf_95", "ddf_96", "ddf_97", "ddf_98", "ddf_99", "ddf_100", "ddf_101", "ddf_102", "ddf_103", "ddf_104", "ddf_105", "ddf_106", "ddf_107", "ddf_108", "ddf_109", "ddf_110", "ddf_111", "ddf_112", "ddf_113", "ddf_114", "ddf_115", "ddf_116", "ddf_117", "ddf_118", "ddf_119", "ddf_120", "ddf_121", "ddf_122", "ddf_123", "ddf_124", "ddf_125", "ddf_126", "ddf_127", "ddf_128", "ddf_129", "ddf_130", "ddf_131", "ddf_132", "ddf_133", "ddf_134", "ddf_135", "ddf_136", "ddf_137", "ddf_138", "ddf_139", "ddf_140", "ddf_141", "ddf_142", "ddf_143", "ddf_144", "ddf_145", "ddf_146", "ddf_147", "ddf_148", "ddf_149", "ddf_150", "ddf_151", "ddf_152", "ddf_153", "ddf_154", "ddf_155", "ddf_156", "ddf_157", "ddf_158", "ddf_159", "ddf_160", "ddf_161", "ddf_162", "ddf_163", "ddf_164", "ddf_165", "ddf_166", "ddf_167", "ddf_168", "ddf_169", "ddf_170", "ddf_171", "ddf_172", "ddf_173", "ddf_174", "ddf_175", "ddf_176", "ddf_177", "ddf_178", "nn_0", "nn_1", "nn_2", "nn_3", "nn_4", "nn_5", "nn_6", "nn_7", "nn_8", "nn_9", "nn_10", "nn_11", "nn_12", "nn_13", "nn_14", "nn_15", "nn_16", "nn_17", "nn_18", "nn_19", "nn_20", "nn_21", "nn_22", "nn_23", "nn_24", "nn_25", "nn_26", "nn_27", "nn_28", "nn_29", "nn_30", "nn_31", "nn_32", "nn_33", "nn_34", "nn_35", "nn_36", "nn_37", "nn_38", "nn_39", "nn_40", "nn_41", "nn_42", "nn_43", "nn_44", "nn_45", "nn_46", "nn_47", "nn_48", "nn_49", "nn_50", "nn_51", "nn_52", "nn_53", "nn_54", "nn_55", "nn_56", "nn_57", "nn_58", "nn_59", "nn_60", "nn_61", "nn_62", "nn_63", "nn_64", "nn_65", "nn_66", "nn_67", "nn_68", "nn_69", "nn_70", "nn_71", "nn_72", "nn_73", "nn_74", "nn_75", "nn_76", "nn_77", "nn_78", "nn_79", "nn_80", "nn_81", "nn_82", "nn_83", "nn_84", "nn_85", "nn_86", "nn_87", "nn_88", "nn_89", "nn_90", "nn_91", "nn_92", "nn_93", "nn_94", "nn_95", "nn_96", "nn_97", "nn_98", "nn_99", ] return names
""" if __name__ == "__main__": box = [[2.715, 2.715, 0], [0, 2.715, 2.715], [2.715, 0, 2.715]] coords = [[0, 0, 0], [0.25, 0.25, 0.25]] elements = ["Si", "Si"] p = Atoms(lattice_mat=box, coords=coords, elements=elements) v = VacuumPadding(p, vacuum=20.0).get_effective_2d_slab() v = VacuumPadding(p, vacuum=20.0).get_effective_molecule() Time = time.time() cfid = CFID(p.atoms).get_comp_descp() tot_time = time.time() - Time print("tot_time", tot_time) """