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)
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)
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)