def test_fit_arrhenius(self):
        Ea = 0.5
        k = const.k / const.e
        c = 12
        temps = np.array([300, 1000, 500])
        diffusivities = c * np.exp(-Ea / (k * temps))
        diffusivities *= np.array([1.00601834013, 1.00803236262, 0.98609720824])
        r = fit_arrhenius(temps, diffusivities)
        self.assertAlmostEqual(r[0], Ea)
        self.assertAlmostEqual(r[1], c)
        self.assertAlmostEqual(r[2], 0.000895566)

        # when not enough values for error estimate
        r2 = fit_arrhenius([1, 2], [10, 10])
        self.assertAlmostEqual(r2[0], 0)
        self.assertAlmostEqual(r2[1], 10)
        self.assertEqual(r2[2], None)
Beispiel #2
0
 def test_fit_arrhenius(self):
     Ea = 0.5
     k = phyc.k_b / phyc.e
     c = 12
     temps = np.array([300, 1000, 500])
     diffusivities = c * np.exp(-Ea / (k * temps))
     r = fit_arrhenius(temps, diffusivities)
     self.assertAlmostEqual(r[0], Ea)
     self.assertAlmostEqual(r[1], c)
 def test_fit_arrhenius(self):
     Ea = 0.5
     k = phyc.k_b / phyc.e
     c = 12
     temps = np.array([300, 1000, 500])
     diffusivities = c * np.exp(-Ea/(k * temps))
     r = fit_arrhenius(temps, diffusivities)
     self.assertAlmostEqual(r[0], Ea)
     self.assertAlmostEqual(r[1], c)
    def test_fit_arrhenius(self):
        Ea = 0.5
        k = const.k / const.e
        c = 12
        temps = np.array([300, 1000, 500])
        diffusivities = c * np.exp(-Ea/(k * temps))
        diffusivities *= np.array([1.00601834013,
                                   1.00803236262,
                                   0.98609720824])
        r = fit_arrhenius(temps, diffusivities)
        self.assertAlmostEqual(r[0], Ea)
        self.assertAlmostEqual(r[1], c)
        self.assertAlmostEqual(r[2], 0.000895566)

        # when not enough values for error estimate
        r2 = fit_arrhenius([1, 2], [10, 10])
        self.assertAlmostEqual(r2[0], 0)
        self.assertAlmostEqual(r2[1], 10)
        self.assertEqual(r2[2], None)
Beispiel #5
0
    def Diffusion(self, skip=10, spaces='S', temp=[300, 310, 350, 390]):
        from pymatgen.analysis.diffusion_analyzer import DiffusionAnalyzer, fit_arrhenius, get_arrhenius_plot
        import shutil
        import os

        os.chdir(self.dire)
        filePath = self.dire
        file = []
        for dirpath, dirnames, filenames in os.walk(filePath):
            # print(dirpath)
            for name in dirnames:
                path = os.path.join(filePath, name)
                path1 = os.path.join(path, 'vasprun.xml')
                print(path1)
                file.append(str(path1))

        diff = DiffusionAnalyzer.from_files(file,
                                            specie=spaces,
                                            step_skip=skip)
        diff.get_msd_plot()
        diff.get_summary_dict()
        fit = fit_arrhenius(temps=temp, diffusivities=diff.diffusivity)
        plot = get_arrhenius_plot(temps=temp, diffusivities=diff.diffusivity)