def test_get_df(self):
        data_file = os.path.join(tests_dir, "cNa3PS4_pda.json")
        data = json.load(open(data_file, "r"))
        obj = DiffusionAnalyzer.from_dict(data)

        structure_list = []
        for i, s in enumerate(obj.get_drift_corrected_structures()):
            structure_list.append(s)
            if i == 9: break
        eva = EvolutionAnalyzer(structure_list, rmax=10, step=1, time_step=2)
        rdf = eva.get_df(EvolutionAnalyzer.rdf, pair=("Na", "Na"))
        atom_dist = eva.get_df(EvolutionAnalyzer.atom_dist, specie="Na", direction="c")
        check = np.shape(rdf) == (10, 101) and np.shape(atom_dist) == (10, 101) and eva.pairs[0] == ("Na", "Na")
        self.assertTrue(check)
        self.assertAlmostEqual(max(np.array(rdf)[0]), 1.82363640047, 4)
    def test_get_df(self):
        # Parse the DiffusionAnalyzer object from json file directly
        obj = loadfn(os.path.join(tests_dir, "cNa3PS4_pda.json"))

        structure_list = []
        for i, s in enumerate(obj.get_drift_corrected_structures()):
            structure_list.append(s)
            if i == 9: break
        eva = EvolutionAnalyzer(structure_list, rmax=10, step=1, time_step=2)
        rdf = eva.get_df(EvolutionAnalyzer.rdf, pair=("Na", "Na"))
        atom_dist = eva.get_df(EvolutionAnalyzer.atom_dist, specie="Na",
                               direction="c")
        check = np.shape(rdf) == (10, 101) and np.shape(atom_dist) == (
            10, 101) and ("Na", "Na") in eva.pairs
        self.assertTrue(check)
        self.assertAlmostEqual(max(np.array(rdf)[0]), 1.772465, 4)
Beispiel #3
0
import os

from pymatgen.io.vasp import Xdatcar
from pymatgen_diffusion.aimd.van_hove import EvolutionAnalyzer

os.chdir('/home/jinho93/oxides/cluster/zno/vasp/1.aimd/2.10A/2.02/3fs')
structures = Xdatcar('XDATCAR').structures
e = EvolutionAnalyzer(structures)
for s in structures:
    s.substitute()
e.plot_rdf_evolution(('O', 'O'))