Пример #1
0
    def __init__(self, symbol):
        """Initialise Element class

        Args:
            symbol (str): Chemical element symbol (e.g. 'Fe')

        """

        dataset = data_loader.lookup_element_data(symbol, copy=False)

        if dataset == None:
            raise NameError("Elemental data for {0} not found.".format(symbol))

        # Set coordination-environment data from the Shannon-radius data.
        # As above, it is safe to use copy = False with this Get* function.

        shannon_data = data_loader.lookup_element_shannon_radius_data(symbol, copy=False)

        if shannon_data != None:
            coord_envs = [row['coordination'] for row in shannon_data]
        else:
            coord_envs = None

        HHI_scores = data_loader.lookup_element_hhis(symbol)
        if HHI_scores == None:
            HHI_scores = (None, None)

        sse_data = data_loader.lookup_element_sse_data(symbol)
        if sse_data:
            sse = sse_data['SolidStateEnergy']
        else:
            sse = None

        sse_Pauling_data = data_loader.lookup_element_sse_pauling_data(symbol)
        if sse_Pauling_data:
            sse_Pauling = sse_Pauling_data['SolidStateEnergyPauling']
        else:
            sse_Pauling = None

        for attribute, value in (
            ('coord_envs', coord_envs),
            ('covalent_radius', dataset['r_cov']),
            ('crustal_abundance', dataset['Abundance']),
            ('e_affinity', dataset['e_affinity']),
            ('eig', dataset['p_eig']),
            ('eig_s', dataset['s_eig']),
            ('HHI_p', HHI_scores[0]),
            ('HHI_r', HHI_scores[1]),
            ('ionpot', dataset['ion_pot']),
            ('mass', dataset['Mass']),
            ('name', dataset['Name']),
            ('number', dataset['Z']),
            ('oxidation_states',
             data_loader.lookup_element_oxidation_states(symbol)),
            ('oxidation_states_icsd',
             data_loader.lookup_element_oxidation_states_icsd(symbol)),
            ('oxidation_states_sp',
             data_loader.lookup_element_oxidation_states_sp(symbol)),
            ('dipol', dataset['dipol']),
            ('pauling_eneg', dataset['el_neg']),
            ('SSE', sse),
            ('SSEPauling', sse_Pauling),
            ('symbol', symbol),
            #('vdw_radius', dataset['RVdW']),
            ):
            setattr(self, attribute, value)
Пример #2
0
    def __init__(self, symbol):
        """Initialise Element class

        Args:
            symbol (str): Chemical element symbol (e.g. 'Fe')

        """

        dataset = data_loader.lookup_element_data(symbol, copy=False)

        if dataset == None:
            raise NameError("Elemental data for {0} not found.".format(symbol))

        # Set coordination-environment data from the Shannon-radius data.
        # As above, it is safe to use copy = False with this Get* function.

        shannon_data = data_loader.lookup_element_shannon_radius_data(symbol, copy=False)

        if shannon_data != None:
            coord_envs = [row['coordination'] for row in shannon_data]
        else:
            coord_envs = None

        HHI_scores = data_loader.lookup_element_hhis(symbol)
        if HHI_scores == None:
            HHI_scores = (None, None)

        sse_data = data_loader.lookup_element_sse_data(symbol)
        if sse_data:
            sse = sse_data['SolidStateEnergy']
        else:
            sse = None

        sse_Pauling_data = data_loader.lookup_element_sse_pauling_data(symbol)
        if sse_Pauling_data:
            sse_Pauling = sse_Pauling_data['SolidStateEnergyPauling']
        else:
            sse_Pauling = None

        for attribute, value in (
            ('coord_envs', coord_envs),
            ('covalent_radius', dataset['r_cov']),
            ('crustal_abundance', dataset['Abundance']),
            ('e_affinity', dataset['e_affinity']),
            ('eig', dataset['p_eig']),
            ('eig_s', dataset['s_eig']),
            ('HHI_p', HHI_scores[0]),
            ('HHI_r', HHI_scores[1]),
            ('ionpot', dataset['ion_pot']),
            ('mass', dataset['Mass']),
            ('name', dataset['Name']),
            ('number', dataset['Z']),
            ('oxidation_states',
             data_loader.lookup_element_oxidation_states(symbol)),
            ('oxidation_states_icsd',
             data_loader.lookup_element_oxidation_states_icsd(symbol)),
            ('oxidation_states_sp',
             data_loader.lookup_element_oxidation_states_sp(symbol)),
            ('dipol', dataset['dipol']),
            ('pauling_eneg', dataset['el_neg']),
            ('SSE', sse),
            ('SSEPauling', sse_Pauling),
            ('symbol', symbol),
            #('vdw_radius', dataset['RVdW']),
            ):
            setattr(self, attribute, value)