Exemplo n.º 1
0
def plot_eam_potential_from_setflfile(filename):
    import matplotlib.pyplot as plt

    fig, ax = plt.subplots(3, 1)

    setfl = SeatonSetflReader(path=setfl_filename)
    setfl.read()

    # plot the pair potential function
    for pair in setfl.element_pairs:
        pair_x = create_r(setfl.n_r * setfl.d_r, setfl.n_r)
        pair_y = setfl.pair_function(pair) / pair_x

        ax[0].plot(pair_x, pair_y, label=pair)
    ax[0].legend()

    # plot the density functions
    for s in setfl.elements:
        dens_x = create_r(setfl.n_r * setfl.d_r, setfl.n_r)
        dens_y = setfl.density_function(s)

        ax[1].plot(dens_x, dens_y, label=s)
    ax[1].legend()

    # plot the embedding energy function
    for s in setfl.elements:
        embed_x = create_r(setfl.n_rho * setfl.d_rho, setfl.n_rho)
        embed_y = setfl.embedding_function(s)
        ax[2].plot(embed_x, embed_y, label=s)
    ax[2].legend()

    fig.tight_layout()

    plt.show()
Exemplo n.º 2
0
    fig.tight_layout()

    plt.show()


if __name__ == "__main__":

    #setfl_filename = os.path.join(
    #        'test_EamSetflFile',
    #        'Ni1_Mendelev_2010.eam.fs')

    setfl_filename = os.path.join(
        pypospack.utils.get_pypospack_root_directory(), 'data', 'potentials',
        'Ni__eam', 'Mishin-Ni-Al-2009.eam.alloy')

    setfl_reader = SeatonSetflReader(path=setfl_filename)
    setfl_reader.read()
    print("elements: ", setfl_reader.elements)
    print("element_pairs: ", setfl_reader.element_pairs)
    print("n_rho: ", setfl_reader.n_rho)
    print("d_rho: ", setfl_reader.d_rho)
    print("n_r: ", setfl_reader.n_r)
    print("d_r: ", setfl_reader.d_r)
    print("cutoff: ", setfl_reader.cutoff)
    assert len(setfl_reader.embedding_function("Ni")) == setfl_reader.n_r
    assert len(setfl_reader.density_function("Ni")) == setfl_reader.n_rho
    assert len(setfl_reader.pair_function("NiNi")) == setfl_reader.n_r

    plot_eam_potential_from_setflfile(setfl_filename)