diff --git a/docs/_modules/index.html b/docs/_modules/index.html index e6866aab..d1cbdef2 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -5,10 +5,10 @@ - Overview: module code — pymatgen-diffusion 2021.4.29 documentation - - - + Overview: module code — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

Navigation

  • modules |
  • - + @@ -85,7 +85,7 @@

    All modules for which code is available

    Quick search

    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/clustering.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/clustering.html index a728e14a..2e0d1b4f 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/clustering.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/clustering.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.clustering — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.clustering — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.aimd.clustering

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -166,7 +165,7 @@ 

    Source code for pymatgen.analysis.diffusion.aimd.clustering

    iterations: Number of iterations thus far. """ if iterations > self.max_iterations: - warnings.warn("Max iterations %d reached!" % self.max_iterations) + warnings.warn(f"Max iterations {self.max_iterations} reached!") return True if old_centroids is None: return False @@ -242,7 +241,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.clustering

    iterations: Number of iterations thus far. """ if iterations > self.max_iterations: - warnings.warn("Max iterations %d reached!" % self.max_iterations) + warnings.warn(f"Max iterations {self.max_iterations} reached!") return True if old_centroids is None: return False @@ -295,7 +294,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.clustering

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/pathway.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/pathway.html index d1c1b30d..d436d038 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/pathway.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/pathway.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.pathway — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.pathway — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.aimd.pathway

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -232,9 +231,9 @@ 

    Source code for pymatgen.analysis.diffusion.aimd.pathway

    if nc < nions: raise ValueError( - "The number of clusters ({}) is smaller than that of " - "mobile ions ({})! Please try to decrease either " - "'p_ratio' or 'd_cut' values!".format(nc, nions) + f"The number of clusters ({nc}) is smaller than that of " + f"mobile ions ({nions})! Please try to decrease either " + "'p_ratio' or 'd_cut' values!" ) # For each low-energy site (cluster centroid), its coordinates are obtained @@ -287,21 +286,22 @@

    Source code for pymatgen.analysis.diffusion.aimd.pathway

    f.write(" 1.00 \n") for i in range(3): - f.write(" {0} {1} {2} \n".format(*self.structure.lattice.matrix[i, :])) + v = self.structure.lattice.matrix[i, :] + f.write(f" {v[0]} {v[1]} {v[2]} \n") f.write(" " + " ".join(symbols) + "\n") f.write(" " + " ".join(natoms) + "\n") f.write("direct\n") for fcoord in init_fcoords: - f.write(" {0:.8f} {1:.8f} {2:.8f} \n".format(*fcoord)) + f.write(" {:.8f} {:.8f} {:.8f} \n".format(*fcoord)) # pylint: disable=C0209 f.write(" \n") - f.write(" {0} {1} {2} \n".format(*self.lens)) + f.write(" {} {} {} \n".format(*self.lens)) # pylint: disable=C0209 for i in range(self.lens[2]): for j in range(self.lens[1]): for k in range(self.lens[0]): - f.write(" {0:.10e} ".format(self.Pr[k, j, i] * VolinAu)) + f.write(f" {(self.Pr[k, j, i] * VolinAu):.10e} ") if count % 5 == 0: f.write("\n") count += 1 @@ -414,7 +414,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.pathway

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/rdf.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/rdf.html index 764dd192..ed2cd7f9 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/rdf.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/rdf.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.rdf — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.rdf — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.aimd.rdf

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -299,7 +298,7 @@ 

    Source code for pymatgen.analysis.diffusion.aimd.rdf

    label="Peaks", ) - plt.xlabel("$r$ ($\\rm\AA$)") + plt.xlabel("$r$ ($\\rm\\AA$)") plt.ylabel("$g(r)$") plt.legend(loc="upper right", fontsize=36) plt.xlim(xlim[0], xlim[1]) @@ -326,7 +325,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.rdf

    f.write("\n") for r, gr in zip(self.interval, self.rdf): - f.write(delimiter.join(["%s" % v for v in [r, gr]])) + f.write(delimiter.join([str(v) for v in [r, gr]])) f.write("\n")
    @@ -491,8 +490,8 @@

    Source code for pymatgen.analysis.diffusion.aimd.rdf

    & (self.distances[index] > 1e-8) ) - density = sum([self.density[index][i] for i in species]) - natoms = sum([self.natoms[index][i] for i in ref_species]) + density = sum(self.density[index][i] for i in species) + natoms = sum(self.natoms[index][i] for i in ref_species) distances = self.distances[index][indices] counts = self._dist_to_counts(distances) rdf_temp = counts / density / self.volumes / natoms @@ -518,7 +517,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.rdf

    all_rdf = self.get_rdf(ref_species, species, is_average=False)[1] if isinstance(species, str): species = [species] - density = [sum([i[j] for j in species]) for i in self.density] + density = [sum(i[j] for j in species) for i in self.density] cn = [np.cumsum(rdf * density[i] * 4.0 * np.pi * self.r ** 2 * self.dr) for i, rdf in enumerate(all_rdf)] if is_average: cn = np.mean(cn, axis=0) @@ -555,7 +554,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.rdf

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_clustering.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_clustering.html index 55de69da..74b80bb7 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_clustering.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_clustering.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.tests.test_clustering — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.tests.test_clustering — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_clustering

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     
    @@ -128,7 +127,7 @@ 

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_clustering

    <

    Quick search

    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_pathway.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_pathway.html index e8e1010d..45b2b67e 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_pathway.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_pathway.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.tests.test_pathway — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.tests.test_pathway — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_pathway

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     __author__ = "Iek-Heng Chu"
    @@ -89,7 +88,7 @@ 

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_pathway

    [docs] def test_probability_classmethod(self): file = os.path.join(tests_dir, "cNa3PS4_pda.json") - data = json.load(open(file, "r")) + data = json.load(open(file)) diff_analyzer = DiffusionAnalyzer.from_dict(data) # ProbabilityDensityAnalysis object @@ -103,7 +102,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_pathway

    [docs] def test_generate_stable_sites(self): file = os.path.join(tests_dir, "cNa3PS4_pda.json") - data = json.load(open(file, "r")) + data = json.load(open(file)) diff_analyzer = DiffusionAnalyzer.from_dict(data) # ProbabilityDensityAnalysis object @@ -141,7 +140,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_pathway

    [docs] def test_site_occupancy_classmethod(self): file = os.path.join(tests_dir, "cNa3PS4_pda.json") - data = json.load(open(file, "r")) + data = json.load(open(file)) diff_analyzer = DiffusionAnalyzer.from_dict(data) structure = diff_analyzer.structure @@ -176,7 +175,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_pathway

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_rdf.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_rdf.html index a275133f..f5549ab6 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_rdf.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_rdf.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.tests.test_rdf — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.tests.test_rdf — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -111,7 +111,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_rdf

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_van_hove.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_van_hove.html index dbf619ef..b60f2098 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_van_hove.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/tests/test_van_hove.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.tests.test_van_hove — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.tests.test_van_hove — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_van_hove

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     from pymatgen.core import Structure, Lattice
    @@ -257,7 +256,7 @@ 

    Source code for pymatgen.analysis.diffusion.aimd.tests.test_van_hove

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/aimd/van_hove.html b/docs/_modules/pymatgen/analysis/diffusion/aimd/van_hove.html index 0e905d26..3097aa22 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/aimd/van_hove.html +++ b/docs/_modules/pymatgen/analysis/diffusion/aimd/van_hove.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.aimd.van_hove — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.aimd.van_hove — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.aimd.van_hove

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -266,7 +265,7 @@ 

    Source code for pymatgen.analysis.diffusion.aimd.van_hove

    grt = self.gsrt.copy() vmax = 1.0 cb_ticks = [0, 1] - cb_label = "4$\pi r^2G_s$($t$,$r$)" + cb_label = r"4$\pi r^2G_s$($t$,$r$)" y = np.arange(np.shape(grt)[1]) * self.interval[-1] / float(len(self.interval) - 1) x = np.arange(np.shape(grt)[0]) * self.timeskip @@ -282,7 +281,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.van_hove

    plt.pcolor(X, Y, grt, cmap="jet", vmin=grt.min(), vmax=vmax) plt.xlabel("Time (ps)", size=labelsize) - plt.ylabel("$r$ ($\AA$)", size=labelsize) + plt.ylabel(r"$r$ ($\AA$)", size=labelsize) plt.axis([x.min(), x.max(), y.min(), y.max()]) cbar = plt.colorbar(ticks=cb_ticks) @@ -317,7 +316,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.van_hove

    ylim = [-0.005, 4.0] elif mode == "self": grt = self.gsrt.copy() - ylabel = "4$\pi r^2G_s$($t$,$r$)" + ylabel = r"4$\pi r^2G_s$($t$,$r$)" ylim = [-0.005, 1.0] plt = pretty_plot(12, 8) @@ -592,7 +591,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.van_hove

    """ if df is None: df = self.get_df(func=EvolutionAnalyzer.rdf, pair=pair) - x_label, cb_label = "$r$ ({}-{}) ($\\rm\AA$)".format(*pair), "$g(r)$" + x_label, cb_label = f"$r$ ({pair[0]}-{pair[1]}) ($\\rm\\AA$)", "$g(r)$" p = self.plot_evolution_from_data(df=df, x_label=x_label, cb_label=cb_label, cmap=cmap) return p
    @@ -619,7 +618,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.van_hove

    if df is None: df = self.get_df(func=EvolutionAnalyzer.atom_dist, specie=specie, direction=direction) x_label, cb_label = ( - "Atomic distribution along {} ".format(direction), + f"Atomic distribution along {direction}", "Probability", ) p = self.plot_evolution_from_data(df=df, x_label=x_label, cb_label=cb_label, cmap=cmap) @@ -642,7 +641,7 @@

    Source code for pymatgen.analysis.diffusion.aimd.van_hove

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/analyzer.html b/docs/_modules/pymatgen/analysis/diffusion/analyzer.html index da70277e..f5a44a73 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/analyzer.html +++ b/docs/_modules/pymatgen/analysis/diffusion/analyzer.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.analyzer — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.analyzer — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.analyzer

    -# coding: utf-8
    -# Copyright (c) Pymatgen Development Team.
    +# Copyright (c) Pymatgen Development Team.
     # Distributed under the terms of the MIT License.
     
     """
    @@ -513,7 +512,7 @@ 

    Source code for pymatgen.analysis.diffusion.analyzer

    plt.plot(plot_dt, rms[:, 0], label="RMS") plt.plot(plot_dt, rms[:, 1], label="max") plt.legend(loc="best") - plt.xlabel("Timestep ({})".format(unit)) + plt.xlabel(f"Timestep ({unit})") plt.ylabel("normalized distance") plt.tight_layout() return plt
    @@ -549,7 +548,7 @@

    Source code for pymatgen.analysis.diffusion.analyzer

    elif mode == "sites": for i, site in enumerate(self.structure): sd = self.sq_disp_ions[i, :] - plt.plot(plot_dt, sd, label="%s - %d" % (site.specie.__str__(), i)) + plt.plot(plot_dt, sd, label=f"{str(site.specie)} - {i}") plt.legend(loc=2, prop={"size": 20}) elif mode == "mscd": plt.plot(plot_dt, self.mscd, "r") @@ -562,7 +561,7 @@

    Source code for pymatgen.analysis.diffusion.analyzer

    plt.plot(plot_dt, self.msd_components[:, 2], "b") plt.legend(["Overall", "a", "b", "c"], loc=2, prop={"size": 20}) - plt.xlabel("Timestep ({})".format(unit)) + plt.xlabel(f"Timestep ({unit})") if mode == "mscd": plt.ylabel("MSCD ($\\AA^2$)") else: @@ -601,7 +600,7 @@

    Source code for pymatgen.analysis.diffusion.analyzer

    f.write(delimiter.join(["t", "MSD", "MSD_a", "MSD_b", "MSD_c", "MSCD"])) f.write("\n") for dt, msd, msdc, mscd in zip(self.dt, self.msd, self.msd_components, self.mscd): - f.write(delimiter.join(["%s" % v for v in [dt, msd] + list(msdc) + [mscd]])) + f.write(delimiter.join([str(v) for v in [dt, msd] + list(msdc) + [mscd]])) f.write("\n")
    [docs] @classmethod @@ -968,7 +967,7 @@

    Source code for pymatgen.analysis.diffusion.analyzer

    plt.text( 0.6, 0.85, - "E$_a$ = {:.0f} meV".format(Ea * 1000), + f"E$_a$ = {(Ea * 1000):.0f} meV", fontsize=30, transform=plt.axes().transAxes, ) @@ -994,7 +993,7 @@

    Source code for pymatgen.analysis.diffusion.analyzer

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/neb/full_path_mapper.html b/docs/_modules/pymatgen/analysis/diffusion/neb/full_path_mapper.html index 829219e2..d53a3e65 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/neb/full_path_mapper.html +++ b/docs/_modules/pymatgen/analysis/diffusion/neb/full_path_mapper.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.neb.full_path_mapper — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.neb.full_path_mapper — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     """
     Migraiton Graph Analysis
    @@ -348,7 +347,7 @@ 

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    edge["ipos_cart"] = np.dot(i_site.frac_coords, self.only_sites.lattice.matrix) edge["epos_cart"] = np.dot(e_site.frac_coords, self.only_sites.lattice.matrix) - edge["hop"] = MigrationHop(i_site, e_site, self.symm_structure) + edge["hop"] = MigrationHop(i_site, e_site, self.symm_structure, symprec=self.symprec) def _populate_edges_with_migration_hops(self): """ @@ -408,7 +407,7 @@

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    cost_val = np.prod([v[ik] for ik in cost_keys]) self.add_data_to_similar_edges(k, {"cost": cost_val})
    -
    [docs] def get_path(self, max_val=100000): +
    [docs] def get_path(self, max_val=100000, flip_hops=True): """ obtain a pathway through the material using hops that are in the current graph Basic idea: @@ -417,6 +416,10 @@

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    or any other neighboring UC not containing p1. Args: max_val: Filter the graph by a cost + flip_hops: If true, hops in paths returned will be flipped so + isites and esites match to form a coherent path. + If false, hops will retain their original orientation + from the migration graph. Returns: Generator for List of Dicts: Each dict contains the information of a hop @@ -471,7 +474,10 @@

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    found_ += 1 if found_ != 1: raise RuntimeError("More than one edge matched in original graph.") - yield u, path_hops
    + if flip_hops is True: # flip hops in path to form coherent pathway + yield u, order_path(path_hops, u) + else: + yield u, path_hops
    [docs] def get_summary_dict(self, added_keys: List[str] = None) -> dict: """ @@ -685,12 +691,7 @@

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    isym = self.symm_structure.wyckoff_symbols[migration_hop.iindex] esym = self.symm_structure.wyckoff_symbols[migration_hop.eindex] mask_out.write_file( - "{}_{}_{}_tot({:0.2f}).vasp".format( - mask_file_seedname, - isym, - esym, - mask_out.data[self.potential_data_key].sum(), - ) + f"{mask_file_seedname}_{isym}_{esym}_tot({mask_out.data[self.potential_data_key].sum():.2f}).vasp" ) return ( @@ -783,14 +784,15 @@

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    return vv + step / 2.0 -
    [docs]def get_hop_site_sequence(hop_list: List[Dict], start_u: Union[int, str]) -> List: +
    [docs]def get_hop_site_sequence(hop_list: List[Dict], start_u: Union[int, str], key: str = None) -> List: """ - Read in a list of hop dictionaries and print the sequence of sites. + Read in a list of hop dictionaries and print the sequence of sites (and relevant property values if any). Args: hop_list: a list of the data on a sequence of hops start_u: the site index of the starting sites + key (optional): property to track in a hop (e.g.: "hop_distance") Returns: - String representation of the hop sequence + String representation of the hop sequence (and property values if any) """ hops = iter(hop_list) ihop = next(hops) @@ -806,9 +808,73 @@

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    site_seq.append(ihop["iindex"]) else: raise RuntimeError("The sequence of sites for the path is invalid.") + + if key is not None: + key_seq = [] + hops = iter(hop_list) + for ihop in hops: + key_seq.append(ihop[key]) + return [site_seq, key_seq] + return site_seq
    +
    [docs]def order_path(hop_list: List[Dict], start_u: Union[int, str]) -> List[Dict]: + """ + Takes a list of hop dictionaries and flips hops (switches isite and esite) + as needed to form a coherent path / sequence of sites according to + get_hop_site_sequence(). + For example if hop_list = [{iindex:0, eindex:1, etc.}, {iindex:0, eindex:1, etc.}] + then the output is [{iindex:0, eindex:1, etc.}, {iindex:1, eindex:0, etc.}] so that + the following hop iindex matches the previous hop's eindex. + Args: + hop_list: a list of the data on a sequence of hops + start_u: the site index of the starting sites + Returns: + a list of the data on a sequence of hops with hops in coherent orientation + """ + seq = get_hop_site_sequence(hop_list, start_u) + + ordered_path = [] + for n, hop in zip(seq[:-1], hop_list): + if n == hop["iindex"]: # don't flip hop + ordered_path.append(hop) + else: + # create flipped hop + fh = MigrationHop( + isite=hop["hop"].esite, + esite=hop["hop"].isite, + symm_structure=hop["hop"].symm_structure, + host_symm_struct=None, + symprec=hop["hop"].symprec, + ) + # must manually set iindex and eindex + fh.iindex = hop["hop"].eindex + fh.eindex = hop["hop"].iindex + fhd = { + "to_jimage": tuple(-1 * i for i in hop["to_jimage"]), + "ipos": fh.isite.frac_coords, + "epos": fh.esite.frac_coords, + "ipos_cart": fh.isite.coords, + "epos_cart": fh.esite.coords, + "hop": fh, + "hop_label": hop["hop_label"], + "iindex": hop["eindex"], + "eindex": hop["iindex"], + "hop_distance": fh.length, + } + # flip any data that is in a list to match flipped hop orientation + for k in hop.keys(): + if k not in fhd.keys(): + if isinstance(hop[k], list): + fhd[k] = hop[k][::-1] + else: + fhd[k] = hop[k] + ordered_path.append(fhd) + + return ordered_path
    + + """ Note the current pathway algorithm no longer needs supercells but the following functions might still be useful for other applications @@ -925,7 +991,7 @@

    Source code for pymatgen.analysis.diffusion.neb.full_path_mapper

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/neb/io.html b/docs/_modules/pymatgen/analysis/diffusion/neb/io.html index 9c1d7f35..055d2248 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/neb/io.html +++ b/docs/_modules/pymatgen/analysis/diffusion/neb/io.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.neb.io — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.neb.io — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.neb.io

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -217,7 +216,7 @@ 

    Source code for pymatgen.analysis.diffusion.neb.io

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/neb/pathfinder.html b/docs/_modules/pymatgen/analysis/diffusion/neb/pathfinder.html index d79c5772..05dbb278 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/neb/pathfinder.html +++ b/docs/_modules/pymatgen/analysis/diffusion/neb/pathfinder.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.neb.pathfinder — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.neb.pathfinder — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -75,7 +74,6 @@ 

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    # TODO: (1) ipython notebook example files, unittests from pymatgen.symmetry.structure import SymmetrizedStructure - from pymatgen.analysis.diffusion.utils.supercells import ( get_sc_fromstruct, get_start_end_structures, @@ -349,6 +347,7 @@

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    isite: Site, esite: Site, symm_structure: SymmetrizedStructure, + host_symm_struct: SymmetrizedStructure = None, symprec: float = 0.001, ): """ @@ -356,6 +355,7 @@

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    isite: Initial site esite: End site symm_structure: SymmetrizedStructure + host_symm_struct: SymmetrizedStructure of the host structure, used to for its spacegroup symprec: used to determine equivalence """ self.isite = isite @@ -365,7 +365,11 @@

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    self.symm_structure = symm_structure self.symprec = symprec self.msite = PeriodicSite(esite.specie, (isite.frac_coords + esite.frac_coords) / 2, esite.lattice) - sg = self.symm_structure.spacegroup + if host_symm_struct: + self.host_symm_structure = host_symm_struct + sg = self.host_symm_structure.spacegroup + else: + sg = self.symm_structure.spacegroup for i, sites in enumerate(self.symm_structure.equivalent_sites): if sg.are_symmetrically_equivalent([isite], [sites[0]]): self.iindex = i @@ -398,24 +402,15 @@

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    raise RuntimeError(f"No symmetrically equivalent site was found for {esite}") def __repr__(self): + ifc = self.isite.frac_coords + efc = self.esite.frac_coords return ( - "Path of %.4f A from %s [%.3f, %.3f, %.3f] " - "(ind: %d, Wyckoff: %s) to %s [%.3f, %.3f, %.3f] (ind: %d, Wyckoff: %s)" - % ( - self.length, - self.isite.specie, - self.isite.frac_coords[0], - self.isite.frac_coords[1], - self.isite.frac_coords[2], - self.iindex, - self.symm_structure.wyckoff_symbols[self.iindex], - self.esite.specie, - self.esite.frac_coords[0], - self.esite.frac_coords[1], - self.esite.frac_coords[2], - self.eindex, - self.symm_structure.wyckoff_symbols[self.eindex], - ) + f"Path of {self.length:.4f} A from {self.isite.specie} " + f"[{ifc[0]:.3f}, {ifc[1]:.3f}, {ifc[2]:.3f}] " + f"(ind: {self.iindex}, Wyckoff: {self.symm_structure.wyckoff_symbols[self.iindex]}) " + f"to {self.esite.specie} " + f"[{efc[0]:.3f}, {efc[1]:.3f}, {efc[2]:.3f}] " + f"(ind: {self.eindex}, Wyckoff: {self.symm_structure.wyckoff_symbols[self.eindex]})" ) @property @@ -493,9 +488,12 @@

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    if site.specie != self.isite.specie: other_sites.append(site) else: - if not vac_mode or (self.isite.distance(site) <= 1e-8 or self.esite.distance(site) <= 1e-8): + if self.isite.distance(site) <= 1e-8 or self.esite.distance(site) <= 1e-8: + migrating_specie_sites.append(site) continue - migrating_specie_sites.append(site) + + if vac_mode: + other_sites.append(site) return migrating_specie_sites, other_sites
    [docs] def get_sc_structures( @@ -522,7 +520,10 @@

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    """ migrating_specie_sites, other_sites = self._split_migrating_and_other_sites(vac_mode) - base_struct = Structure.from_sites(other_sites) + if vac_mode: + base_struct = Structure.from_sites(other_sites + migrating_specie_sites) + else: + base_struct = Structure.from_sites(other_sites) sc_mat = get_sc_fromstruct( base_struct=base_struct, min_atoms=min_atoms, @@ -676,7 +677,7 @@

    Source code for pymatgen.analysis.diffusion.neb.pathfinder

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/neb/periodic_dijkstra.html b/docs/_modules/pymatgen/analysis/diffusion/neb/periodic_dijkstra.html index b134cdc1..8ad92bc4 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/neb/periodic_dijkstra.html +++ b/docs/_modules/pymatgen/analysis/diffusion/neb/periodic_dijkstra.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.neb.periodic_dijkstra — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.neb.periodic_dijkstra — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.neb.periodic_dijkstra

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     """
     Dijkstra's path search on a graph where the nodes are on a periodic graph
    @@ -97,11 +96,11 @@ 

    Source code for pymatgen.analysis.diffusion.neb.periodic_dijkstra

    p_graph = copy_dict(dict(G.adjacency())) # Make sure all the to_jimages are pointing in the correct direction - for u in p_graph.keys(): - for v in p_graph[u].keys(): - for k, d in p_graph[u][v].items(): + for u, value1 in p_graph.items(): + for v, value2 in value1.items(): + for k, d in value2.items(): if u > v: - p_graph[u][v][k]["to_jimage"] = tuple(np.multiply(-1, d["to_jimage"])) + d["to_jimage"] = tuple(np.multiply(-1, d["to_jimage"])) return p_graph @@ -136,7 +135,7 @@

    Source code for pymatgen.analysis.diffusion.neb.periodic_dijkstra

    # use a default dict since we don't know how far out to search best_ans = defaultdict(lambda: math.inf) # type: ignore - path_parent = dict() # the parent of the current node in the optimal path + path_parent = {} # the parent of the current node in the optimal path pq = [] # type: ignore for isource in sources: heapq.heappush(pq, (0, (isource, (0, 0, 0)))) @@ -227,7 +226,7 @@

    Source code for pymatgen.analysis.diffusion.neb.periodic_dijkstra

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_full_path_mapper.html b/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_full_path_mapper.html index 38a2115f..cfd974a4 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_full_path_mapper.html +++ b/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_full_path_mapper.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     import os
     import unittest
    @@ -64,6 +63,7 @@ 

    Source code for pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper< MigrationGraph, MigrationHop, get_hop_site_sequence, + order_path, ) from pymatgen.analysis.diffusion.neb.periodic_dijkstra import _get_adjacency_with_images @@ -213,26 +213,63 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper<
    [docs] def test_get_path(self): self.fpm_li.assign_cost_to_graph() # use 'hop_distance' - paths = [*self.fpm_li.get_path()] + paths = [*self.fpm_li.get_path(flip_hops=False)] p_strings = {"->".join(map(str, get_hop_site_sequence(ipath, start_u=u))) for u, ipath in paths} self.assertIn("5->7->5", p_strings) # convert each pathway to a string representation - paths = [*self.fpm_li.get_path(max_val=2.0)] + paths = [*self.fpm_li.get_path(max_val=2.0, flip_hops=False)] p_strings = {"->".join(map(str, get_hop_site_sequence(ipath, start_u=u))) for u, ipath in paths} # After checking trimming the graph more hops are needed for the same path self.assertIn("5->3->7->2->5", p_strings) self.fpm_mg.assign_cost_to_graph() # use 'hop_distance' - paths = [*self.fpm_mg.get_path()] + paths = [*self.fpm_mg.get_path(flip_hops=False)] p_strings = {"->".join(map(str, get_hop_site_sequence(ipath, start_u=u))) for u, ipath in paths} self.assertIn("1->0->1", p_strings)
    +
    [docs] def test_get_key_in_path(self): + self.fpm_li.assign_cost_to_graph() # use 'hop_distance' + paths = [*self.fpm_li.get_path(flip_hops=False)] + hop_seq_info = [get_hop_site_sequence(ipath, start_u=u, key="hop_distance") for u, ipath in paths] + + hop_distances = {} + for u, ipath in paths: + hop_distances[u] = [] + for hop in ipath: + hop_distances[u].append(hop["hop_distance"]) + + # Check that the right key and respective values were pulled + for u, distances in hop_distances.items(): + self.assertEqual(distances, hop_seq_info[u][1]) + print(distances, hop_seq_info[u][1])
    +
    [docs] def test_not_matching_first(self): structure = Structure.from_file(f"{dir_path}/pathfinder_files/Li6MnO4.json") fpm_lmo = MigrationGraph.with_distance(structure, "Li", max_distance=4) for u, v, d in fpm_lmo.m_graph.graph.edges(data=True): - self.assertIn(d["hop"].eindex, {0, 1})

    + self.assertIn(d["hop"].eindex, {0, 1})
    + +
    [docs] def test_order_path(self): + # add list data to migration graph - to test if list data is flipped + for n, hop_d in self.fpm_li.unique_hops.items(): + data = {"data": [hop_d["iindex"], hop_d["eindex"]]} + self.fpm_li.add_data_to_similar_edges(n, data, hop_d["hop"]) + + self.fpm_li.assign_cost_to_graph() # use 'hop_distance' + + for n, hop_list in [*self.fpm_li.get_path(flip_hops=False)]: + ordered = order_path(hop_list, n) + + # check if isites and esites are oriented to form a coherent path + for h1, h2 in zip(ordered[:-1], ordered[1:]): + self.assertEqual(h1["eindex"], h2["iindex"]) + + # if hop was flipped, check list data was flipped too + for h, ord_h in zip(hop_list, ordered): + if h["iindex"] != ord_h["iindex"]: # check only if hop was flipped + self.assertEqual(h["data"][0], ord_h["data"][-1]) + self.assertEqual(h["data"][-1], ord_h["data"][0])
    [docs]class ChargeBarrierGraphTest(unittest.TestCase): @@ -289,7 +326,7 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper< """ self.cbg.populate_edges_with_chg_density_info() length_vs_chg = list( - sorted([(d["hop"].length, d["chg_total"]) for u, v, d in self.cbg.m_graph.graph.edges(data=True)]) + sorted((d["hop"].length, d["chg_total"]) for u, v, d in self.cbg.m_graph.graph.edges(data=True)) ) prv = None for length, chg in length_vs_chg: @@ -326,7 +363,7 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper<

    Quick search

    diff --git a/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_io.html b/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_io.html index 0d52a240..54031889 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_io.html +++ b/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_io.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.neb.tests.test_io — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.neb.tests.test_io — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,9 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.neb.tests.test_io

    -# coding: utf-8
    -
    -from pymatgen.core import Structure
    +from pymatgen.core import Structure
     from pymatgen.analysis.diffusion.neb.io import (
         MVLCINEBEndPointSet,
         MVLCINEBSet,
    @@ -79,26 +77,27 @@ 

    Source code for pymatgen.analysis.diffusion.neb.tests.test_io

    [docs] def test_incar(self): m = MVLCINEBEndPointSet(self.endpoint) incar_string = m.incar.get_string(sort_keys=True, pretty=True) - incar_expect = """ALGO = Fast -EDIFF = 5e-05 -EDIFFG = -0.02 -ENCUT = 520 -IBRION = 2 -ICHARG = 1 -ISIF = 2 -ISMEAR = 0 -ISPIN = 2 -ISYM = 0 -LCHARG = False -LORBIT = 11 -LREAL = Auto -LWAVE = False -MAGMOM = 35*0.6 -NELM = 200 -NELMIN = 4 -NSW = 99 -PREC = Accurate -SIGMA = 0.05""" + incar_expect = """ALGO = Fast +EDIFF = 5e-05 +EDIFFG = -0.02 +ENCUT = 520 +IBRION = 2 +ICHARG = 1 +ISIF = 2 +ISMEAR = 0 +ISPIN = 2 +ISYM = 0 +LCHARG = False +LMAXMIX = 4 +LORBIT = 11 +LREAL = Auto +LWAVE = False +MAGMOM = 35*0.6 +NELM = 200 +NELMIN = 4 +NSW = 99 +PREC = Accurate +SIGMA = 0.05""" self.assertEqual(incar_string, incar_expect)
    [docs] def test_incar_user_setting(self): @@ -122,6 +121,7 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_io

    ISPIN = 2 ISYM = 0 LCHARG = False +LMAXMIX = 4 LORBIT = 11 LREAL = Auto LWAVE = False @@ -159,6 +159,7 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_io

    ISYM = 0 LCHARG = False LCLIMB = True +LMAXMIX = 4 LORBIT = 0 LREAL = Auto LWAVE = False @@ -176,34 +177,34 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_io

    user_incar_settings = {"IOPT": 3, "EDIFFG": -0.05, "NPAR": 4, "ISIF": 3} m = MVLCINEBSet(self.structures, user_incar_settings=user_incar_settings) incar_string = m.incar.get_string(sort_keys=True, pretty=True) - incar_expect = """ALGO = Fast -EDIFF = 5e-05 -EDIFFG = -0.05 -ENCUT = 520 -IBRION = 3 -ICHAIN = 0 -ICHARG = 1 -IMAGES = 1 -IOPT = 3 -ISIF = 3 -ISMEAR = 0 -ISPIN = 2 -ISYM = 0 -LCHARG = False -LCLIMB = True -LORBIT = 0 -LREAL = Auto -LWAVE = False -MAGMOM = 35*0.6 -NELM = 200 -NELMIN = 6 -NPAR = 4 -NSW = 200 -POTIM = 0 -PREC = Accurate -SIGMA = 0.05 -SPRING = -5""" - + incar_expect = """ALGO = Fast +EDIFF = 5e-05 +EDIFFG = -0.05 +ENCUT = 520 +IBRION = 3 +ICHAIN = 0 +ICHARG = 1 +IMAGES = 1 +IOPT = 3 +ISIF = 3 +ISMEAR = 0 +ISPIN = 2 +ISYM = 0 +LCHARG = False +LCLIMB = True +LMAXMIX = 4 +LORBIT = 0 +LREAL = Auto +LWAVE = False +MAGMOM = 35*0.6 +NELM = 200 +NELMIN = 6 +NPAR = 4 +NSW = 200 +POTIM = 0 +PREC = Accurate +SIGMA = 0.05 +SPRING = -5""" self.assertEqual(incar_string.strip(), incar_expect.strip())
    @@ -253,7 +254,7 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_io

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_pathfinder.html b/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_pathfinder.html index 8cd76436..ce134cd4 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_pathfinder.html +++ b/docs/_modules/pymatgen/analysis/diffusion/neb/tests/test_pathfinder.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.neb.tests.test_pathfinder — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.neb.tests.test_pathfinder — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.neb.tests.test_pathfinder

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     import glob
     import os
    @@ -58,6 +57,7 @@ 

    Source code for pymatgen.analysis.diffusion.neb.tests.test_pathfinder

    import numpy as np from pymatgen.core import PeriodicSite from pymatgen.core import Structure +from pymatgen.core import Composition from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from pymatgen.util.testing import PymatgenTest @@ -267,7 +267,14 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_pathfinder

    start, end, b_sc = self.m_hop.get_sc_structures(vac_mode=False) start_site = next(filter(lambda x: x.species_string == "Li", start.sites)) end_site = next(filter(lambda x: x.species_string == "Li", end.sites)) - self.assertAlmostEqual(start_site.distance(end_site), dist_ref, 3)
    + assert start.composition == end.composition == Composition("Li1 Fe24 P24 O96") + assert b_sc.composition == Composition("Fe24 P24 O96") + self.assertAlmostEqual(start_site.distance(end_site), dist_ref, 3)
    + +
    [docs] def test_get_sc_structures_vacmode(self): + start, end, b_sc = self.m_hop.get_sc_structures(vac_mode=True) + assert start.composition == end.composition == Composition("Li23 Fe24 P24 O96") + assert b_sc.composition == Composition("Li24 Fe24 P24 O96")
    if __name__ == "__main__": @@ -290,7 +297,7 @@

    Source code for pymatgen.analysis.diffusion.neb.tests.test_pathfinder

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/tests/test_analyzer.html b/docs/_modules/pymatgen/analysis/diffusion/tests/test_analyzer.html index bf059893..f7234e63 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/tests/test_analyzer.html +++ b/docs/_modules/pymatgen/analysis/diffusion/tests/test_analyzer.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.tests.test_analyzer — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.tests.test_analyzer — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.tests.test_analyzer

    -# coding: utf-8
    -# Copyright (c) Pymatgen Development Team.
    +# Copyright (c) Pymatgen Development Team.
     # Distributed under the terms of the MIT License.
     
     
    @@ -291,7 +290,7 @@ 

    Source code for pymatgen.analysis.diffusion.tests.test_analyzer

    # Diffusion vasprun.xmls are rather large. We are only going to use a # very small preprocessed run for testing. Note that the results are # unreliable for short runs. - with open(os.path.join(module_dir, "DiffusionAnalyzer_NPT.json"), "r") as f: + with open(os.path.join(module_dir, "DiffusionAnalyzer_NPT.json")) as f: dd = json.load(f) d = DiffusionAnalyzer.from_dict(dd) # large tolerance because scipy constants changed between 0.16.1 and 0.17 @@ -557,7 +556,7 @@

    Source code for pymatgen.analysis.diffusion.tests.test_analyzer

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/utils/edge_data_from_sc.html b/docs/_modules/pymatgen/analysis/diffusion/utils/edge_data_from_sc.html index 9ca84167..6798edf6 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/utils/edge_data_from_sc.html +++ b/docs/_modules/pymatgen/analysis/diffusion/utils/edge_data_from_sc.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.utils.edge_data_from_sc — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.utils.edge_data_from_sc — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -63,12 +62,13 @@ 

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    __date__ = "February 2, 2021" import logging -from typing import Tuple, Union +from typing import Tuple import numpy as np from pymatgen.core.structure import Structure, PeriodicSite from pymatgen.analysis.structure_matcher import StructureMatcher from pymatgen.analysis.diffusion.neb.full_path_mapper import MigrationGraph, MigrationHop from pymatgen.analysis.diffusion.utils.parse_entries import get_matched_structure_mapping +from pymatgen.symmetry.analyzer import SpacegroupAnalyzer logger = logging.getLogger(__name__) @@ -79,7 +79,7 @@

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    e_sc: Structure, data_array: list, key: str = "custom_key", - symprec: Union[None, float] = None, + use_host_sg: bool = True, ) -> None: """ Add a data entry and key to edges within FullPathMapper object with the same hop_label. @@ -90,19 +90,18 @@

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    e_sc: Supercell structure containing working ion at ending position data_array: The data to be added to the edges key: Key of the edge attribute to be added + use_host_sg: Flag t whether or not to use the host structure's spacegroup to initiate MigrationHop Returns: None """ - if not symprec: - symprec = mg.symprec wi = list(mg.m_graph.graph.edges(data=True))[0][2]["hop"].isite.specie.name i_wi = [x for x in i_sc.sites if x.species_string == wi] e_wi = [x for x in e_sc.sites if x.species_string == wi] if len(i_wi) != 1 or len(e_wi) != 1: raise ValueError("The number of working ions in each supercell structure should be one") isite, esite = i_wi[0], e_wi[0] - uhop_index, mh_from_sc = get_unique_hop(mg, i_sc, isite, esite, symprec=symprec) + uhop_index, mh_from_sc = get_unique_hop(mg, i_sc, isite, esite, use_host_sg) add_dict = {key: data_array} mg.add_data_to_similar_edges(target_label=uhop_index, data=add_dict, m_hop=mh_from_sc)
    @@ -130,7 +129,6 @@

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    if mapping is None: raise ValueError("Cannot obtain inverse mapping, consider lowering tolerances " "in StructureMatcher") sc_m, total_t = mapping - sc_ipos = isite.frac_coords sc_ipos_t = sc_ipos - total_t uc_ipos = sc_ipos_t.dot(sc_m) @@ -190,7 +188,7 @@

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    sc: Structure, isite: PeriodicSite, esite: PeriodicSite, - symprec: Union[None, float] = None, + use_host_sg: bool = True, ) -> Tuple[int, MigrationHop]: """Get the unique hop label that correspond to two end positions in the SC @@ -199,15 +197,20 @@

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    sc: Structure of the supercell used for the NEB calculation isite: Initial position in the supercell esite: Final position in the supercell + use_host_sg: Flag t whether or not to use the host structure's spacegroup to initiate MigrationHop Returns: The index of the unique hop, the MigrationHop object trasformed from the SC """ - if not symprec: - symprec = mg.symprec sm = StructureMatcher(ignored_species=[list(mg.m_graph.graph.edges(data=True))[0][2]["hop"].isite.specie.name]) uc_isite, uc_msite, uc_esite = get_uc_pos(isite, esite, mg.symm_structure, sc, sm) - mh_from_sc = MigrationHop(uc_isite, uc_esite, symm_structure=mg.symm_structure) + if use_host_sg: + base_ss = SpacegroupAnalyzer(mg.host_structure, symprec=mg.symprec).get_symmetrized_structure() + mh_from_sc = MigrationHop( + uc_isite, uc_esite, symm_structure=mg.symm_structure, host_symm_struct=base_ss, symprec=mg.symprec + ) + else: + mh_from_sc = MigrationHop(uc_isite, uc_esite, symm_structure=mg.symm_structure, symprec=mg.symprec) result = [] for k, v in mg.unique_hops.items(): # tolerance may be changed here @@ -239,7 +242,7 @@

    Source code for pymatgen.analysis.diffusion.utils.edge_data_from_sc

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/utils/parse_entries.html b/docs/_modules/pymatgen/analysis/diffusion/utils/parse_entries.html index c55b7d16..87cad5ed 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/utils/parse_entries.html +++ b/docs/_modules/pymatgen/analysis/diffusion/utils/parse_entries.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.utils.parse_entries — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.utils.parse_entries — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.utils.parse_entries

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     """
    @@ -374,7 +373,7 @@ 

    Source code for pymatgen.analysis.diffusion.utils.parse_entries

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/utils/supercells.html b/docs/_modules/pymatgen/analysis/diffusion/utils/supercells.html index aa42e7df..fa5123c8 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/utils/supercells.html +++ b/docs/_modules/pymatgen/analysis/diffusion/utils/supercells.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.utils.supercells — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.utils.supercells — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.utils.supercells

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     """
     Functions for creating supercells for NEB calculations
    @@ -260,7 +259,7 @@ 

    Source code for pymatgen.analysis.diffusion.utils.supercells

    Quick search
    diff --git a/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_edge_data_from_sc.html b/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_edge_data_from_sc.html index ad396694..41d285c6 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_edge_data_from_sc.html +++ b/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_edge_data_from_sc.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,16 +48,16 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     
     import os
     import numpy as np
    +import pytest
     from pymatgen.core.structure import Structure, PeriodicSite
     from pymatgen.analysis.structure_matcher import StructureMatcher
     from pymatgen.analysis.diffusion.neb.full_path_mapper import MigrationGraph
    -from pymatgen.analysis.diffusion.utils.edge_data_from_sc import add_edge_data_from_sc, get_uc_pos
    +from pymatgen.analysis.diffusion.utils.edge_data_from_sc import add_edge_data_from_sc, get_uc_pos, get_unique_hop
     
     test_dir = os.path.dirname(os.path.realpath(__file__))
     
    @@ -69,15 +69,21 @@ 

    Source code for pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_ input_struct_i = Structure.from_file(f"{test_dir}/test_files/Sr3Fe2O7_sc_i.vasp") input_struct_e = Structure.from_file(f"{test_dir}/test_files/Sr3Fe2O7_sc_e.vasp") +mg_uc_full_sites = Structure.from_file(f"{test_dir}/test_files/Mg3VOPO4_uc.vasp") +mg_input_struct_i = Structure.from_file(f"{test_dir}/test_files/Mg3VOPO4_sc_i.vasp") +mg_input_struct_e = Structure.from_file(f"{test_dir}/test_files/Mg3VOPO4_sc_e.vasp") + +mg_Li = MigrationGraph.with_distance(structure=uc_full_sites, migrating_specie="Li", max_distance=5) +mg_Mg = MigrationGraph.with_distance(structure=mg_uc_full_sites, migrating_specie="Mg", max_distance=4) +
    [docs]def test_add_edge_data_from_sc(): errors = [] - mg = MigrationGraph.with_distance(structure=uc_full_sites, migrating_specie="Li", max_distance=5) test_key = "test_key" test_array = [0, 1, 2, 3, 4] add_edge_data_from_sc( - mg, + mg_Li, i_sc=input_struct_i, e_sc=input_struct_e, data_array=test_array, @@ -85,7 +91,7 @@

    Source code for pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_ ) edge_data = [] - for u, v, d in mg.m_graph.graph.edges(data=True): + for u, v, d in mg_Li.m_graph.graph.edges(data=True): edge_data.append(d) hop_labels = [] for i in edge_data: @@ -105,14 +111,13 @@

    Source code for pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_ errors = [] # set up parameters to initiate get_uc_pos - mg = MigrationGraph.with_distance(structure=uc_full_sites, migrating_specie="Li", max_distance=5) - uc_lattice = mg.symm_structure.lattice + uc_lattice = mg_Li.symm_structure.lattice isite = [x for x in input_struct_i.sites if x.species_string == "Li"][0] esite = [x for x in input_struct_e.sites if x.species_string == "Li"][0] - sm = StructureMatcher(ignored_species=[list(mg.m_graph.graph.edges(data=True))[0][2]["hop"].isite.specie.name]) - wi_specie = mg.symm_structure[-1].specie + sm = StructureMatcher(ignored_species=[list(mg_Li.m_graph.graph.edges(data=True))[0][2]["hop"].isite.specie.name]) + wi_specie = mg_Li.symm_structure[-1].specie - p0, p1, p2 = get_uc_pos(isite, esite, mg.symm_structure, input_struct_i, sm) + p0, p1, p2 = get_uc_pos(isite, esite, mg_Li.symm_structure, input_struct_i, sm) # generate correct sites to compare test_p0 = PeriodicSite( @@ -133,6 +138,18 @@

    Source code for pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_ errors.append("Ending site does not match") assert not errors, "errors occured:\n" + "\n".join(errors)

    + + +
    [docs]def test_get_unique_hop_host(): + results = get_unique_hop(mg_Mg, mg_input_struct_i, mg_input_struct_i[0], mg_input_struct_e[0], use_host_sg=True) + assert results[0] == 2
    + + +
    [docs]def test_get_unique_host_nonhost(): + with pytest.raises(Exception) as exc_info: + get_unique_hop(mg_Mg, mg_input_struct_i, mg_input_struct_i[0], mg_input_struct_e[0], use_host_sg=False) + expected_exception = "No symmetrically equivalent site was found for [0.53593472 2.8352428 4.54752366] Mg" + assert exc_info.value.args[0] == expected_exception

    @@ -151,7 +168,7 @@

    Source code for pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_

    Quick search

    diff --git a/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_parse_entries.html b/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_parse_entries.html index 26ba4854..42f3a06e 100644 --- a/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_parse_entries.html +++ b/docs/_modules/pymatgen/analysis/diffusion/utils/tests/test_parse_entries.html @@ -5,10 +5,10 @@ - pymatgen.analysis.diffusion.utils.tests.test_parse_entries — pymatgen-diffusion 2021.4.29 documentation - - - + pymatgen.analysis.diffusion.utils.tests.test_parse_entries — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - + @@ -48,8 +48,7 @@

    Navigation

    Source code for pymatgen.analysis.diffusion.utils.tests.test_parse_entries

    -# coding: utf-8
    -# Copyright (c) Materials Virtual Lab.
    +# Copyright (c) Materials Virtual Lab.
     # Distributed under the terms of the BSD License.
     from monty.serialization import loadfn
     from pymatgen.entries.computed_entries import ComputedStructureEntry
    @@ -159,11 +158,11 @@ 

    Source code for pymatgen.analysis.diffusion.utils.tests.test_parse_entries[docs] def test_get_all_sym_sites(self): struct11 = get_sym_migration_ion_sites(self.base.structure, self.inserted_1Li1.structure, migrating_ion="Li") - self.assertEquals(struct11.composition["Li"], 4) + self.assertEqual(struct11.composition["Li"], 4) struct12 = get_sym_migration_ion_sites(self.base.structure, self.inserted_1Li2.structure, migrating_ion="Li") - self.assertEquals(struct12.composition["Li"], 4) + self.assertEqual(struct12.composition["Li"], 4) struct22 = get_sym_migration_ion_sites(self.base.structure, self.inserted_2Li.structure, migrating_ion="Li") - self.assertEquals(struct22.composition["Li"], 8)

    + self.assertEqual(struct22.composition["Li"], 8)
    if __name__ == "__main__": @@ -186,7 +185,7 @@

    Source code for pymatgen.analysis.diffusion.utils.tests.test_parse_entriesQuick search

    diff --git a/docs/_sources/pymatgen.analysis.rst.txt b/docs/_sources/pymatgen.analysis.rst.txt index 25007431..4e1b7380 100644 --- a/docs/_sources/pymatgen.analysis.rst.txt +++ b/docs/_sources/pymatgen.analysis.rst.txt @@ -1,6 +1,8 @@ pymatgen.analysis namespace =========================== +.. py:module:: pymatgen.analysis + Subpackages ----------- diff --git a/docs/_sources/pymatgen.rst.txt b/docs/_sources/pymatgen.rst.txt index 36816d3c..e823f4f2 100644 --- a/docs/_sources/pymatgen.rst.txt +++ b/docs/_sources/pymatgen.rst.txt @@ -1,2 +1,4 @@ pymatgen namespace ================== + +.. py:module:: pymatgen diff --git a/docs/_static/basic.css b/docs/_static/basic.css index b3bdc004..603f6a87 100644 --- a/docs/_static/basic.css +++ b/docs/_static/basic.css @@ -130,7 +130,7 @@ ul.search li a { font-weight: bold; } -ul.search li div.context { +ul.search li p.context { color: #888; margin: 2px 0 0 30px; text-align: left; @@ -508,6 +508,63 @@ table.hlist td { vertical-align: top; } +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + /* -- other body styles ----------------------------------------------------- */ @@ -634,14 +691,6 @@ dl.glossary dt { font-size: 1.1em; } -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - .versionmodified { font-style: italic; } @@ -682,8 +731,9 @@ dl.glossary dt { .classifier:before { font-style: normal; - margin: 0.5em; + margin: 0 0.5em; content: ":"; + display: inline-block; } abbr, acronym { @@ -770,8 +820,12 @@ div.code-block-caption code { table.highlighttable td.linenos, span.linenos, -div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ } div.code-block-caption span.caption-number { @@ -786,16 +840,6 @@ div.literal-block-wrapper { margin: 1em 0; } -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - code.xref, a code { background-color: transparent; font-weight: bold; diff --git a/docs/_static/doctools.js b/docs/_static/doctools.js index 61ac9d26..8cbf1b16 100644 --- a/docs/_static/doctools.js +++ b/docs/_static/doctools.js @@ -301,12 +301,14 @@ var Documentation = { window.location.href = prevHref; return false; } + break; case 39: // right var nextHref = $('link[rel="next"]').prop('href'); if (nextHref) { window.location.href = nextHref; return false; } + break; } } }); diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 2a68eee7..d58e37f7 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '2021.4.29', + VERSION: '2022.1.15', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/_static/searchtools.js b/docs/_static/searchtools.js index 1a90152e..002e9c4a 100644 --- a/docs/_static/searchtools.js +++ b/docs/_static/searchtools.js @@ -282,7 +282,10 @@ var Search = { complete: function(jqxhr, textstatus) { var data = jqxhr.responseText; if (data !== '' && data !== undefined) { - listItem.append(Search.makeSearchSummary(data, searchterms, hlterms)); + var summary = Search.makeSearchSummary(data, searchterms, hlterms); + if (summary) { + listItem.append(summary); + } } Search.output.append(listItem); setTimeout(function() { @@ -325,7 +328,9 @@ var Search = { var results = []; for (var prefix in objects) { - for (var name in objects[prefix]) { + for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) { + var match = objects[prefix][iMatch]; + var name = match[4]; var fullname = (prefix ? prefix + '.' : '') + name; var fullnameLower = fullname.toLowerCase() if (fullnameLower.indexOf(object) > -1) { @@ -339,7 +344,6 @@ var Search = { } else if (parts[parts.length - 1].indexOf(object) > -1) { score += Scorer.objPartialMatch; } - var match = objects[prefix][name]; var objname = objnames[match[1]][2]; var title = titles[match[0]]; // If more than one term searched for, we require other words to be @@ -498,6 +502,9 @@ var Search = { */ makeSearchSummary : function(htmlText, keywords, hlwords) { var text = Search.htmlToText(htmlText); + if (text == "") { + return null; + } var textLower = text.toLowerCase(); var start = 0; $.each(keywords, function() { @@ -509,7 +516,7 @@ var Search = { var excerpt = ((start > 0) ? '...' : '') + $.trim(text.substr(start, 240)) + ((start + 240 - text.length) ? '...' : ''); - var rv = $('
    ').text(excerpt); + var rv = $('

    ').text(excerpt); $.each(hlwords, function() { rv = rv.highlightText(this, 'highlighted'); }); diff --git a/docs/_static/underscore-1.13.1.js b/docs/_static/underscore-1.13.1.js new file mode 100644 index 00000000..ffd77af9 --- /dev/null +++ b/docs/_static/underscore-1.13.1.js @@ -0,0 +1,2042 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define('underscore', factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (function () { + var current = global._; + var exports = global._ = factory(); + exports.noConflict = function () { global._ = current; return exports; }; + }())); +}(this, (function () { + // Underscore.js 1.13.1 + // https://underscorejs.org + // (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors + // Underscore may be freely distributed under the MIT license. + + // Current version. + var VERSION = '1.13.1'; + + // Establish the root object, `window` (`self`) in the browser, `global` + // on the server, or `this` in some virtual machines. We use `self` + // instead of `window` for `WebWorker` support. + var root = typeof self == 'object' && self.self === self && self || + typeof global == 'object' && global.global === global && global || + Function('return this')() || + {}; + + // Save bytes in the minified (but not gzipped) version: + var ArrayProto = Array.prototype, ObjProto = Object.prototype; + var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null; + + // Create quick reference variables for speed access to core prototypes. + var push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + + // Modern feature detection. + var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined', + supportsDataView = typeof DataView !== 'undefined'; + + // All **ECMAScript 5+** native function implementations that we hope to use + // are declared here. + var nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeCreate = Object.create, + nativeIsView = supportsArrayBuffer && ArrayBuffer.isView; + + // Create references to these builtin functions because we override them. + var _isNaN = isNaN, + _isFinite = isFinite; + + // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. + var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); + var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; + + // The largest integer that can be represented exactly. + var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; + + // Some functions take a variable number of arguments, or a few expected + // arguments at the beginning and then a variable number of values to operate + // on. This helper accumulates all remaining arguments past the function’s + // argument length (or an explicit `startIndex`), into an array that becomes + // the last argument. Similar to ES6’s "rest parameter". + function restArguments(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0), + rest = Array(length), + index = 0; + for (; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + case 2: return func.call(this, arguments[0], arguments[1], rest); + } + var args = Array(startIndex + 1); + for (index = 0; index < startIndex; index++) { + args[index] = arguments[index]; + } + args[startIndex] = rest; + return func.apply(this, args); + }; + } + + // Is a given variable an object? + function isObject(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + } + + // Is a given value equal to null? + function isNull(obj) { + return obj === null; + } + + // Is a given variable undefined? + function isUndefined(obj) { + return obj === void 0; + } + + // Is a given value a boolean? + function isBoolean(obj) { + return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; + } + + // Is a given value a DOM element? + function isElement(obj) { + return !!(obj && obj.nodeType === 1); + } + + // Internal function for creating a `toString`-based type tester. + function tagTester(name) { + var tag = '[object ' + name + ']'; + return function(obj) { + return toString.call(obj) === tag; + }; + } + + var isString = tagTester('String'); + + var isNumber = tagTester('Number'); + + var isDate = tagTester('Date'); + + var isRegExp = tagTester('RegExp'); + + var isError = tagTester('Error'); + + var isSymbol = tagTester('Symbol'); + + var isArrayBuffer = tagTester('ArrayBuffer'); + + var isFunction = tagTester('Function'); + + // Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old + // v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236). + var nodelist = root.document && root.document.childNodes; + if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') { + isFunction = function(obj) { + return typeof obj == 'function' || false; + }; + } + + var isFunction$1 = isFunction; + + var hasObjectTag = tagTester('Object'); + + // In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`. + // In IE 11, the most common among them, this problem also applies to + // `Map`, `WeakMap` and `Set`. + var hasStringTagBug = ( + supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))) + ), + isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map)); + + var isDataView = tagTester('DataView'); + + // In IE 10 - Edge 13, we need a different heuristic + // to determine whether an object is a `DataView`. + function ie10IsDataView(obj) { + return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer); + } + + var isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView); + + // Is a given value an array? + // Delegates to ECMA5's native `Array.isArray`. + var isArray = nativeIsArray || tagTester('Array'); + + // Internal function to check whether `key` is an own property name of `obj`. + function has$1(obj, key) { + return obj != null && hasOwnProperty.call(obj, key); + } + + var isArguments = tagTester('Arguments'); + + // Define a fallback version of the method in browsers (ahem, IE < 9), where + // there isn't any inspectable "Arguments" type. + (function() { + if (!isArguments(arguments)) { + isArguments = function(obj) { + return has$1(obj, 'callee'); + }; + } + }()); + + var isArguments$1 = isArguments; + + // Is a given object a finite number? + function isFinite$1(obj) { + return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)); + } + + // Is the given value `NaN`? + function isNaN$1(obj) { + return isNumber(obj) && _isNaN(obj); + } + + // Predicate-generating function. Often useful outside of Underscore. + function constant(value) { + return function() { + return value; + }; + } + + // Common internal logic for `isArrayLike` and `isBufferLike`. + function createSizePropertyCheck(getSizeProperty) { + return function(collection) { + var sizeProperty = getSizeProperty(collection); + return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX; + } + } + + // Internal helper to generate a function to obtain property `key` from `obj`. + function shallowProperty(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; + } + + // Internal helper to obtain the `byteLength` property of an object. + var getByteLength = shallowProperty('byteLength'); + + // Internal helper to determine whether we should spend extensive checks against + // `ArrayBuffer` et al. + var isBufferLike = createSizePropertyCheck(getByteLength); + + // Is a given value a typed array? + var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; + function isTypedArray(obj) { + // `ArrayBuffer.isView` is the most future-proof, so use it when available. + // Otherwise, fall back on the above regular expression. + return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) : + isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)); + } + + var isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false); + + // Internal helper to obtain the `length` property of an object. + var getLength = shallowProperty('length'); + + // Internal helper to create a simple lookup structure. + // `collectNonEnumProps` used to depend on `_.contains`, but this led to + // circular imports. `emulatedSet` is a one-off solution that only works for + // arrays of strings. + function emulatedSet(keys) { + var hash = {}; + for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true; + return { + contains: function(key) { return hash[key]; }, + push: function(key) { + hash[key] = true; + return keys.push(key); + } + }; + } + + // Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't + // be iterated by `for key in ...` and thus missed. Extends `keys` in place if + // needed. + function collectNonEnumProps(obj, keys) { + keys = emulatedSet(keys); + var nonEnumIdx = nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = isFunction$1(constructor) && constructor.prototype || ObjProto; + + // Constructor is a special case. + var prop = 'constructor'; + if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop); + + while (nonEnumIdx--) { + prop = nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) { + keys.push(prop); + } + } + } + + // Retrieve the names of an object's own properties. + // Delegates to **ECMAScript 5**'s native `Object.keys`. + function keys(obj) { + if (!isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + for (var key in obj) if (has$1(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + } + + // Is a given array, string, or object empty? + // An "empty" object has no enumerable own-properties. + function isEmpty(obj) { + if (obj == null) return true; + // Skip the more expensive `toString`-based type checks if `obj` has no + // `.length`. + var length = getLength(obj); + if (typeof length == 'number' && ( + isArray(obj) || isString(obj) || isArguments$1(obj) + )) return length === 0; + return getLength(keys(obj)) === 0; + } + + // Returns whether an object has a given set of `key:value` pairs. + function isMatch(object, attrs) { + var _keys = keys(attrs), length = _keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = _keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; + } + + // If Underscore is called as a function, it returns a wrapped object that can + // be used OO-style. This wrapper holds altered versions of all functions added + // through `_.mixin`. Wrapped objects may be chained. + function _$1(obj) { + if (obj instanceof _$1) return obj; + if (!(this instanceof _$1)) return new _$1(obj); + this._wrapped = obj; + } + + _$1.VERSION = VERSION; + + // Extracts the result from a wrapped and chained object. + _$1.prototype.value = function() { + return this._wrapped; + }; + + // Provide unwrapping proxies for some methods used in engine operations + // such as arithmetic and JSON stringification. + _$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value; + + _$1.prototype.toString = function() { + return String(this._wrapped); + }; + + // Internal function to wrap or shallow-copy an ArrayBuffer, + // typed array or DataView to a new view, reusing the buffer. + function toBufferView(bufferSource) { + return new Uint8Array( + bufferSource.buffer || bufferSource, + bufferSource.byteOffset || 0, + getByteLength(bufferSource) + ); + } + + // We use this string twice, so give it a name for minification. + var tagDataView = '[object DataView]'; + + // Internal recursive comparison function for `_.isEqual`. + function eq(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // `null` or `undefined` only equal to itself (strict comparison). + if (a == null || b == null) return false; + // `NaN`s are equivalent, but non-reflexive. + if (a !== a) return b !== b; + // Exhaust primitive checks + var type = typeof a; + if (type !== 'function' && type !== 'object' && typeof b != 'object') return false; + return deepEq(a, b, aStack, bStack); + } + + // Internal recursive comparison function for `_.isEqual`. + function deepEq(a, b, aStack, bStack) { + // Unwrap any wrapped objects. + if (a instanceof _$1) a = a._wrapped; + if (b instanceof _$1) b = b._wrapped; + // Compare `[[Class]]` names. + var className = toString.call(a); + if (className !== toString.call(b)) return false; + // Work around a bug in IE 10 - Edge 13. + if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) { + if (!isDataView$1(b)) return false; + className = tagDataView; + } + switch (className) { + // These types are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN. + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; + case '[object Symbol]': + return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); + case '[object ArrayBuffer]': + case tagDataView: + // Coerce to typed array so we can fall through. + return deepEq(toBufferView(a), toBufferView(b), aStack, bStack); + } + + var areArrays = className === '[object Array]'; + if (!areArrays && isTypedArray$1(a)) { + var byteLength = getByteLength(a); + if (byteLength !== getByteLength(b)) return false; + if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true; + areArrays = true; + } + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; + + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && + isFunction$1(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } + } + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. + + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; + } + + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); + + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var _keys = keys(a), key; + length = _keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if (keys(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = _keys[length]; + if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; + } + + // Perform a deep comparison to check if two objects are equal. + function isEqual(a, b) { + return eq(a, b); + } + + // Retrieve all the enumerable property names of an object. + function allKeys(obj) { + if (!isObject(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + } + + // Since the regular `Object.prototype.toString` type tests don't work for + // some types in IE 11, we use a fingerprinting heuristic instead, based + // on the methods. It's not great, but it's the best we got. + // The fingerprint method lists are defined below. + function ie11fingerprint(methods) { + var length = getLength(methods); + return function(obj) { + if (obj == null) return false; + // `Map`, `WeakMap` and `Set` have no enumerable keys. + var keys = allKeys(obj); + if (getLength(keys)) return false; + for (var i = 0; i < length; i++) { + if (!isFunction$1(obj[methods[i]])) return false; + } + // If we are testing against `WeakMap`, we need to ensure that + // `obj` doesn't have a `forEach` method in order to distinguish + // it from a regular `Map`. + return methods !== weakMapMethods || !isFunction$1(obj[forEachName]); + }; + } + + // In the interest of compact minification, we write + // each string in the fingerprints only once. + var forEachName = 'forEach', + hasName = 'has', + commonInit = ['clear', 'delete'], + mapTail = ['get', hasName, 'set']; + + // `Map`, `WeakMap` and `Set` each have slightly different + // combinations of the above sublists. + var mapMethods = commonInit.concat(forEachName, mapTail), + weakMapMethods = commonInit.concat(mapTail), + setMethods = ['add'].concat(commonInit, forEachName, hasName); + + var isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map'); + + var isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap'); + + var isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set'); + + var isWeakSet = tagTester('WeakSet'); + + // Retrieve the values of an object's properties. + function values(obj) { + var _keys = keys(obj); + var length = _keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[_keys[i]]; + } + return values; + } + + // Convert an object into a list of `[key, value]` pairs. + // The opposite of `_.object` with one argument. + function pairs(obj) { + var _keys = keys(obj); + var length = _keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [_keys[i], obj[_keys[i]]]; + } + return pairs; + } + + // Invert the keys and values of an object. The values must be serializable. + function invert(obj) { + var result = {}; + var _keys = keys(obj); + for (var i = 0, length = _keys.length; i < length; i++) { + result[obj[_keys[i]]] = _keys[i]; + } + return result; + } + + // Return a sorted list of the function names available on the object. + function functions(obj) { + var names = []; + for (var key in obj) { + if (isFunction$1(obj[key])) names.push(key); + } + return names.sort(); + } + + // An internal function for creating assigner functions. + function createAssigner(keysFunc, defaults) { + return function(obj) { + var length = arguments.length; + if (defaults) obj = Object(obj); + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!defaults || obj[key] === void 0) obj[key] = source[key]; + } + } + return obj; + }; + } + + // Extend a given object with all the properties in passed-in object(s). + var extend = createAssigner(allKeys); + + // Assigns a given object with all the own properties in the passed-in + // object(s). + // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) + var extendOwn = createAssigner(keys); + + // Fill in a given object with default properties. + var defaults = createAssigner(allKeys, true); + + // Create a naked function reference for surrogate-prototype-swapping. + function ctor() { + return function(){}; + } + + // An internal function for creating a new object that inherits from another. + function baseCreate(prototype) { + if (!isObject(prototype)) return {}; + if (nativeCreate) return nativeCreate(prototype); + var Ctor = ctor(); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; + } + + // Creates an object that inherits from the given prototype object. + // If additional properties are provided then they will be added to the + // created object. + function create(prototype, props) { + var result = baseCreate(prototype); + if (props) extendOwn(result, props); + return result; + } + + // Create a (shallow-cloned) duplicate of an object. + function clone(obj) { + if (!isObject(obj)) return obj; + return isArray(obj) ? obj.slice() : extend({}, obj); + } + + // Invokes `interceptor` with the `obj` and then returns `obj`. + // The primary purpose of this method is to "tap into" a method chain, in + // order to perform operations on intermediate results within the chain. + function tap(obj, interceptor) { + interceptor(obj); + return obj; + } + + // Normalize a (deep) property `path` to array. + // Like `_.iteratee`, this function can be customized. + function toPath$1(path) { + return isArray(path) ? path : [path]; + } + _$1.toPath = toPath$1; + + // Internal wrapper for `_.toPath` to enable minification. + // Similar to `cb` for `_.iteratee`. + function toPath(path) { + return _$1.toPath(path); + } + + // Internal function to obtain a nested property in `obj` along `path`. + function deepGet(obj, path) { + var length = path.length; + for (var i = 0; i < length; i++) { + if (obj == null) return void 0; + obj = obj[path[i]]; + } + return length ? obj : void 0; + } + + // Get the value of the (deep) property on `path` from `object`. + // If any property in `path` does not exist or if the value is + // `undefined`, return `defaultValue` instead. + // The `path` is normalized through `_.toPath`. + function get(object, path, defaultValue) { + var value = deepGet(object, toPath(path)); + return isUndefined(value) ? defaultValue : value; + } + + // Shortcut function for checking if an object has a given property directly on + // itself (in other words, not on a prototype). Unlike the internal `has` + // function, this public version can also traverse nested properties. + function has(obj, path) { + path = toPath(path); + var length = path.length; + for (var i = 0; i < length; i++) { + var key = path[i]; + if (!has$1(obj, key)) return false; + obj = obj[key]; + } + return !!length; + } + + // Keep the identity function around for default iteratees. + function identity(value) { + return value; + } + + // Returns a predicate for checking whether an object has a given set of + // `key:value` pairs. + function matcher(attrs) { + attrs = extendOwn({}, attrs); + return function(obj) { + return isMatch(obj, attrs); + }; + } + + // Creates a function that, when passed an object, will traverse that object’s + // properties down the given `path`, specified as an array of keys or indices. + function property(path) { + path = toPath(path); + return function(obj) { + return deepGet(obj, path); + }; + } + + // Internal function that returns an efficient (for current engines) version + // of the passed-in callback, to be repeatedly applied in other Underscore + // functions. + function optimizeCb(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + // The 2-argument case is omitted because we’re not using it. + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; + } + + // An internal function to generate callbacks that can be applied to each + // element in a collection, returning the desired result — either `_.identity`, + // an arbitrary callback, a property matcher, or a property accessor. + function baseIteratee(value, context, argCount) { + if (value == null) return identity; + if (isFunction$1(value)) return optimizeCb(value, context, argCount); + if (isObject(value) && !isArray(value)) return matcher(value); + return property(value); + } + + // External wrapper for our callback generator. Users may customize + // `_.iteratee` if they want additional predicate/iteratee shorthand styles. + // This abstraction hides the internal-only `argCount` argument. + function iteratee(value, context) { + return baseIteratee(value, context, Infinity); + } + _$1.iteratee = iteratee; + + // The function we call internally to generate a callback. It invokes + // `_.iteratee` if overridden, otherwise `baseIteratee`. + function cb(value, context, argCount) { + if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context); + return baseIteratee(value, context, argCount); + } + + // Returns the results of applying the `iteratee` to each element of `obj`. + // In contrast to `_.map` it returns an object. + function mapObject(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = keys(obj), + length = _keys.length, + results = {}; + for (var index = 0; index < length; index++) { + var currentKey = _keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + } + + // Predicate-generating function. Often useful outside of Underscore. + function noop(){} + + // Generates a function for a given object that returns a given property. + function propertyOf(obj) { + if (obj == null) return noop; + return function(path) { + return get(obj, path); + }; + } + + // Run a function **n** times. + function times(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = optimizeCb(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; + } + + // Return a random integer between `min` and `max` (inclusive). + function random(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); + } + + // A (possibly faster) way to get the current timestamp as an integer. + var now = Date.now || function() { + return new Date().getTime(); + }; + + // Internal helper to generate functions for escaping and unescaping strings + // to/from HTML interpolation. + function createEscaper(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped. + var source = '(?:' + keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; + } + + // Internal list of HTML entities for escaping. + var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' + }; + + // Function for escaping strings to HTML interpolation. + var _escape = createEscaper(escapeMap); + + // Internal list of HTML entities for unescaping. + var unescapeMap = invert(escapeMap); + + // Function for unescaping strings from HTML interpolation. + var _unescape = createEscaper(unescapeMap); + + // By default, Underscore uses ERB-style template delimiters. Change the + // following template settings to use alternative delimiters. + var templateSettings = _$1.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g + }; + + // When customizing `_.templateSettings`, if you don't want to define an + // interpolation, evaluation or escaping regex, we need one that is + // guaranteed not to match. + var noMatch = /(.)^/; + + // Certain characters need to be escaped so that they can be put into a + // string literal. + var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; + + var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; + + function escapeChar(match) { + return '\\' + escapes[match]; + } + + // In order to prevent third-party code injection through + // `_.templateSettings.variable`, we test it against the following regular + // expression. It is intentionally a bit more liberal than just matching valid + // identifiers, but still prevents possible loopholes through defaults or + // destructuring assignment. + var bareIdentifier = /^\s*(\w|\$)+\s*$/; + + // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + // NB: `oldSettings` only exists for backwards compatibility. + function template(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = defaults({}, settings, _$1.templateSettings); + + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); + + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escapeRegExp, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } + + // Adobe VMs need the match returned to produce the correct offset. + return match; + }); + source += "';\n"; + + var argument = settings.variable; + if (argument) { + // Insure against third-party code injection. (CVE-2021-23358) + if (!bareIdentifier.test(argument)) throw new Error( + 'variable is not a bare identifier: ' + argument + ); + } else { + // If a variable is not specified, place data values in local scope. + source = 'with(obj||{}){\n' + source + '}\n'; + argument = 'obj'; + } + + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; + + var render; + try { + render = new Function(argument, '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function(data) { + return render.call(this, data, _$1); + }; + + // Provide the compiled source as a convenience for precompilation. + template.source = 'function(' + argument + '){\n' + source + '}'; + + return template; + } + + // Traverses the children of `obj` along `path`. If a child is a function, it + // is invoked with its parent as context. Returns the value of the final + // child, or `fallback` if any child is undefined. + function result(obj, path, fallback) { + path = toPath(path); + var length = path.length; + if (!length) { + return isFunction$1(fallback) ? fallback.call(obj) : fallback; + } + for (var i = 0; i < length; i++) { + var prop = obj == null ? void 0 : obj[path[i]]; + if (prop === void 0) { + prop = fallback; + i = length; // Ensure we don't continue iterating. + } + obj = isFunction$1(prop) ? prop.call(obj) : prop; + } + return obj; + } + + // Generate a unique integer id (unique within the entire client session). + // Useful for temporary DOM ids. + var idCounter = 0; + function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + } + + // Start chaining a wrapped Underscore object. + function chain(obj) { + var instance = _$1(obj); + instance._chain = true; + return instance; + } + + // Internal function to execute `sourceFunc` bound to `context` with optional + // `args`. Determines whether to execute a function as a constructor or as a + // normal function. + function executeBound(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = baseCreate(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if (isObject(result)) return result; + return self; + } + + // Partially apply a function by creating a version that has had some of its + // arguments pre-filled, without changing its dynamic `this` context. `_` acts + // as a placeholder by default, allowing any combination of arguments to be + // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument. + var partial = restArguments(function(func, boundArgs) { + var placeholder = partial.placeholder; + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return executeBound(func, bound, this, this, args); + }; + return bound; + }); + + partial.placeholder = _$1; + + // Create a function bound to a given object (assigning `this`, and arguments, + // optionally). + var bind = restArguments(function(func, context, args) { + if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function'); + var bound = restArguments(function(callArgs) { + return executeBound(func, bound, context, this, args.concat(callArgs)); + }); + return bound; + }); + + // Internal helper for collection methods to determine whether a collection + // should be iterated as an array or as an object. + // Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength + // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 + var isArrayLike = createSizePropertyCheck(getLength); + + // Internal implementation of a recursive `flatten` function. + function flatten$1(input, depth, strict, output) { + output = output || []; + if (!depth && depth !== 0) { + depth = Infinity; + } else if (depth <= 0) { + return output.concat(input); + } + var idx = output.length; + for (var i = 0, length = getLength(input); i < length; i++) { + var value = input[i]; + if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) { + // Flatten current level of array or arguments object. + if (depth > 1) { + flatten$1(value, depth - 1, strict, output); + idx = output.length; + } else { + var j = 0, len = value.length; + while (j < len) output[idx++] = value[j++]; + } + } else if (!strict) { + output[idx++] = value; + } + } + return output; + } + + // Bind a number of an object's methods to that object. Remaining arguments + // are the method names to be bound. Useful for ensuring that all callbacks + // defined on an object belong to it. + var bindAll = restArguments(function(obj, keys) { + keys = flatten$1(keys, false, false); + var index = keys.length; + if (index < 1) throw new Error('bindAll must be passed function names'); + while (index--) { + var key = keys[index]; + obj[key] = bind(obj[key], obj); + } + return obj; + }); + + // Memoize an expensive function by storing its results. + function memoize(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!has$1(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; + } + + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + var delay = restArguments(function(func, wait, args) { + return setTimeout(function() { + return func.apply(null, args); + }, wait); + }); + + // Defers a function, scheduling it to run after the current call stack has + // cleared. + var defer = partial(delay, _$1, 1); + + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. Normally, the throttled function will run + // as much as it can, without ever going more than once per `wait` duration; + // but if you'd like to disable the execution on the leading edge, pass + // `{leading: false}`. To disable execution on the trailing edge, ditto. + function throttle(func, wait, options) { + var timeout, context, args, result; + var previous = 0; + if (!options) options = {}; + + var later = function() { + previous = options.leading === false ? 0 : now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + + var throttled = function() { + var _now = now(); + if (!previous && options.leading === false) previous = _now; + var remaining = wait - (_now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = _now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + + throttled.cancel = function() { + clearTimeout(timeout); + previous = 0; + timeout = context = args = null; + }; + + return throttled; + } + + // When a sequence of calls of the returned function ends, the argument + // function is triggered. The end of a sequence is defined by the `wait` + // parameter. If `immediate` is passed, the argument function will be + // triggered at the beginning of the sequence instead of at the end. + function debounce(func, wait, immediate) { + var timeout, previous, args, result, context; + + var later = function() { + var passed = now() - previous; + if (wait > passed) { + timeout = setTimeout(later, wait - passed); + } else { + timeout = null; + if (!immediate) result = func.apply(context, args); + // This check is needed because `func` can recursively invoke `debounced`. + if (!timeout) args = context = null; + } + }; + + var debounced = restArguments(function(_args) { + context = this; + args = _args; + previous = now(); + if (!timeout) { + timeout = setTimeout(later, wait); + if (immediate) result = func.apply(context, args); + } + return result; + }); + + debounced.cancel = function() { + clearTimeout(timeout); + timeout = args = context = null; + }; + + return debounced; + } + + // Returns the first function passed as an argument to the second, + // allowing you to adjust arguments, run code before and after, and + // conditionally execute the original function. + function wrap(func, wrapper) { + return partial(wrapper, func); + } + + // Returns a negated version of the passed-in predicate. + function negate(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; + } + + // Returns a function that is the composition of a list of functions, each + // consuming the return value of the function that follows. + function compose() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; + } + + // Returns a function that will only be executed on and after the Nth call. + function after(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; + } + + // Returns a function that will only be executed up to (but not including) the + // Nth call. + function before(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); + } + if (times <= 1) func = null; + return memo; + }; + } + + // Returns a function that will be executed at most one time, no matter how + // often you call it. Useful for lazy initialization. + var once = partial(before, 2); + + // Returns the first key on an object that passes a truth test. + function findKey(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = keys(obj), key; + for (var i = 0, length = _keys.length; i < length; i++) { + key = _keys[i]; + if (predicate(obj[key], key, obj)) return key; + } + } + + // Internal function to generate `_.findIndex` and `_.findLastIndex`. + function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = cb(predicate, context); + var length = getLength(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; + } + + // Returns the first index on an array-like that passes a truth test. + var findIndex = createPredicateIndexFinder(1); + + // Returns the last index on an array-like that passes a truth test. + var findLastIndex = createPredicateIndexFinder(-1); + + // Use a comparator function to figure out the smallest index at which + // an object should be inserted so as to maintain order. Uses binary search. + function sortedIndex(array, obj, iteratee, context) { + iteratee = cb(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = getLength(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; + } + return low; + } + + // Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions. + function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = getLength(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; + } + if (item !== item) { + idx = predicateFind(slice.call(array, i, length), isNaN$1); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; + } + + // Return the position of the first occurrence of an item in an array, + // or -1 if the item is not included in the array. + // If the array is large and already in sort order, pass `true` + // for **isSorted** to use binary search. + var indexOf = createIndexFinder(1, findIndex, sortedIndex); + + // Return the position of the last occurrence of an item in an array, + // or -1 if the item is not included in the array. + var lastIndexOf = createIndexFinder(-1, findLastIndex); + + // Return the first value which passes a truth test. + function find(obj, predicate, context) { + var keyFinder = isArrayLike(obj) ? findIndex : findKey; + var key = keyFinder(obj, predicate, context); + if (key !== void 0 && key !== -1) return obj[key]; + } + + // Convenience version of a common use case of `_.find`: getting the first + // object containing specific `key:value` pairs. + function findWhere(obj, attrs) { + return find(obj, matcher(attrs)); + } + + // The cornerstone for collection functions, an `each` + // implementation, aka `forEach`. + // Handles raw objects in addition to array-likes. Treats all + // sparse array-likes as if they were dense. + function each(obj, iteratee, context) { + iteratee = optimizeCb(iteratee, context); + var i, length; + if (isArrayLike(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); + } + } else { + var _keys = keys(obj); + for (i = 0, length = _keys.length; i < length; i++) { + iteratee(obj[_keys[i]], _keys[i], obj); + } + } + return obj; + } + + // Return the results of applying the iteratee to each element. + function map(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + } + + // Internal helper to create a reducing function, iterating left or right. + function createReduce(dir) { + // Wrap code that reassigns argument variables in a separate function than + // the one that accesses `arguments.length` to avoid a perf hit. (#1991) + var reducer = function(obj, iteratee, memo, initial) { + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + index = dir > 0 ? 0 : length - 1; + if (!initial) { + memo = obj[_keys ? _keys[index] : index]; + index += dir; + } + for (; index >= 0 && index < length; index += dir) { + var currentKey = _keys ? _keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); + } + return memo; + }; + + return function(obj, iteratee, memo, context) { + var initial = arguments.length >= 3; + return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial); + }; + } + + // **Reduce** builds up a single result from a list of values, aka `inject`, + // or `foldl`. + var reduce = createReduce(1); + + // The right-associative version of reduce, also known as `foldr`. + var reduceRight = createReduce(-1); + + // Return all the elements that pass a truth test. + function filter(obj, predicate, context) { + var results = []; + predicate = cb(predicate, context); + each(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; + } + + // Return all the elements for which a truth test fails. + function reject(obj, predicate, context) { + return filter(obj, negate(cb(predicate)), context); + } + + // Determine whether all of the elements pass a truth test. + function every(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; + } + return true; + } + + // Determine if at least one element in the object passes a truth test. + function some(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; + } + + // Determine if the array or object contains a given item (using `===`). + function contains(obj, item, fromIndex, guard) { + if (!isArrayLike(obj)) obj = values(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return indexOf(obj, item, fromIndex) >= 0; + } + + // Invoke a method (with arguments) on every item in a collection. + var invoke = restArguments(function(obj, path, args) { + var contextPath, func; + if (isFunction$1(path)) { + func = path; + } else { + path = toPath(path); + contextPath = path.slice(0, -1); + path = path[path.length - 1]; + } + return map(obj, function(context) { + var method = func; + if (!method) { + if (contextPath && contextPath.length) { + context = deepGet(context, contextPath); + } + if (context == null) return void 0; + method = context[path]; + } + return method == null ? method : method.apply(context, args); + }); + }); + + // Convenience version of a common use case of `_.map`: fetching a property. + function pluck(obj, key) { + return map(obj, property(key)); + } + + // Convenience version of a common use case of `_.filter`: selecting only + // objects containing specific `key:value` pairs. + function where(obj, attrs) { + return filter(obj, matcher(attrs)); + } + + // Return the maximum element (or element-based computation). + function max(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value > result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed > lastComputed || computed === -Infinity && result === -Infinity) { + result = v; + lastComputed = computed; + } + }); + } + return result; + } + + // Return the minimum element (or element-based computation). + function min(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value < result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed < lastComputed || computed === Infinity && result === Infinity) { + result = v; + lastComputed = computed; + } + }); + } + return result; + } + + // Sample **n** random values from a collection using the modern version of the + // [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). + // If **n** is not specified, returns a single random element. + // The internal `guard` argument allows it to work with `_.map`. + function sample(obj, n, guard) { + if (n == null || guard) { + if (!isArrayLike(obj)) obj = values(obj); + return obj[random(obj.length - 1)]; + } + var sample = isArrayLike(obj) ? clone(obj) : values(obj); + var length = getLength(sample); + n = Math.max(Math.min(n, length), 0); + var last = length - 1; + for (var index = 0; index < n; index++) { + var rand = random(index, last); + var temp = sample[index]; + sample[index] = sample[rand]; + sample[rand] = temp; + } + return sample.slice(0, n); + } + + // Shuffle a collection. + function shuffle(obj) { + return sample(obj, Infinity); + } + + // Sort the object's values by a criterion produced by an iteratee. + function sortBy(obj, iteratee, context) { + var index = 0; + iteratee = cb(iteratee, context); + return pluck(map(obj, function(value, key, list) { + return { + value: value, + index: index++, + criteria: iteratee(value, key, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); + } + + // An internal function used for aggregate "group by" operations. + function group(behavior, partition) { + return function(obj, iteratee, context) { + var result = partition ? [[], []] : {}; + iteratee = cb(iteratee, context); + each(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; + } + + // Groups the object's values by a criterion. Pass either a string attribute + // to group by, or a function that returns the criterion. + var groupBy = group(function(result, value, key) { + if (has$1(result, key)) result[key].push(value); else result[key] = [value]; + }); + + // Indexes the object's values by a criterion, similar to `_.groupBy`, but for + // when you know that your index values will be unique. + var indexBy = group(function(result, value, key) { + result[key] = value; + }); + + // Counts instances of an object that group by a certain criterion. Pass + // either a string attribute to count by, or a function that returns the + // criterion. + var countBy = group(function(result, value, key) { + if (has$1(result, key)) result[key]++; else result[key] = 1; + }); + + // Split a collection into two arrays: one whose elements all pass the given + // truth test, and one whose elements all do not pass the truth test. + var partition = group(function(result, value, pass) { + result[pass ? 0 : 1].push(value); + }, true); + + // Safely create a real, live array from anything iterable. + var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; + function toArray(obj) { + if (!obj) return []; + if (isArray(obj)) return slice.call(obj); + if (isString(obj)) { + // Keep surrogate pair characters together. + return obj.match(reStrSymbol); + } + if (isArrayLike(obj)) return map(obj, identity); + return values(obj); + } + + // Return the number of elements in a collection. + function size(obj) { + if (obj == null) return 0; + return isArrayLike(obj) ? obj.length : keys(obj).length; + } + + // Internal `_.pick` helper function to determine whether `key` is an enumerable + // property name of `obj`. + function keyInObj(value, key, obj) { + return key in obj; + } + + // Return a copy of the object only containing the allowed properties. + var pick = restArguments(function(obj, keys) { + var result = {}, iteratee = keys[0]; + if (obj == null) return result; + if (isFunction$1(iteratee)) { + if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]); + keys = allKeys(obj); + } else { + iteratee = keyInObj; + keys = flatten$1(keys, false, false); + obj = Object(obj); + } + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; + } + return result; + }); + + // Return a copy of the object without the disallowed properties. + var omit = restArguments(function(obj, keys) { + var iteratee = keys[0], context; + if (isFunction$1(iteratee)) { + iteratee = negate(iteratee); + if (keys.length > 1) context = keys[1]; + } else { + keys = map(flatten$1(keys, false, false), String); + iteratee = function(value, key) { + return !contains(keys, key); + }; + } + return pick(obj, iteratee, context); + }); + + // Returns everything but the last entry of the array. Especially useful on + // the arguments object. Passing **n** will return all the values in + // the array, excluding the last N. + function initial(array, n, guard) { + return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); + } + + // Get the first element of an array. Passing **n** will return the first N + // values in the array. The **guard** check allows it to work with `_.map`. + function first(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[0]; + return initial(array, array.length - n); + } + + // Returns everything but the first entry of the `array`. Especially useful on + // the `arguments` object. Passing an **n** will return the rest N values in the + // `array`. + function rest(array, n, guard) { + return slice.call(array, n == null || guard ? 1 : n); + } + + // Get the last element of an array. Passing **n** will return the last N + // values in the array. + function last(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[array.length - 1]; + return rest(array, Math.max(0, array.length - n)); + } + + // Trim out all falsy values from an array. + function compact(array) { + return filter(array, Boolean); + } + + // Flatten out an array, either recursively (by default), or up to `depth`. + // Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively. + function flatten(array, depth) { + return flatten$1(array, depth, false); + } + + // Take the difference between one array and a number of other arrays. + // Only the elements present in just the first array will remain. + var difference = restArguments(function(array, rest) { + rest = flatten$1(rest, true, true); + return filter(array, function(value){ + return !contains(rest, value); + }); + }); + + // Return a version of the array that does not contain the specified value(s). + var without = restArguments(function(array, otherArrays) { + return difference(array, otherArrays); + }); + + // Produce a duplicate-free version of the array. If the array has already + // been sorted, you have the option of using a faster algorithm. + // The faster algorithm will not work with an iteratee if the iteratee + // is not a one-to-one function, so providing an iteratee will disable + // the faster algorithm. + function uniq(array, isSorted, iteratee, context) { + if (!isBoolean(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; + } + if (iteratee != null) iteratee = cb(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = getLength(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted && !iteratee) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!contains(seen, computed)) { + seen.push(computed); + result.push(value); + } + } else if (!contains(result, value)) { + result.push(value); + } + } + return result; + } + + // Produce an array that contains the union: each distinct element from all of + // the passed-in arrays. + var union = restArguments(function(arrays) { + return uniq(flatten$1(arrays, true, true)); + }); + + // Produce an array that contains every item shared between all the + // passed-in arrays. + function intersection(array) { + var result = []; + var argsLength = arguments.length; + for (var i = 0, length = getLength(array); i < length; i++) { + var item = array[i]; + if (contains(result, item)) continue; + var j; + for (j = 1; j < argsLength; j++) { + if (!contains(arguments[j], item)) break; + } + if (j === argsLength) result.push(item); + } + return result; + } + + // Complement of zip. Unzip accepts an array of arrays and groups + // each array's elements on shared indices. + function unzip(array) { + var length = array && max(array, getLength).length || 0; + var result = Array(length); + + for (var index = 0; index < length; index++) { + result[index] = pluck(array, index); + } + return result; + } + + // Zip together multiple lists into a single array -- elements that share + // an index go together. + var zip = restArguments(unzip); + + // Converts lists into objects. Pass either a single array of `[key, value]` + // pairs, or two parallel arrays of the same length -- one of keys, and one of + // the corresponding values. Passing by pairs is the reverse of `_.pairs`. + function object(list, values) { + var result = {}; + for (var i = 0, length = getLength(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } + } + return result; + } + + // Generate an integer Array containing an arithmetic progression. A port of + // the native Python `range()` function. See + // [the Python documentation](https://docs.python.org/library/functions.html#range). + function range(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; + } + if (!step) { + step = stop < start ? -1 : 1; + } + + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); + + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; + } + + return range; + } + + // Chunk a single array into multiple arrays, each containing `count` or fewer + // items. + function chunk(array, count) { + if (count == null || count < 1) return []; + var result = []; + var i = 0, length = array.length; + while (i < length) { + result.push(slice.call(array, i, i += count)); + } + return result; + } + + // Helper function to continue chaining intermediate results. + function chainResult(instance, obj) { + return instance._chain ? _$1(obj).chain() : obj; + } + + // Add your own custom functions to the Underscore object. + function mixin(obj) { + each(functions(obj), function(name) { + var func = _$1[name] = obj[name]; + _$1.prototype[name] = function() { + var args = [this._wrapped]; + push.apply(args, arguments); + return chainResult(this, func.apply(_$1, args)); + }; + }); + return _$1; + } + + // Add all mutator `Array` functions to the wrapper. + each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) { + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) { + delete obj[0]; + } + } + return chainResult(this, obj); + }; + }); + + // Add all accessor `Array` functions to the wrapper. + each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) obj = method.apply(obj, arguments); + return chainResult(this, obj); + }; + }); + + // Named Exports + + var allExports = { + __proto__: null, + VERSION: VERSION, + restArguments: restArguments, + isObject: isObject, + isNull: isNull, + isUndefined: isUndefined, + isBoolean: isBoolean, + isElement: isElement, + isString: isString, + isNumber: isNumber, + isDate: isDate, + isRegExp: isRegExp, + isError: isError, + isSymbol: isSymbol, + isArrayBuffer: isArrayBuffer, + isDataView: isDataView$1, + isArray: isArray, + isFunction: isFunction$1, + isArguments: isArguments$1, + isFinite: isFinite$1, + isNaN: isNaN$1, + isTypedArray: isTypedArray$1, + isEmpty: isEmpty, + isMatch: isMatch, + isEqual: isEqual, + isMap: isMap, + isWeakMap: isWeakMap, + isSet: isSet, + isWeakSet: isWeakSet, + keys: keys, + allKeys: allKeys, + values: values, + pairs: pairs, + invert: invert, + functions: functions, + methods: functions, + extend: extend, + extendOwn: extendOwn, + assign: extendOwn, + defaults: defaults, + create: create, + clone: clone, + tap: tap, + get: get, + has: has, + mapObject: mapObject, + identity: identity, + constant: constant, + noop: noop, + toPath: toPath$1, + property: property, + propertyOf: propertyOf, + matcher: matcher, + matches: matcher, + times: times, + random: random, + now: now, + escape: _escape, + unescape: _unescape, + templateSettings: templateSettings, + template: template, + result: result, + uniqueId: uniqueId, + chain: chain, + iteratee: iteratee, + partial: partial, + bind: bind, + bindAll: bindAll, + memoize: memoize, + delay: delay, + defer: defer, + throttle: throttle, + debounce: debounce, + wrap: wrap, + negate: negate, + compose: compose, + after: after, + before: before, + once: once, + findKey: findKey, + findIndex: findIndex, + findLastIndex: findLastIndex, + sortedIndex: sortedIndex, + indexOf: indexOf, + lastIndexOf: lastIndexOf, + find: find, + detect: find, + findWhere: findWhere, + each: each, + forEach: each, + map: map, + collect: map, + reduce: reduce, + foldl: reduce, + inject: reduce, + reduceRight: reduceRight, + foldr: reduceRight, + filter: filter, + select: filter, + reject: reject, + every: every, + all: every, + some: some, + any: some, + contains: contains, + includes: contains, + include: contains, + invoke: invoke, + pluck: pluck, + where: where, + max: max, + min: min, + shuffle: shuffle, + sample: sample, + sortBy: sortBy, + groupBy: groupBy, + indexBy: indexBy, + countBy: countBy, + partition: partition, + toArray: toArray, + size: size, + pick: pick, + omit: omit, + first: first, + head: first, + take: first, + initial: initial, + last: last, + rest: rest, + tail: rest, + drop: rest, + compact: compact, + flatten: flatten, + without: without, + uniq: uniq, + unique: uniq, + union: union, + intersection: intersection, + difference: difference, + unzip: unzip, + transpose: unzip, + zip: zip, + object: object, + range: range, + chunk: chunk, + mixin: mixin, + 'default': _$1 + }; + + // Default Export + + // Add all of the Underscore functions to the wrapper object. + var _ = mixin(allExports); + // Legacy Node.js API. + _._ = _; + + return _; + +}))); +//# sourceMappingURL=underscore-umd.js.map diff --git a/docs/_static/underscore.js b/docs/_static/underscore.js index 166240ef..cf177d42 100644 --- a/docs/_static/underscore.js +++ b/docs/_static/underscore.js @@ -1,6 +1,6 @@ -!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n=n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ -// Underscore.js 1.12.0 +!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ +// Underscore.js 1.13.1 // https://underscorejs.org -// (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors // Underscore may be freely distributed under the MIT license. -var n="1.12.0",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,g=isFinite,d=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u=0&&t<=m}}function $(n){return function(r){return null==r?void 0:r[n]}}var G=$("byteLength"),H=J(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:K(!1),Y=$("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e":">",'"':""","'":"'","`":"`"},Kn=Ln(Cn),Jn=Ln(_n(Cn)),$n=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=0;function Zn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var nr=j((function(n,r){var t=nr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a1)er(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var cr=nr(fr,2);function lr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o0?0:u-1;o>=0&&o0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),C))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a=3;return r(n,Fn(t,u,4),e,o)}}var wr=_r(1),Ar=_r(-1);function xr(n,r,t){var e=[];return r=qn(r,t),mr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Sr(n,r,t){r=qn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,o=0;o=0}var Er=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),jr(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Br(n,r){return jr(n,Rn(r))}function Nr(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ao&&(o=e);else r=qn(r,t),mr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Ir(n,r,t){if(null==r||t)return tr(n)||(n=jn(n)),n[Wn(n.length-1)];var e=tr(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i1&&(e=Fn(e,r[1])),r=an(n)):(e=Pr,r=er(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u1&&(t=r[1])):(r=jr(er(r,!1,!1),String),e=function(n,t){return!Mr(r,t)}),qr(n,e,t)}));function Wr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function zr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:Wr(n,n.length-r)}function Lr(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=er(r,!0,!0),xr(n,(function(n){return!Mr(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);ir?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o=function(r,t){e=null,t&&(u=n.apply(r,t))},i=j((function(i){if(e&&clearTimeout(e),t){var a=!e;e=setTimeout(o,r),a&&(u=n.apply(this,i))}else e=or(o,r,this,i);return u}));return i.cancel=function(){clearTimeout(e),e=null},i},wrap:function(n,r){return nr(r,n)},negate:ar,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:fr,once:cr,findKey:lr,findIndex:pr,findLastIndex:vr,sortedIndex:hr,indexOf:gr,lastIndexOf:dr,find:br,detect:br,findWhere:function(n,r){return br(n,Dn(r))},each:mr,forEach:mr,map:jr,collect:jr,reduce:wr,foldl:wr,inject:wr,reduceRight:Ar,foldr:Ar,filter:xr,select:xr,reject:function(n,r,t){return xr(n,ar(qn(r)),t)},every:Sr,all:Sr,some:Or,any:Or,contains:Mr,includes:Mr,include:Mr,invoke:Er,pluck:Br,where:function(n,r){return xr(n,Dn(r))},max:Nr,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ae||void 0===t)return 1;if(t=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e":">",'"':""","'":"'","`":"`"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o0?0:u-1;o>=0&&o0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;ao&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);ir?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;ae||void 0===t)return 1;if(t - - krTheme Sphinx Style — pymatgen-diffusion 2021.4.29 documentation - - - + + + krTheme Sphinx Style — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

    Navigation

  • modules |
  • - +
    @@ -46,7 +47,7 @@

    Navigation

    @@ -46,49 +47,49 @@

    Navigation

    -
    +

    Change Log

    -
    +

    v2021.4.29

    • Fixed msite calc order (@hmlli)

    • Removed magmom (@jmmshn)

    -
    -
    +
    +

    v2021.3.6

    • Fix for bad release due to error in MANIFEST.in.

    • DiffusionAnalyzer has been migration from pymatgen to pymatgen.analysis.diffusion.analyzer for a more self-contained suite of tools for diffusion analysis.

    -
    -
    + +

    v2021.3.5

    • pymatgen-diffusion is now released as a namespace package pymatgen-analysis-diffusion on PyPI. It should be imported via pymatgen.analysis.diffusion instead pymatgen_diffusion.

    -
    -
    + +

    v2019.2.28

    • Py3k cleanup.

    -
    -
    + +

    v2018.1.4

    • Compatibility with pymatgen v2018+.

    -
    -
    + +

    v0.3.0

    • NEB tools, including an implementation of an IDPP solver.

    -
    -
    + +
    @@ -125,7 +126,7 @@

    This Page

    Quick search

    diff --git a/docs/doctrees/_themes/README.doctree b/docs/doctrees/_themes/README.doctree index 844a5472..236c0ec3 100644 Binary files a/docs/doctrees/_themes/README.doctree and b/docs/doctrees/_themes/README.doctree differ diff --git a/docs/doctrees/change_log.doctree b/docs/doctrees/change_log.doctree index 16940015..db08cdc7 100644 Binary files a/docs/doctrees/change_log.doctree and b/docs/doctrees/change_log.doctree differ diff --git a/docs/doctrees/environment.pickle b/docs/doctrees/environment.pickle index 20e0c1c3..f8b45a4b 100644 Binary files a/docs/doctrees/environment.pickle and b/docs/doctrees/environment.pickle differ diff --git a/docs/doctrees/index.doctree b/docs/doctrees/index.doctree index a840c685..ca41afd6 100644 Binary files a/docs/doctrees/index.doctree and b/docs/doctrees/index.doctree differ diff --git a/docs/doctrees/modules.doctree b/docs/doctrees/modules.doctree index 3ed80965..c6642e6a 100644 Binary files a/docs/doctrees/modules.doctree and b/docs/doctrees/modules.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.clustering.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.clustering.doctree index 0d8191e8..1a70441b 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.clustering.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.clustering.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.doctree index b05f5d3b..b347ae8e 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.pathway.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.pathway.doctree index 7653d18a..95adeb36 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.pathway.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.pathway.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.rdf.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.rdf.doctree index c25b144f..2961a2c1 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.rdf.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.rdf.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_clustering.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_clustering.doctree index 8f38f5c3..6e6ea053 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_clustering.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_clustering.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_pathway.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_pathway.doctree index 78f41216..0769b6d5 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_pathway.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_pathway.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_rdf.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_rdf.doctree index 923aa737..e2f680a1 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_rdf.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_rdf.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.doctree index 6d06933f..242364cd 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.aimd.van_hove.doctree b/docs/doctrees/pymatgen.analysis.diffusion.aimd.van_hove.doctree index 434de539..63157830 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.aimd.van_hove.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.aimd.van_hove.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.analyzer.doctree b/docs/doctrees/pymatgen.analysis.diffusion.analyzer.doctree index a7a7d956..f8647570 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.analyzer.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.analyzer.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.doctree b/docs/doctrees/pymatgen.analysis.diffusion.doctree index 97dfa81e..694960ca 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.doctree index b0962d86..f8eabfb7 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.full_path_mapper.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.full_path_mapper.doctree index 4f70892c..023fff48 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.full_path_mapper.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.full_path_mapper.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.io.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.io.doctree index f5052049..ebed827f 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.io.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.io.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.pathfinder.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.pathfinder.doctree index cfa0c8c8..c2b764b0 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.pathfinder.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.pathfinder.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.periodic_dijkstra.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.periodic_dijkstra.doctree index ef6ecc6d..387a99f4 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.periodic_dijkstra.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.periodic_dijkstra.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.doctree index 70540f46..9d36a30a 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_io.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_io.doctree index 8261e940..86f11412 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_io.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_io.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.doctree b/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.doctree index 7528b136..65dc694f 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.tests.test_analyzer.doctree b/docs/doctrees/pymatgen.analysis.diffusion.tests.test_analyzer.doctree index 2dde8bf2..2939e2aa 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.tests.test_analyzer.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.tests.test_analyzer.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.doctree index b2a57309..249a5f88 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.edge_data_from_sc.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.edge_data_from_sc.doctree index 476265f5..7ca1ee17 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.edge_data_from_sc.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.edge_data_from_sc.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.maggma.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.maggma.doctree index 4c2bf92c..194426af 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.maggma.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.maggma.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.parse_entries.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.parse_entries.doctree index 51f2cc8f..84623b1a 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.parse_entries.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.parse_entries.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.supercells.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.supercells.doctree index 50a39980..e6f8d08a 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.supercells.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.supercells.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.doctree index bdf25913..18e2e195 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_maggma.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_maggma.doctree index b334dbce..2606c7b1 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_maggma.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_maggma.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.doctree b/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.doctree index d3764fdd..422cf688 100644 Binary files a/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.doctree and b/docs/doctrees/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.doctree differ diff --git a/docs/doctrees/pymatgen.analysis.doctree b/docs/doctrees/pymatgen.analysis.doctree index a10a9c54..862c7ec7 100644 Binary files a/docs/doctrees/pymatgen.analysis.doctree and b/docs/doctrees/pymatgen.analysis.doctree differ diff --git a/docs/doctrees/pymatgen.doctree b/docs/doctrees/pymatgen.doctree index ab9f9b03..834a532d 100644 Binary files a/docs/doctrees/pymatgen.doctree and b/docs/doctrees/pymatgen.doctree differ diff --git a/docs/doctrees/pymatgen_diffusion.aimd.doctree b/docs/doctrees/pymatgen_diffusion.aimd.doctree index a4d96c35..2fa8e99a 100644 Binary files a/docs/doctrees/pymatgen_diffusion.aimd.doctree and b/docs/doctrees/pymatgen_diffusion.aimd.doctree differ diff --git a/docs/doctrees/pymatgen_diffusion.doctree b/docs/doctrees/pymatgen_diffusion.doctree index 5b0c6688..cbf3cd29 100644 Binary files a/docs/doctrees/pymatgen_diffusion.doctree and b/docs/doctrees/pymatgen_diffusion.doctree differ diff --git a/docs/doctrees/pymatgen_diffusion.neb.doctree b/docs/doctrees/pymatgen_diffusion.neb.doctree index 0af5cc3a..998c0a4a 100644 Binary files a/docs/doctrees/pymatgen_diffusion.neb.doctree and b/docs/doctrees/pymatgen_diffusion.neb.doctree differ diff --git a/docs/genindex.html b/docs/genindex.html index 04f866bc..5e2f28c7 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -5,10 +5,10 @@ - Index — pymatgen-diffusion 2021.4.29 documentation - - - + Index — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +36,7 @@

    Navigation

  • modules |
  • - +
    @@ -105,7 +105,7 @@

    C

    -
    • pymatgen.analysis.diffusion.analyzer @@ -722,7 +744,7 @@

      S

  • structures (MVLCINEBSetTest attribute)
  • -
  • symm_structure() (MigrationGraph property) +
  • symm_structure (MigrationGraph property)
  • @@ -763,6 +785,8 @@

    T

  • test_get_inserted_on_base() (ParseEntriesTest method)
  • test_get_insertion_energy() (ParseEntriesTest method) +
  • +
  • test_get_key_in_path() (MigrationGraphComplexTest method)
  • test_get_path() (MigrationGraphComplexTest method)
  • @@ -771,6 +795,8 @@

    T

  • test_get_pos_and_migration_hop() (MigrationGraphSimpleTest method)
  • test_get_sc_structures() (MigrationHopTest method) +
  • +
  • test_get_sc_structures_vacmode() (MigrationHopTest method)
  • test_get_start_end_structs_from_hop() (MigrationHopTest method)
  • @@ -783,15 +809,19 @@

    T

  • test_get_uc_pos() (in module pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc) +
  • +
  • test_get_unique_hop_host() (in module pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc) +
  • +
  • test_get_unique_host_nonhost() (in module pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc)
  • test_group_and_label_hops() (MigrationGraphComplexTest method)
  • + + -
    • test_incar() (MVLCINEBEndPointSetTest method)
        @@ -817,6 +847,8 @@

        T

      • test_max_path_length() (DistinctPathFinderTest method)
      • test_not_matching_first() (MigrationGraphComplexTest method) +
      • +
      • test_order_path() (MigrationGraphComplexTest method)
      • test_periodic_dijkstra() (MigrationGraphComplexTest method)
      • @@ -858,7 +890,7 @@

        T

        U

        + + + @@ -213,7 +218,7 @@

        Python Module Index

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.clustering.html b/docs/pymatgen.analysis.diffusion.aimd.clustering.html index be2d0b17..17f1deb1 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.clustering.html +++ b/docs/pymatgen.analysis.diffusion.aimd.clustering.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.clustering module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.clustering module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - + @@ -46,14 +47,14 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.clustering module

        This module implements clustering algorithms to determine centroids, with adaption for periodic boundary conditions. This can be used, for example, to determine likely atomic positions from MD trajectories.

        -
        -class Kmeans(max_iterations: int = 1000)[source]
        +
        +class Kmeans(max_iterations: int = 1000)[source]

        Bases: object

        Simple kmeans clustering.

        @@ -62,8 +63,8 @@

        Navigation

        -
        -cluster(points, k, initial_centroids=None)[source]
        +
        +cluster(points, k, initial_centroids=None)[source]
        Parameters
          @@ -86,8 +87,8 @@

          Navigation

        -
        -static get_centroids(points, labels, k, centroids)[source]
        +
        +static get_centroids(points, labels, k, centroids)[source]

        Each centroid is the geometric mean of the points that have that centroid’s label. Important: If a centroid is empty (no points have that centroid’s label) you should randomly re-initialize it.

        @@ -104,8 +105,8 @@

        Navigation

        -
        -static get_labels(points, centroids)[source]
        +
        +static get_labels(points, centroids)[source]

        For each element in the dataset, chose the closest centroid. Make that centroid the element’s label.

        @@ -119,8 +120,8 @@

        Navigation

        -
        -should_stop(old_centroids, centroids, iterations)[source]
        +
        +should_stop(old_centroids, centroids, iterations)[source]

        Check for stopping conditions.

        Parameters
        @@ -136,8 +137,8 @@

        Navigation

        -
        -class KmeansPBC(lattice, max_iterations=1000)[source]
        +
        +class KmeansPBC(lattice, max_iterations=1000)[source]

        Bases: pymatgen.analysis.diffusion.aimd.clustering.Kmeans

        A version of KMeans that work with PBC. Distance metrics have to change, as well as new centroid determination. The points supplied should be @@ -151,8 +152,8 @@

        Navigation

        -
        -get_centroids(points, labels, k, centroids)[source]
        +
        +get_centroids(points, labels, k, centroids)[source]

        Each centroid is the geometric mean of the points that have that centroid’s label. Important: If a centroid is empty (no points have that centroid’s label) you should randomly re-initialize it.

        @@ -169,8 +170,8 @@

        Navigation

        -
        -get_labels(points, centroids)[source]
        +
        +get_labels(points, centroids)[source]

        For each element in the dataset, chose the closest centroid. Make that centroid the element’s label.

        @@ -184,8 +185,8 @@

        Navigation

        -
        -should_stop(old_centroids, centroids, iterations)[source]
        +
        +should_stop(old_centroids, centroids, iterations)[source]

        Check for stopping conditions.

        Parameters
        @@ -201,8 +202,8 @@

        Navigation

        -
        -get_random_centroid(points)[source]
        +
        +get_random_centroid(points)[source]

        Generate a random centroid based on points.

        Parameters
        @@ -212,8 +213,8 @@

        Navigation

        -
        -get_random_centroids(points, k)[source]
        +
        +get_random_centroids(points, k)[source]

        Generate k random centroids based on points.

        Parameters
        @@ -225,7 +226,7 @@

        Navigation

        -
        +
        @@ -249,7 +250,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.html b/docs/pymatgen.analysis.diffusion.aimd.html index ca1c51c0..525299cd 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.html +++ b/docs/pymatgen.analysis.diffusion.aimd.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd package — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd package — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,14 +47,14 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd package

        -
        +

        Subpackages

        -
        -
        +
        +

        Submodules

        -
        -
        + +

        Module contents

        Modules for AIMD simulation analysis.

        -
        -
        + +
        @@ -102,7 +103,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.pathway.html b/docs/pymatgen.analysis.diffusion.aimd.pathway.html index dc975d20..a93a0dd1 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.pathway.html +++ b/docs/pymatgen.analysis.diffusion.aimd.pathway.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.pathway module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.pathway module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.pathway module

        Algorithms for diffusion pathway analysis

        -
        -class ProbabilityDensityAnalysis(structure, trajectories, interval=0.5, species=('Li', 'Na'))[source]
        +
        +class ProbabilityDensityAnalysis(structure, trajectories, interval=0.5, species=('Li', 'Na'))[source]

        Bases: object

        Compute the time-averaged probability density distribution of selected species on a “uniform” (in terms of fractional coordinates) 3-D grid. @@ -79,8 +80,8 @@

        Navigation

        -
        -classmethod from_diffusion_analyzer(diffusion_analyzer, interval=0.5, species=('Li', 'Na'))[source]
        +
        +classmethod from_diffusion_analyzer(diffusion_analyzer, interval=0.5, species=('Li', 'Na'))[source]

        Create a ProbabilityDensityAnalysis from a diffusion_analyzer object.

        Parameters
        @@ -96,8 +97,8 @@

        Navigation

        -
        -generate_stable_sites(p_ratio=0.25, d_cutoff=1.0)[source]
        +
        +generate_stable_sites(p_ratio=0.25, d_cutoff=1.0)[source]

        Obtain a set of low-energy sites from probability density function with given probability threshold ‘p_ratio’. The set of grid points with probability density higher than the threshold will further be clustered @@ -120,15 +121,15 @@

        Navigation

        -
        -get_full_structure()[source]
        +
        +get_full_structure()[source]

        Generate the structure with the low-energy sites included. In the end, a pymatgen Structure object will be returned.

        -
        -to_chgcar(filename='CHGCAR.vasp')[source]
        +
        +to_chgcar(filename='CHGCAR.vasp')[source]

        Save the probability density distribution in the format of CHGCAR, which can be visualized by VESTA.

        @@ -136,39 +137,39 @@

        Navigation

        -
        -class SiteOccupancyAnalyzer(structure, coords_ref, trajectories, species=('Li', 'Na'))[source]
        +
        +class SiteOccupancyAnalyzer(structure, coords_ref, trajectories, species=('Li', 'Na'))[source]

        Bases: object

        A class that analyzes the site occupancy of given species using MD trajectories. The occupancy of a site is determined based on the shortest distance scheme.

        -
        -site_occ
        -
        -N x 1 numpy array that stores the occupancy of all sites associated with
        -
        -species. It has the same sequence as the given list of indices.
        +
        +site_occ
        +
        +N x 1 numpy array that stores the occupancy of all sites associated with
        +
        +species. It has the same sequence as the given list of indices.
        -
        -coords_ref
        -
        -N x 3 numpy array of fractional coordinates of all reference sites.
        +
        +coords_ref
        +
        +N x 3 numpy array of fractional coordinates of all reference sites.
        -
        -nsites
        -
        -Number of reference sites.
        +
        +nsites
        +
        +Number of reference sites.
        -
        -structure
        -
        -Initial structure.
        +
        +structure
        +
        +Initial structure.
        @@ -185,8 +186,8 @@

        Navigation

        -
        -classmethod from_diffusion_analyzer(coords_ref, diffusion_analyzer, species=('Li', 'Na'))[source]
        +
        +classmethod from_diffusion_analyzer(coords_ref, diffusion_analyzer, species=('Li', 'Na'))[source]

        Create a SiteOccupancyAnalyzer object using a diffusion_analyzer object.

        Parameters
        @@ -202,14 +203,14 @@

        Navigation

        -
        -get_average_site_occupancy(indices)[source]
        +
        +get_average_site_occupancy(indices)[source]

        Get the average site occupancy over a subset of reference sites.

        -
        +
        @@ -233,7 +234,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.rdf.html b/docs/pymatgen.analysis.diffusion.aimd.rdf.html index d65880bf..4752de87 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.rdf.html +++ b/docs/pymatgen.analysis.diffusion.aimd.rdf.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.rdf module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.rdf module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.rdf module

        RDF implementation.

        -
        -class RadialDistributionFunction(structures: List, indices: List, reference_indices: List, ngrid: int = 101, rmax: float = 10.0, cell_range: int = 1, sigma: float = 0.1)[source]
        +
        +class RadialDistributionFunction(structures: List, indices: List, reference_indices: List, ngrid: int = 101, rmax: float = 10.0, cell_range: int = 1, sigma: float = 0.1)[source]

        Bases: object

        Calculate the average radial distribution function for a given set of structures.

        @@ -73,9 +74,9 @@

        Navigation

        -
        -
        -property coordination_number
        +
        +
        +property coordination_number

        returns running coordination number

        Returns
        @@ -85,8 +86,8 @@

        Navigation

        -
        -export_rdf(filename: str)[source]
        +
        +export_rdf(filename: str)[source]

        Output RDF data to a csv file.

        Parameters
        @@ -98,8 +99,8 @@

        Navigation

        -
        -classmethod from_species(structures: List, ngrid: int = 101, rmax: float = 10.0, cell_range: int = 1, sigma: float = 0.1, species: Union[Tuple, List] = ('Li', 'Na'), reference_species: Optional[Union[Tuple, List]] = None)[source]
        +
        +classmethod from_species(structures: List, ngrid: int = 101, rmax: float = 10.0, cell_range: int = 1, sigma: float = 0.1, species: Union[Tuple, List] = ('Li', 'Na'), reference_species: Optional[Union[Tuple, List]] = None)[source]

        Initialize using species.

        Parameters
        @@ -126,8 +127,8 @@

        Navigation

        -
        -get_rdf_plot(label: Optional[str] = None, xlim: tuple = (0.0, 8.0), ylim: tuple = (- 0.005, 3.0), loc_peak: bool = False)[source]
        +
        +get_rdf_plot(label: Optional[str] = None, xlim: tuple = (0.0, 8.0), ylim: tuple = (- 0.005, 3.0), loc_peak: bool = False)[source]

        Plot the average RDF function.

        Parameters
        @@ -144,8 +145,8 @@

        Navigation

        -
        -class RadialDistributionFunctionFast(structures: Union[pymatgen.core.structure.Structure, List[pymatgen.core.structure.Structure]], rmin: float = 0.0, rmax: float = 10.0, ngrid: float = 101, sigma: float = 0.0, n_jobs=None)[source]
        +
        +class RadialDistributionFunctionFast(structures: Union[pymatgen.core.structure.Structure, List[pymatgen.core.structure.Structure]], rmin: float = 0.0, rmax: float = 10.0, ngrid: float = 101, sigma: float = 0.0, n_jobs=None)[source]

        Bases: object

        Fast radial distribution analysis.

        This method calculates rdf on np.linspace(rmin, rmax, ngrid) points.

        @@ -162,8 +163,8 @@

        Navigation

        -
        -get_coordination_number(ref_species, species, is_average=True)[source]
        +
        +get_coordination_number(ref_species, species, is_average=True)[source]

        returns running coordination number

        Parameters
        @@ -182,8 +183,8 @@

        Navigation

        -
        -get_one_rdf(ref_species: Union[str, List[str]], species: Union[str, List[str]], index=0)[source]
        +
        +get_one_rdf(ref_species: Union[str, List[str]], species: Union[str, List[str]], index=0)[source]

        Get the RDF for one structure, indicated by the index of the structure in all structures

        @@ -203,8 +204,8 @@

        Navigation

        -
        -get_rdf(ref_species: Union[str, List[str]], species: Union[str, List[str]], is_average=True)[source]
        +
        +get_rdf(ref_species: Union[str, List[str]], species: Union[str, List[str]], is_average=True)[source]
        Parameters
          @@ -224,7 +225,7 @@

          Navigation

        -
        +
        @@ -248,7 +249,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.tests.test_clustering.html b/docs/pymatgen.analysis.diffusion.aimd.tests.test_clustering.html index ba062667..d896962d 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.tests.test_clustering.html +++ b/docs/pymatgen.analysis.diffusion.aimd.tests.test_clustering.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.tests.test_clustering module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.tests.test_clustering module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,37 +47,37 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.tests.test_clustering module

        -
        -class KmeansPBCTest(methodName='runTest')[source]
        +
        +class KmeansPBCTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_cluster()[source]
        +
        +test_cluster()[source]
        -
        -class KmeansTest(methodName='runTest')[source]
        +
        +class KmeansTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_cluster()[source]
        +
        +test_cluster()[source]
        -
        +
        @@ -100,7 +101,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.tests.test_pathway.html b/docs/pymatgen.analysis.diffusion.aimd.tests.test_pathway.html index 3dd5b9b8..07322113 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.tests.test_pathway.html +++ b/docs/pymatgen.analysis.diffusion.aimd.tests.test_pathway.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.tests.test_pathway module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.tests.test_pathway module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,52 +47,52 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.tests.test_pathway module

        -
        -class ProbabilityDensityTest(methodName='runTest')[source]
        +
        +class ProbabilityDensityTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_generate_stable_sites()[source]
        +
        +test_generate_stable_sites()[source]
        -
        -test_probability()[source]
        +
        +test_probability()[source]
        -
        -test_probability_classmethod()[source]
        +
        +test_probability_classmethod()[source]
        -
        -class SiteOccupancyTest(methodName='runTest')[source]
        +
        +class SiteOccupancyTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_site_occupancy()[source]
        +
        +test_site_occupancy()[source]
        -
        -test_site_occupancy_classmethod()[source]
        +
        +test_site_occupancy_classmethod()[source]
        -
        +
        @@ -115,7 +116,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.tests.test_rdf.html b/docs/pymatgen.analysis.diffusion.aimd.tests.test_rdf.html index 0856c24d..90416ab1 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.tests.test_rdf.html +++ b/docs/pymatgen.analysis.diffusion.aimd.tests.test_rdf.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.tests.test_rdf module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.tests.test_rdf module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,28 +47,28 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.tests.test_rdf module

        -
        -class RDFTest(methodName='runTest')[source]
        +
        +class RDFTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_rdf()[source]
        +
        +test_rdf()[source]
        -
        -test_rdf_coordination_number()[source]
        +
        +test_rdf_coordination_number()[source]
        -
        +
        @@ -91,7 +92,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.html b/docs/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.html index fd6586ef..9fb9a315 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.html +++ b/docs/pymatgen.analysis.diffusion.aimd.tests.test_van_hove.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.tests.test_van_hove module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.tests.test_van_hove module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,87 +47,87 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.tests.test_van_hove module

        -
        -class EvolutionAnalyzerTest(methodName='runTest')[source]
        +
        +class EvolutionAnalyzerTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_get_df()[source]
        +
        +test_get_df()[source]
        -
        -class RDFTest(methodName='runTest')[source]
        +
        +class RDFTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -setUp()[source]
        +
        +setUp()[source]

        Hook method for setting up the test fixture before exercising it.

        -
        -test_raises_ValueError_if_reference_species_not_in_structure()[source]
        +
        +test_raises_ValueError_if_reference_species_not_in_structure()[source]
        -
        -test_raises_ValueError_if_sigma_is_not_positive()[source]
        +
        +test_raises_ValueError_if_sigma_is_not_positive()[source]
        -
        -test_raises_ValueError_if_species_not_in_structure()[source]
        +
        +test_raises_ValueError_if_species_not_in_structure()[source]
        -
        -test_raises_valueerror_if_ngrid_is_less_than_2()[source]
        +
        +test_raises_valueerror_if_ngrid_is_less_than_2()[source]
        -
        -test_rdf()[source]
        +
        +test_rdf()[source]
        -
        -test_rdf_coordination_number()[source]
        +
        +test_rdf_coordination_number()[source]
        -
        -test_rdf_two_species_coordination_number()[source]
        +
        +test_rdf_two_species_coordination_number()[source]
        -
        -class VanHoveTest(methodName='runTest')[source]
        +
        +class VanHoveTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_van_hove()[source]
        +
        +test_van_hove()[source]
        -
        +
        @@ -150,7 +151,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.aimd.van_hove.html b/docs/pymatgen.analysis.diffusion.aimd.van_hove.html index dd78cc79..37cb1127 100644 --- a/docs/pymatgen.analysis.diffusion.aimd.van_hove.html +++ b/docs/pymatgen.analysis.diffusion.aimd.van_hove.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.aimd.van_hove module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.aimd.van_hove module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.aimd.van_hove module

        Van Hove analysis for correlations.

        -
        -class EvolutionAnalyzer(structures: List, rmax: float = 10, step: int = 1, time_step: int = 2)[source]
        +
        +class EvolutionAnalyzer(structures: List, rmax: float = 10, step: int = 1, time_step: int = 2)[source]

        Bases: object

        Analyze the evolution of structures during AIMD simulations.

        Initialization the EvolutionAnalyzer from MD simulations. From the @@ -76,8 +77,8 @@

        Navigation

        -
        -static atom_dist(structure: pymatgen.core.structure.Structure, specie: str, ngrid: int = 101, window: float = 1, direction: str = 'c')[source]
        +
        +static atom_dist(structure: pymatgen.core.structure.Structure, specie: str, ngrid: int = 101, window: float = 1, direction: str = 'c')[source]

        Get atomic distribution for a given specie.

        Parameters
        @@ -100,8 +101,8 @@

        Navigation

        -
        -get_df(func: Callable, save_csv: Optional[str] = None, **kwargs)[source]
        +
        +get_df(func: Callable, save_csv: Optional[str] = None, **kwargs)[source]

        Get the data frame for a given pair. This step would be very slow if there are hundreds or more structures to parse.

        @@ -143,8 +144,8 @@

        Navigation

        -
        -static get_min_dist(df: pandas.core.frame.DataFrame, tol: float = 1e-10)[source]
        +
        +static get_min_dist(df: pandas.core.frame.DataFrame, tol: float = 1e-10)[source]

        Get the shortest pair distance from the given DataFrame.

        Parameters
        @@ -161,8 +162,8 @@

        Navigation

        -
        -static get_pairs(structure: pymatgen.core.structure.Structure)[source]
        +
        +static get_pairs(structure: pymatgen.core.structure.Structure)[source]

        Get all element pairs in a structure.

        Parameters
        @@ -175,8 +176,8 @@

        Navigation

        -
        -plot_atomic_evolution(specie: str, direction: str = 'c', cmap=<matplotlib.colors.LinearSegmentedColormap object>, df: Optional[pandas.core.frame.DataFrame] = None)[source]
        +
        +plot_atomic_evolution(specie: str, direction: str = 'c', cmap=<matplotlib.colors.LinearSegmentedColormap object>, df: Optional[pandas.core.frame.DataFrame] = None)[source]

        Plot the atomic distribution evolution with time for a given species.

        Parameters
        @@ -195,8 +196,8 @@

        Navigation

        -
        -static plot_evolution_from_data(df: pandas.core.frame.DataFrame, x_label: Optional[str] = None, cb_label: Optional[str] = None, cmap=<matplotlib.colors.ListedColormap object>)[source]
        +
        +static plot_evolution_from_data(df: pandas.core.frame.DataFrame, x_label: Optional[str] = None, cb_label: Optional[str] = None, cmap=<matplotlib.colors.ListedColormap object>)[source]

        Plot the evolution with time for a given DataFrame. It can be RDF, atomic distribution or other characterization data we might implement in the future.

        @@ -218,8 +219,8 @@

        Navigation

        -
        -plot_rdf_evolution(pair: Tuple, cmap=<matplotlib.colors.ListedColormap object>, df: Optional[pandas.core.frame.DataFrame] = None)[source]
        +
        +plot_rdf_evolution(pair: Tuple, cmap=<matplotlib.colors.ListedColormap object>, df: Optional[pandas.core.frame.DataFrame] = None)[source]

        Plot the RDF evolution with time for a given pair.

        Parameters
        @@ -238,8 +239,8 @@

        Navigation

        -
        -static rdf(structure: pymatgen.core.structure.Structure, pair: Tuple, ngrid: int = 101, rmax: float = 10)[source]
        +
        +static rdf(structure: pymatgen.core.structure.Structure, pair: Tuple, ngrid: int = 101, rmax: float = 10)[source]

        Process rdf from a given structure and pair.

        Parameters
        @@ -259,8 +260,8 @@

        Navigation

        -
        -class VanHoveAnalysis(diffusion_analyzer: pymatgen.analysis.diffusion.analyzer.DiffusionAnalyzer, avg_nsteps: int = 50, ngrid: int = 101, rmax: float = 10.0, step_skip: int = 50, sigma: float = 0.1, cell_range: int = 1, species: Union[Tuple, List] = ('Li', 'Na'), reference_species: Optional[Union[Tuple, List]] = None, indices: Optional[List] = None)[source]
        +
        +class VanHoveAnalysis(diffusion_analyzer: pymatgen.analysis.diffusion.analyzer.DiffusionAnalyzer, avg_nsteps: int = 50, ngrid: int = 101, rmax: float = 10.0, step_skip: int = 50, sigma: float = 0.1, cell_range: int = 1, species: Union[Tuple, List] = ('Li', 'Na'), reference_species: Optional[Union[Tuple, List]] = None, indices: Optional[List] = None)[source]

        Bases: object

        Class for van Hove function analysis. In particular, self-part (Gs) and distinct-part (Gd) of the van Hove correlation function G(r,t) @@ -296,8 +297,8 @@

        Navigation

        -
        -get_1d_plot(mode: str = 'distinct', times: List = [0.0], colors: Optional[List] = None)[source]
        +
        +get_1d_plot(mode: str = 'distinct', times: List = [0.0], colors: Optional[List] = None)[source]

        Plot the van Hove function at given r or t.

        Parameters
        @@ -313,15 +314,15 @@

        Navigation

        -
        -get_3d_plot(figsize: Tuple = (12, 8), mode: str = 'distinct')[source]
        +
        +get_3d_plot(figsize: Tuple = (12, 8), mode: str = 'distinct')[source]

        Plot 3D self-part or distinct-part of van Hove function, which is specified by the input argument ‘type’.

        -
        +
        @@ -345,7 +346,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.analyzer.html b/docs/pymatgen.analysis.diffusion.analyzer.html index b02a44f0..a181e990 100644 --- a/docs/pymatgen.analysis.diffusion.analyzer.html +++ b/docs/pymatgen.analysis.diffusion.analyzer.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.analyzer module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.analyzer module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,7 +47,7 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.analyzer module

        A module to perform diffusion analyses (e.g. calculating diffusivity from mean square displacements etc.). If you use this module, please consider @@ -63,8 +64,8 @@

        Navigation

        -
        -class DiffusionAnalyzer(structure, displacements, specie, temperature, time_step, step_skip, smoothed='max', min_obs=30, avg_nsteps=1000, lattices=None)[source]
        +
        +class DiffusionAnalyzer(structure, displacements, specie, temperature, time_step, step_skip, smoothed='max', min_obs=30, avg_nsteps=1000, lattices=None)[source]

        Bases: monty.json.MSONable

        Class for performing diffusion analysis.

        This constructor is meant to be used with pre-processed data. @@ -125,14 +126,14 @@

        Navigation

        -
        -as_dict()[source]
        +
        +as_dict()[source]

        Returns: MSONable dict

        -
        -export_msdt(filename)[source]
        +
        +export_msdt(filename)[source]

        Writes MSD data to a csv file that can be easily plotted in other software.

        @@ -145,8 +146,8 @@

        Navigation

        -
        -classmethod from_dict(d)[source]
        +
        +classmethod from_dict(d)[source]
        Parameters

        d (dict) – Dict representation

        @@ -156,8 +157,8 @@

        Navigation

        -
        -classmethod from_files(filepaths, specie, step_skip=10, ncores=None, initial_disp=None, initial_structure=None, **kwargs)[source]
        +
        +classmethod from_files(filepaths, specie, step_skip=10, ncores=None, initial_disp=None, initial_structure=None, **kwargs)[source]

        Convenient constructor that takes in a list of vasprun.xml paths to perform diffusion analysis.

        @@ -198,8 +199,8 @@

        Navigation

        -
        -classmethod from_structures(structures, specie, temperature, time_step, step_skip, initial_disp=None, initial_structure=None, **kwargs)[source]
        +
        +classmethod from_structures(structures, specie, temperature, time_step, step_skip, initial_disp=None, initial_structure=None, **kwargs)[source]

        Convenient constructor that takes in a list of Structure objects to perform diffusion analysis.

        @@ -233,8 +234,8 @@

        Navigation

        -
        -classmethod from_vaspruns(vaspruns, specie, initial_disp=None, initial_structure=None, **kwargs)[source]
        +
        +classmethod from_vaspruns(vaspruns, specie, initial_disp=None, initial_structure=None, **kwargs)[source]

        Convenient constructor that takes in a list of Vasprun objects to perform diffusion analysis.

        @@ -263,8 +264,8 @@

        Navigation

        -
        -get_drift_corrected_structures(start=None, stop=None, step=None)[source]
        +
        +get_drift_corrected_structures(start=None, stop=None, step=None)[source]

        Returns an iterator for the drift-corrected structures. Use of iterator is to reduce memory usage as # of structures in MD can be huge. You don’t often need all the structures all at once.

        @@ -286,8 +287,8 @@

        Navigation

        -
        -get_framework_rms_plot(plt=None, granularity=200, matching_s=None)[source]
        +
        +get_framework_rms_plot(plt=None, granularity=200, matching_s=None)[source]

        Get the plot of rms framework displacement vs time. Useful for checking for melting, especially if framework atoms can move via paddle-wheel or similar mechanism (which would show up in max framework displacement @@ -309,8 +310,8 @@

        Navigation

        -
        -get_msd_plot(plt=None, mode='specie')[source]
        +
        +get_msd_plot(plt=None, mode='specie')[source]

        Get the plot of the smoothed msd vs time graph. Useful for checking convergence. This can be written to an image file.

        @@ -327,8 +328,8 @@

        Navigation

        -
        -get_summary_dict(include_msd_t=False, include_mscd_t=False)[source]
        +
        +get_summary_dict(include_msd_t=False, include_mscd_t=False)[source]

        Provides a summary of diffusion information.

        Parameters
        @@ -346,8 +347,8 @@

        Navigation

        -
        -plot_msd(mode='default')[source]
        +
        +plot_msd(mode='default')[source]

        Plot the smoothed msd vs time graph. Useful for checking convergence.

        Parameters
        @@ -363,8 +364,8 @@

        Navigation

        -
        -fit_arrhenius(temps, diffusivities)[source]
        +
        +fit_arrhenius(temps, diffusivities)[source]
        Returns Ea, c, standard error of Ea from the Arrhenius fit:

        D = c * exp(-Ea/kT)

        @@ -381,8 +382,8 @@

        Navigation

        -
        -get_arrhenius_plot(temps, diffusivities, diffusivity_errors=None, **kwargs)[source]
        +
        +get_arrhenius_plot(temps, diffusivities, diffusivity_errors=None, **kwargs)[source]

        Returns an Arrhenius plot.

        Parameters
        @@ -402,8 +403,8 @@

        Navigation

        -
        -get_conversion_factor(structure, species, temperature)[source]
        +
        +get_conversion_factor(structure, species, temperature)[source]

        Conversion factor to convert between cm^2/s diffusivity measurements and mS/cm conductivity measurements based on number of atoms of diffusing species. Note that the charge is based on the oxidation state of the @@ -425,8 +426,8 @@

        Navigation

        -
        -get_extrapolated_conductivity(temps, diffusivities, new_temp, structure, species)[source]
        +
        +get_extrapolated_conductivity(temps, diffusivities, new_temp, structure, species)[source]

        Returns extrapolated mS/cm conductivity.

        Parameters
        @@ -446,8 +447,8 @@

        Navigation

        -
        -get_extrapolated_diffusivity(temps, diffusivities, new_temp)[source]
        +
        +get_extrapolated_diffusivity(temps, diffusivities, new_temp)[source]

        Returns (Arrhenius) extrapolated diffusivity at new_temp

        Parameters
        @@ -464,7 +465,7 @@

        Navigation

        -
        +
        @@ -488,7 +489,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.html b/docs/pymatgen.analysis.diffusion.html index 3283e012..656e2e05 100644 --- a/docs/pymatgen.analysis.diffusion.html +++ b/docs/pymatgen.analysis.diffusion.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion package — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion package — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,9 +47,9 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion package

        -
        +

        Subpackages

          @@ -96,20 +97,20 @@

          Subpackages +

        +

        Submodules

        -
        -
        +
        +

        Module contents

        Package for diffusion analysis.

        -
        -
        + +
        @@ -143,7 +144,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.full_path_mapper.html b/docs/pymatgen.analysis.diffusion.neb.full_path_mapper.html index 27883187..d350b5fb 100644 --- a/docs/pymatgen.analysis.diffusion.neb.full_path_mapper.html +++ b/docs/pymatgen.analysis.diffusion.neb.full_path_mapper.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb.full_path_mapper module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb.full_path_mapper module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb.full_path_mapper module

        Migraiton Graph Analysis

        -
        -class ChargeBarrierGraph(structure: pymatgen.core.structure.Structure, m_graph: pymatgen.analysis.graphs.StructureGraph, potential_field: pymatgen.io.vasp.outputs.VolumetricData, potential_data_key: str, **kwargs)[source]
        +
        +class ChargeBarrierGraph(structure: pymatgen.core.structure.Structure, m_graph: pymatgen.analysis.graphs.StructureGraph, potential_field: pymatgen.io.vasp.outputs.VolumetricData, potential_data_key: str, **kwargs)[source]

        Bases: pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph

        A Migration graph with additional charge density analysis on the charge density of the host material

        Construct the MigrationGraph object using a VolumetricData object. @@ -70,21 +71,21 @@

        Navigation

        -
        -get_least_chg_path()[source]
        +
        +get_least_chg_path()[source]

        obtain an intercolating pathway through the material that has the least amount of charge :returns: list of hops

        -
        -get_summary_dict(add_keys: Optional[List[str]] = None)[source]
        +
        +get_summary_dict(add_keys: Optional[List[str]] = None)[source]

        Dictionary format, for saving to database

        -
        -populate_edges_with_chg_density_info(tube_radius=1)[source]
        +
        +populate_edges_with_chg_density_info(tube_radius=1)[source]
        Parameters

        tube_radius – Tube radius.

        @@ -95,8 +96,8 @@

        Navigation

        -
        -class MigrationGraph(structure: pymatgen.core.structure.Structure, m_graph: pymatgen.analysis.graphs.StructureGraph, symprec=0.1, vac_mode=False)[source]
        +
        +class MigrationGraph(structure: pymatgen.core.structure.Structure, m_graph: pymatgen.analysis.graphs.StructureGraph, symprec=0.1, vac_mode=False)[source]

        Bases: monty.json.MSONable

        A python object for handling the migratrion graph of a given base structure and mobile specie sites within that base structure.

        @@ -125,8 +126,8 @@

        Navigation

        -
        -add_data_to_similar_edges(target_label: Union[int, str], data: dict, m_hop: Optional[pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop] = None)[source]
        +
        +add_data_to_similar_edges(target_label: Union[int, str], data: dict, m_hop: Optional[pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop] = None)[source]

        Insert data to all edges with the same label :param target_label: The edge uniqueness label are adding data :param data: The data to passed to the different edges @@ -135,8 +136,8 @@

        Navigation

        -
        -assign_cost_to_graph(cost_keys=['hop_distance'])[source]
        +
        +assign_cost_to_graph(cost_keys=['hop_distance'])[source]

        Read the data dict on each add and populate a cost key :param cost_keys: a list of keys for data on each edge.

        @@ -145,8 +146,8 @@

        Navigation

        -
        -get_path(max_val=100000)[source]
        +
        +get_path(max_val=100000, flip_hops=True)[source]

        obtain a pathway through the material using hops that are in the current graph Basic idea:

        @@ -156,7 +157,13 @@

        Navigation

        Parameters
        -

        max_val – Filter the graph by a cost

        +
          +
        • max_val – Filter the graph by a cost

        • +
        • flip_hops – If true, hops in paths returned will be flipped so +isites and esites match to form a coherent path. +If false, hops will retain their original orientation +from the migration graph.

        • +
        Returns

        Each dict contains the information of a hop

        @@ -168,8 +175,8 @@

        Navigation

        -
        -static get_structure_from_entries(entries: List[pymatgen.entries.computed_entries.ComputedStructureEntry], migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry, **kwargs)List[pymatgen.core.structure.Structure][source]
        +
        +static get_structure_from_entries(entries: List[pymatgen.entries.computed_entries.ComputedStructureEntry], migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry, **kwargs) List[pymatgen.core.structure.Structure][source]

        Read in a list of base entries and inserted entries. Return a list of structures that contains metastable sites for the migration species decorated with a “insertion_energy” property.

        @@ -201,38 +208,38 @@

        Navigation

        -
        -get_summary_dict(added_keys: Optional[List[str]] = None)dict[source]
        +
        +get_summary_dict(added_keys: Optional[List[str]] = None) dict[source]

        Dictionary format, for saving to database

        -
        -
        -property host_structure
        +
        +
        +property host_structure: pymatgen.core.structure.Structure

        A structure that only contains the non-migrating species

        -
        -
        -property only_sites
        +
        +
        +property only_sites: pymatgen.core.structure.Structure

        A structure that only contains the migrating species

        -
        -
        -property symm_structure
        +
        +
        +property symm_structure: pymatgen.symmetry.structure.SymmetrizedStructure

        The symmetrized structure with the present item’s symprec value

        -
        -
        -property unique_hops
        +
        +
        +property unique_hops

        The unique hops dictionary keyed by the hop label

        -
        -classmethod with_base_structure(base_structure: pymatgen.core.structure.Structure, m_graph: pymatgen.analysis.graphs.StructureGraph, **kwargs)pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph[source]
        +
        +classmethod with_base_structure(base_structure: pymatgen.core.structure.Structure, m_graph: pymatgen.analysis.graphs.StructureGraph, **kwargs) pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph[source]
        Parameters

        base_structure – base framework structure that does not contain any @@ -245,8 +252,8 @@

        Navigation

        -
        -classmethod with_distance(structure: pymatgen.core.structure.Structure, migrating_specie: str, max_distance: float, **kwargs)pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph[source]
        +
        +classmethod with_distance(structure: pymatgen.core.structure.Structure, migrating_specie: str, max_distance: float, **kwargs) pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph[source]

        Using a specific nn strategy to get the connectivity graph between all the migrating ion sites. :param max_distance: Maximum length of NEB path in the unit

        @@ -261,8 +268,8 @@

        Navigation

        -
        -classmethod with_local_env_strategy(structure: pymatgen.core.structure.Structure, migrating_specie: str, nn: pymatgen.analysis.local_env.NearNeighbors, **kwargs)pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph[source]
        +
        +classmethod with_local_env_strategy(structure: pymatgen.core.structure.Structure, migrating_specie: str, nn: pymatgen.analysis.local_env.NearNeighbors, **kwargs) pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph[source]

        Using a specific nn strategy to get the connectivity graph between all the migrating ion sites. :param structure: Input structure that contains all sites. :param migrating_specie: The specie that migrates. E.g. “Li”. @@ -277,14 +284,14 @@

        Navigation

        -
        -almost(a, b)[source]
        +
        +almost(a, b)[source]

        return true if the values are almost equal

        -
        -check_uc_hop(sc_hop, uc_hop)[source]
        +
        +check_uc_hop(sc_hop, uc_hop)[source]

        See if hop in the 2X2X2 supercell and a unit cell hop are equilvalent under lattice translation :param sc_hop: MigrationHop object form pymatgen-diffusion. @@ -298,8 +305,8 @@

        Navigation

        -
        -generic_groupby(list_in: list, comp: Callable = <built-in function eq>)[source]
        +
        +generic_groupby(list_in: list, comp: Callable = <built-in function eq>)[source]

        Group a list of unsortable objects :param list_in: A list of generic objects :param comp: (Default value = operator.eq) The comparator

        @@ -311,21 +318,23 @@

        Navigation

        -
        -get_hop_site_sequence(hop_list: List[Dict], start_u: Union[int, str])List[source]
        -

        Read in a list of hop dictionaries and print the sequence of sites. +

        +get_hop_site_sequence(hop_list: List[Dict], start_u: Union[int, str], key: Optional[str] = None) List[source]
        +

        Read in a list of hop dictionaries and print the sequence of sites (and relevant property values if any). :param hop_list: a list of the data on a sequence of hops -:param start_u: the site index of the starting sites

        +:param start_u: the site index of the starting sites +:param key: property to track in a hop (e.g.: “hop_distance”) +:type key: optional

        Returns
        -

        String representation of the hop sequence

        +

        String representation of the hop sequence (and property values if any)

        -
        -get_only_sites_from_structure(structure: pymatgen.core.structure.Structure, migrating_specie: str)pymatgen.core.structure.Structure[source]
        +
        +get_only_sites_from_structure(structure: pymatgen.core.structure.Structure, migrating_specie: str) pymatgen.core.structure.Structure[source]

        Get a copy of the structure with only the migrating sites. :param structure: The full_structure that contains all the sites :param migrating_specie: The name of migrating species

        @@ -340,8 +349,8 @@

        Navigation

        -
        -map_hop_sc2uc(sc_hop: pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop, mg: pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph)[source]
        +
        +map_hop_sc2uc(sc_hop: pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop, mg: pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph)[source]

        Map a given hop in the SC onto the UC. :param sc_hop: MigrationHop object form pymatgen-diffusion. :param mg: MigrationGraph object from pymatgen-diffusion.

        @@ -355,7 +364,25 @@

        Navigation

        -
        +
        +
        +order_path(hop_list: List[Dict], start_u: Union[int, str]) List[Dict][source]
        +

        Takes a list of hop dictionaries and flips hops (switches isite and esite) +as needed to form a coherent path / sequence of sites according to +get_hop_site_sequence(). +For example if hop_list = [{iindex:0, eindex:1, etc.}, {iindex:0, eindex:1, etc.}] +then the output is [{iindex:0, eindex:1, etc.}, {iindex:1, eindex:0, etc.}] so that +the following hop iindex matches the previous hop’s eindex. +:param hop_list: a list of the data on a sequence of hops +:param start_u: the site index of the starting sites

        +
        +
        Returns
        +

        a list of the data on a sequence of hops with hops in coherent orientation

        +
        +
        +
        + +
        @@ -379,7 +406,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.html b/docs/pymatgen.analysis.diffusion.neb.html index 84e96d7c..22b9ddc3 100644 --- a/docs/pymatgen.analysis.diffusion.neb.html +++ b/docs/pymatgen.analysis.diffusion.neb.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb package — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb package — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,14 +47,14 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb package

        -
        +

        Subpackages

        -
        -
        +
        +

        Submodules

        -
        -
        + +

        Module contents

        Analysis tools for NEB calculations, inlcuding pathway analysis.

        -
        -
        + +
        @@ -102,7 +103,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.io.html b/docs/pymatgen.analysis.diffusion.neb.io.html index b8bd6663..5c447561 100644 --- a/docs/pymatgen.analysis.diffusion.neb.io.html +++ b/docs/pymatgen.analysis.diffusion.neb.io.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb.io module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb.io module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb.io module

        Generate input fiels for NEB calculations.

        -
        -class MVLCINEBEndPointSet(structure, **kwargs)[source]
        +
        +class MVLCINEBEndPointSet(structure, **kwargs)[source]

        Bases: pymatgen.io.vasp.sets.MITRelaxSet

        Class for writing NEB end points relaxation inputs.

        @@ -65,8 +66,8 @@

        Navigation

        -
        -class MVLCINEBSet(structures, **kwargs)[source]
        +
        +class MVLCINEBSet(structures, **kwargs)[source]

        Bases: pymatgen.io.vasp.sets.MITNEBSet

        MAVRL-tested settings for CI-NEB calculations. Note that these parameters requires the VTST modification of VASP from the Henkelman group. See @@ -82,8 +83,8 @@

        Navigation

        -
        -get_endpoint_dist(ep_0, ep_1)[source]
        +
        +get_endpoint_dist(ep_0, ep_1)[source]

        Calculate a list of site distances between two endpoints, assuming periodic boundary conditions. :param ep_0: the first endpoint structure. @@ -101,8 +102,8 @@

        Navigation

        -
        -get_endpoints_from_index(structure, site_indices)[source]
        +
        +get_endpoints_from_index(structure, site_indices)[source]

        This class reads in one perfect structure and the two endpoint structures are generated using site_indices.

        @@ -125,7 +126,7 @@

        Navigation

        -
        +
        @@ -149,7 +150,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.pathfinder.html b/docs/pymatgen.analysis.diffusion.neb.pathfinder.html index a53939cf..792d8e5a 100644 --- a/docs/pymatgen.analysis.diffusion.neb.pathfinder.html +++ b/docs/pymatgen.analysis.diffusion.neb.pathfinder.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb.pathfinder module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb.pathfinder module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb.pathfinder module

        Algorithms for NEB migration path analysis.

        -
        -class DistinctPathFinder(structure, migrating_specie, max_path_length=None, symprec=0.1, perc_mode='>1d')[source]
        +
        +class DistinctPathFinder(structure, migrating_specie, max_path_length=None, symprec=0.1, perc_mode='>1d')[source]

        Bases: object

        Determines symmetrically distinct paths between existing sites. The path info can then be used to set up either vacancy or interstitial @@ -74,8 +75,8 @@

        Navigation

        -
        -get_paths()[source]
        +
        +get_paths()[source]
        Returns

        [MigrationHop] All distinct migration paths.

        @@ -84,8 +85,8 @@

        Navigation

        -
        -write_all_paths(fname, nimages=5, **kwargs)[source]
        +
        +write_all_paths(fname, nimages=5, **kwargs)[source]

        Write a file containing all paths, using hydrogen as a placeholder for the images. H is chosen as it is the smallest atom. This is extremely useful for path visualization in a standard software like VESTA.

        @@ -103,8 +104,8 @@

        Navigation

        -
        -class IDPPSolver(structures)[source]
        +
        +class IDPPSolver(structures)[source]

        Bases: object

        A solver using image dependent pair potential (IDPP) algo to get an improved initial NEB path. For more details about this algo, please refer to @@ -117,8 +118,8 @@

        Navigation

        -
        -classmethod from_endpoints(endpoints, nimages=5, sort_tol=1.0)[source]
        +
        +classmethod from_endpoints(endpoints, nimages=5, sort_tol=1.0)[source]

        A class method that starts with end-point structures instead. The initial guess for the IDPP algo is then constructed using linear interpolation.

        @@ -136,15 +137,15 @@

        Navigation

        -
        -static get_unit_vector(vec)[source]
        +
        +static get_unit_vector(vec)[source]

        Calculate the unit vector of a vector. :param vec: Vector.

        -
        -run(maxiter=1000, tol=1e-05, gtol=0.001, step_size=0.05, max_disp=0.05, spring_const=5.0, species=None)[source]
        +
        +run(maxiter=1000, tol=1e-05, gtol=0.001, step_size=0.05, max_disp=0.05, spring_const=5.0, species=None)[source]

        Perform iterative minimization of the set of objective functions in an NEB-like manner. In each iteration, the total force matrix for each image is constructed, which comprises both the spring forces and true @@ -178,8 +179,8 @@

        Navigation

        -
        -class MigrationHop(isite: pymatgen.core.sites.Site, esite: pymatgen.core.sites.Site, symm_structure: pymatgen.symmetry.structure.SymmetrizedStructure, symprec: float = 0.001)[source]
        +
        +class MigrationHop(isite: pymatgen.core.sites.Site, esite: pymatgen.core.sites.Site, symm_structure: pymatgen.symmetry.structure.SymmetrizedStructure, host_symm_struct: Optional[pymatgen.symmetry.structure.SymmetrizedStructure] = None, symprec: float = 0.001)[source]

        Bases: monty.json.MSONable

        A convenience container representing a migration path.

        @@ -188,13 +189,14 @@

        Navigation

      • isite – Initial site

      • esite – End site

      • symm_structure – SymmetrizedStructure

      • +
      • host_symm_struct – SymmetrizedStructure of the host structure, used to for its spacegroup

      • symprec – used to determine equivalence

      • -
        -get_sc_structures(vac_mode: bool, min_atoms: int = 80, max_atoms: int = 240, min_length: float = 10.0)Tuple[pymatgen.core.structure.Structure, pymatgen.core.structure.Structure, pymatgen.core.structure.Structure][source]
        +
        +get_sc_structures(vac_mode: bool, min_atoms: int = 80, max_atoms: int = 240, min_length: float = 10.0) Tuple[pymatgen.core.structure.Structure, pymatgen.core.structure.Structure, pymatgen.core.structure.Structure][source]

        Construct supercells that represents the start and end positions for migration analysis.

        Parameters
        @@ -215,8 +217,8 @@

        Navigation

        -
        -get_structures(nimages=5, vac_mode=True, idpp=False, **idpp_kwargs)[source]
        +
        +get_structures(nimages=5, vac_mode=True, idpp=False, **idpp_kwargs)[source]

        Generate structures for NEB calculation.

        Parameters
        @@ -248,16 +250,16 @@

        Navigation

        -
        -
        -property length
        +
        +
        +property length

        Returns: (float) Length of migration path.

        -
        -write_path(fname, **kwargs)[source]
        +
        +write_path(fname, **kwargs)[source]

        Write the path to a file for easy viewing.

        Parameters
        @@ -271,7 +273,7 @@

        Navigation

        -
        +
        @@ -295,7 +297,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.periodic_dijkstra.html b/docs/pymatgen.analysis.diffusion.neb.periodic_dijkstra.html index aadc9531..80b3692c 100644 --- a/docs/pymatgen.analysis.diffusion.neb.periodic_dijkstra.html +++ b/docs/pymatgen.analysis.diffusion.neb.periodic_dijkstra.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb.periodic_dijkstra module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb.periodic_dijkstra module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,18 +47,18 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb.periodic_dijkstra module

        Dijkstra’s path search on a graph where the nodes are on a periodic graph

        -
        -get_optimal_pathway_rev(path_parent: dict, leaf_node: tuple)[source]
        +
        +get_optimal_pathway_rev(path_parent: dict, leaf_node: tuple)[source]

        follow a leaf node all the way up to source.

        -
        -periodic_dijkstra(G: networkx.classes.graph.Graph, sources: set, weight: str = 'weight', max_image: int = 2, target_reached: Callable = <function <lambda>>)[source]
        +
        +periodic_dijkstra(G: networkx.classes.graph.Graph, sources: set, weight: str = 'weight', max_image: int = 2, target_reached: Callable = <function <lambda>>)[source]

        Find the lowest cost pathway from a source point in the periodic graph. Since the search can move many cells away without finding the target we have to limit how many cells away from (0,0,0) to search.

        @@ -85,8 +86,8 @@

        Navigation

        -
        -periodic_dijkstra_on_sgraph(sgraph: pymatgen.analysis.graphs.StructureGraph, sources: Set, weight: str = 'weight', max_image: int = 1, target_reached: Callable = <function <lambda>>)[source]
        +
        +periodic_dijkstra_on_sgraph(sgraph: pymatgen.analysis.graphs.StructureGraph, sources: Set, weight: str = 'weight', max_image: int = 1, target_reached: Callable = <function <lambda>>)[source]

        Find the lowest cost pathway from a source point in the periodic graph. Since the search can move many cells away without finding the target we have to limit how many cells away from (0,0,0) to search.

        @@ -112,7 +113,7 @@

        Navigation

        -
        +
        @@ -136,7 +137,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.html b/docs/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.html index 2d75e68a..70658af1 100644 --- a/docs/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.html +++ b/docs/pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,35 +47,35 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper module

        -
        -class ChargeBarrierGraphTest(methodName='runTest')[source]
        +
        +class ChargeBarrierGraphTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -setUp()[source]
        +
        +setUp()[source]

        Hook method for setting up the test fixture before exercising it.

        -
        -test_get_summary_dict()[source]
        +
        +test_get_summary_dict()[source]
        -
        -test_integration()[source]
        +
        +test_integration()[source]

        Sanity check: for a long enough diagonaly hop, if we turn the radius of the tube way up, it should cover the entire unit cell

        -
        -test_populate_edges_with_chg_density_info()[source]
        +
        +test_populate_edges_with_chg_density_info()[source]

        Test that all of the sites with similar lengths have similar charge densities, this will not always be true, but it valid in this Mn6O5F7

        @@ -82,109 +83,119 @@

        Navigation

        -
        -class MigrationGraphComplexTest(methodName='runTest')[source]
        +
        +class MigrationGraphComplexTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -setUp()[source]
        +
        +setUp()[source]

        Hook method for setting up the test fixture before exercising it.

        -
        -test_add_data_to_similar_edges()[source]
        +
        +test_add_data_to_similar_edges()[source]
        +
        + +
        +
        +test_assign_cost_to_graph()[source]
        -
        -test_assign_cost_to_graph()[source]
        +
        +test_get_key_in_path()[source]
        -
        -test_get_path()[source]
        +
        +test_get_path()[source]
        -
        -test_group_and_label_hops()[source]
        +
        +test_group_and_label_hops()[source]

        Check that the set of end points in a group of similiarly labeled hops are all the same

        -
        -test_not_matching_first()[source]
        +
        +test_not_matching_first()[source]
        -
        -test_periodic_dijkstra()[source]
        +
        +test_order_path()[source]
        -
        -test_unique_hops_dict()[source]
        +
        +test_periodic_dijkstra()[source]
        +
        + +
        +
        +test_unique_hops_dict()[source]

        Check that the unique hops are inequilvalent

        -
        -class MigrationGraphFromEntriesTest(methodName='runTest')[source]
        +
        +class MigrationGraphFromEntriesTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -setUp()[source]
        +
        +setUp()[source]

        Hook method for setting up the test fixture before exercising it.

        -
        -test_m_graph_construction()[source]
        +
        +test_m_graph_construction()[source]
        -
        -test_m_graph_from_entries_failed()[source]
        +
        +test_m_graph_from_entries_failed()[source]
        -
        -class MigrationGraphSimpleTest(methodName='runTest')[source]
        +
        +class MigrationGraphSimpleTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -setUp()[source]
        +
        +setUp()[source]

        Hook method for setting up the test fixture before exercising it.

        -
        -test_get_pos_and_migration_hop()[source]
        +
        +test_get_pos_and_migration_hop()[source]

        Make sure that we can populate the graph with MigrationHop Objects

        -
        -test_get_summary_dict()[source]
        +
        +test_get_summary_dict()[source]
        -
        +
        @@ -208,7 +219,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.tests.test_io.html b/docs/pymatgen.analysis.diffusion.neb.tests.test_io.html index 5d07bd3b..c3bd2d46 100644 --- a/docs/pymatgen.analysis.diffusion.neb.tests.test_io.html +++ b/docs/pymatgen.analysis.diffusion.neb.tests.test_io.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb.tests.test_io module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb.tests.test_io module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,87 +47,87 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb.tests.test_io module

        -
        -class MVLCINEBEndPointSetTest(methodName='runTest')[source]
        +
        +class MVLCINEBEndPointSetTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -endpoint = Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, 0.0000, 0.0000) [0.0000, 0.0000, 0.0000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628]
        +
        +endpoint = Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, 0.0000, 0.0000) [0.0000, 0.0000, 0.0000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (-0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (-0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (-0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628]
        -
        -test_incar()[source]
        +
        +test_incar()[source]
        -
        -test_incar_user_setting()[source]
        +
        +test_incar_user_setting()[source]
        -
        -class MVLCINEBSetTest(methodName='runTest')[source]
        +
        +class MVLCINEBSetTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -structures = [Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, 0.0000, 0.0000) [0.0000, 0.0000, 0.0000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628], Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, -5.0893, 1.8955) [0.2500, 0.2500, 0.2500] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628], Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, -10.1787, 3.7910) [0.5000, 0.5000, 0.5000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628]]
        +
        +structures = [Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, 0.0000, 0.0000) [0.0000, 0.0000, 0.0000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (-0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (-0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (-0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628], Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, -5.0893, 1.8955) [0.2500, 0.2500, 0.2500] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (-0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628], Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, -10.1787, 3.7910) [0.5000, 0.5000, 0.5000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (-0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (-0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (-0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628]]
        -
        -test_incar()[source]
        +
        +test_incar()[source]
        -
        -test_incar_user_setting()[source]
        +
        +test_incar_user_setting()[source]
        -
        -class UtilityTest(methodName='runTest')[source]
        +
        +class UtilityTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Unit test for outside methods in io.py

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -structure = Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, 0.0000, 0.0000) [0.0000, 0.0000, 0.0000] PeriodicSite: Na (0.0000, -10.1787, 3.7910) [0.5000, 0.5000, 0.5000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628]
        +
        +structure = Structure Summary Lattice     abc : 8.815000056846058 8.815000056846058 9.131710473490111  angles : 61.14080369885537 61.14080369885537 59.9999995733517  volume : 510.2218449146199       A : -4.4075 -7.634014 -0.0       B : 4.4075 -7.634014 0.0       C : -0.0 -5.089343 7.582 PeriodicSite: Na (0.0000, 0.0000, 0.0000) [0.0000, 0.0000, 0.0000] PeriodicSite: Na (0.0000, -10.1787, 3.7910) [0.5000, 0.5000, 0.5000] PeriodicSite: Zr (0.0000, -10.1787, 0.4774) [0.6457, 0.6457, 0.0630] PeriodicSite: Zr (-0.0000, -5.0893, 4.2684) [0.1457, 0.1457, 0.5630] PeriodicSite: Zr (-0.0000, -10.1787, 7.1046) [0.3543, 0.3543, 0.9370] PeriodicSite: Zr (-0.0000, -15.2680, 3.3136) [0.8543, 0.8543, 0.4370] PeriodicSite: P (-1.8370, -7.6340, 5.6865) [0.4584, 0.0416, 0.7500] PeriodicSite: P (3.1223, -9.8601, 5.6865) [0.0416, 0.7500, 0.7500] PeriodicSite: P (-1.2852, -13.0419, 5.6865) [0.7500, 0.4584, 0.7500] PeriodicSite: P (-3.1223, -10.4973, 1.8955) [0.9584, 0.2500, 0.2500] PeriodicSite: P (1.2852, -7.3154, 1.8955) [0.2500, 0.5416, 0.2500] PeriodicSite: P (1.8370, -12.7234, 1.8955) [0.5416, 0.9584, 0.2500] PeriodicSite: O (1.6956, -15.1421, 6.9239) [0.4950, 0.8797, 0.9132] PeriodicSite: O (-0.7387, -16.7994, 6.9239) [0.8797, 0.7121, 0.9132] PeriodicSite: O (-0.9569, -13.8626, 6.9239) [0.7121, 0.4950, 0.9132] PeriodicSite: O (-3.4506, -11.3179, 3.1329) [0.9950, 0.2121, 0.4132] PeriodicSite: O (0.7387, -6.6207, 3.1329) [0.2121, 0.3797, 0.4132] PeriodicSite: O (2.7119, -12.5974, 3.1329) [0.3797, 0.9950, 0.4132] PeriodicSite: O (-1.6956, -5.2153, 0.6581) [0.5050, 0.1203, 0.0868] PeriodicSite: O (0.7387, -3.5580, 0.6581) [0.1203, 0.2879, 0.0868] PeriodicSite: O (0.9569, -6.4948, 0.6581) [0.2879, 0.5050, 0.0868] PeriodicSite: O (3.4506, -9.0394, 4.4491) [0.0050, 0.7879, 0.5868] PeriodicSite: O (-0.7387, -13.7366, 4.4491) [0.7879, 0.6203, 0.5868] PeriodicSite: O (-2.7119, -7.7600, 4.4491) [0.6203, 0.0050, 0.5868] PeriodicSite: O (0.9463, -11.4574, 1.7985) [0.5640, 0.7787, 0.2372] PeriodicSite: O (-1.5805, -10.3588, 1.7985) [0.7787, 0.4201, 0.2372] PeriodicSite: O (0.6342, -8.7198, 1.7985) [0.4201, 0.5640, 0.2372] PeriodicSite: O (3.7733, -11.2645, 5.5895) [0.0640, 0.9201, 0.7372] PeriodicSite: O (-2.8270, -12.9035, 5.5895) [0.9201, 0.2787, 0.7372] PeriodicSite: O (-0.9463, -6.3680, 5.5895) [0.2787, 0.0640, 0.7372] PeriodicSite: O (-0.9463, -8.9000, 5.7835) [0.4360, 0.2213, 0.7628] PeriodicSite: O (1.5805, -9.9985, 5.7835) [0.2213, 0.5799, 0.7628] PeriodicSite: O (-0.6342, -11.6375, 5.7835) [0.5799, 0.4360, 0.7628] PeriodicSite: O (-3.7733, -9.0929, 1.9925) [0.9360, 0.0799, 0.2628] PeriodicSite: O (2.8270, -7.4539, 1.9925) [0.0799, 0.7213, 0.2628] PeriodicSite: O (0.9463, -13.9893, 1.9925) [0.7213, 0.9360, 0.2628]
        -
        -test_get_endpoint_dist()[source]
        +
        +test_get_endpoint_dist()[source]
        -
        -test_get_endpoints_from_index()[source]
        +
        +test_get_endpoints_from_index()[source]
        -
        -get_path(path_str, dirname='./')[source]
        +
        +get_path(path_str, dirname='./')[source]
        -
        +
        @@ -150,7 +151,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.html b/docs/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.html index a4c44d4e..603437a7 100644 --- a/docs/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.html +++ b/docs/pymatgen.analysis.diffusion.neb.tests.test_pathfinder.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.neb.tests.test_pathfinder module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.neb.tests.test_pathfinder module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,92 +47,97 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.neb.tests.test_pathfinder module

        -
        -class DistinctPathFinderTest(methodName='runTest')[source]
        +
        +class DistinctPathFinderTest(methodName='runTest')[source]

        Bases: pymatgen.util.testing.PymatgenTest

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_get_paths()[source]
        +
        +test_get_paths()[source]
        -
        -test_max_path_length()[source]
        +
        +test_max_path_length()[source]
        -
        -class IDPPSolverTest(methodName='runTest')[source]
        +
        +class IDPPSolverTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -final_struct = Structure Summary Lattice     abc : 10.411723299877 12.0783517723596 9.47759961582329  angles : 90.0 90.0 90.0  volume : 1191.8693444977544       A : 10.411723299877 0.0 0.0       B : 0.0 12.0783517723596 0.0       C : 0.0 0.0 9.47759961582329 PeriodicSite: Li (5.1847, 6.1822, 2.4175) [0.4980, 0.5118, 0.2551] PeriodicSite: Li (5.2270, 11.9354, 2.3213) [0.5020, 0.9882, 0.2449] PeriodicSite: Li (5.1817, 12.0665, 7.0846) [0.4977, 0.9990, 0.7475] PeriodicSite: Li (5.2300, 6.0511, 7.1318) [0.5023, 0.5010, 0.7525] PeriodicSite: Li (0.0005, 3.0181, 0.0043) [0.0000, 0.2499, 0.0005] PeriodicSite: Li (10.4112, 3.0211, 4.7345) [1.0000, 0.2501, 0.4995] PeriodicSite: Li (10.4061, 9.0584, 0.0031) [0.9995, 0.7500, 0.0003] PeriodicSite: Li (0.0057, 9.0592, 4.7357) [0.0005, 0.7500, 0.4997] PeriodicSite: Li (5.2059, 3.0196, 2.3694) [0.5000, 0.2500, 0.2500] PeriodicSite: Li (5.2059, 3.0196, 7.1082) [0.5000, 0.2500, 0.7500] PeriodicSite: Li (5.2059, 9.0588, 7.1082) [0.5000, 0.7500, 0.7500] PeriodicSite: Li (10.4087, 12.0648, 0.0085) [0.9997, 0.9989, 0.0009] PeriodicSite: Li (0.0032, 12.0741, 4.7383) [0.0003, 0.9996, 0.5000] PeriodicSite: Li (10.4086, 6.0435, 0.0005) [0.9997, 0.5004, 0.0000] PeriodicSite: Li (0.0030, 6.0527, 4.7303) [0.0003, 0.5011, 0.4991] PeriodicSite: Fe (8.1412, 1.5110, 2.4871) [0.7819, 0.1251, 0.2624] PeriodicSite: Fe (8.1407, 1.5063, 7.2279) [0.7819, 0.1247, 0.7626] PeriodicSite: Fe (8.1001, 7.5688, 2.4722) [0.7780, 0.6266, 0.2608] PeriodicSite: Fe (8.1373, 7.5452, 7.2347) [0.7816, 0.6247, 0.7633] PeriodicSite: Fe (2.9469, 1.5019, 4.6127) [0.2830, 0.1243, 0.4867] PeriodicSite: Fe (2.9383, 1.5040, 9.3553) [0.2822, 0.1245, 0.9871] PeriodicSite: Fe (2.9571, 7.5783, 4.6085) [0.2840, 0.6274, 0.4863] PeriodicSite: Fe (2.9595, 7.5654, 9.3806) [0.2842, 0.6264, 0.9898] PeriodicSite: Fe (2.2705, 4.5282, 2.2517) [0.2181, 0.3749, 0.2376] PeriodicSite: Fe (2.2711, 4.5329, 6.9885) [0.2181, 0.3753, 0.7374] PeriodicSite: Fe (2.3116, 10.5488, 2.2666) [0.2220, 0.8734, 0.2392] PeriodicSite: Fe (2.2744, 10.5723, 6.9817) [0.2184, 0.8753, 0.7367] PeriodicSite: Fe (7.4648, 4.5373, 0.1261) [0.7170, 0.3757, 0.0133] PeriodicSite: Fe (7.4734, 4.5352, 4.8611) [0.7178, 0.3755, 0.5129] PeriodicSite: Fe (7.4547, 10.5392, 0.1303) [0.7160, 0.8726, 0.0137] PeriodicSite: Fe (7.4522, 10.5521, 4.8358) [0.7158, 0.8736, 0.5102] PeriodicSite: P (6.1978, 1.5072, 0.3753) [0.5953, 0.1248, 0.0396] PeriodicSite: P (6.2113, 1.5136, 5.1114) [0.5966, 0.1253, 0.5393] PeriodicSite: P (6.1961, 7.5476, 0.3633) [0.5951, 0.6249, 0.0383] PeriodicSite: P (6.2203, 7.5145, 5.1196) [0.5974, 0.6221, 0.5402] PeriodicSite: P (0.9887, 1.5041, 1.9896) [0.0950, 0.1245, 0.2099] PeriodicSite: P (0.9865, 1.5133, 6.7275) [0.0948, 0.1253, 0.7098] PeriodicSite: P (0.9818, 7.5439, 1.9926) [0.0943, 0.6246, 0.2102] PeriodicSite: P (0.9911, 7.5461, 6.7377) [0.0952, 0.6248, 0.7109] PeriodicSite: P (4.2139, 4.5319, 4.3635) [0.4047, 0.3752, 0.4604] PeriodicSite: P (4.2004, 4.5256, 9.1050) [0.4034, 0.3747, 0.9607] PeriodicSite: P (4.2156, 10.5699, 4.3756) [0.4049, 0.8751, 0.4617] PeriodicSite: P (4.1914, 10.6030, 9.0968) [0.4026, 0.8779, 0.9598] PeriodicSite: P (9.4230, 4.5351, 2.7492) [0.9050, 0.3755, 0.2901] PeriodicSite: P (9.4252, 4.5259, 7.4889) [0.9053, 0.3747, 0.7902] PeriodicSite: P (9.4299, 10.5737, 2.7462) [0.9057, 0.8754, 0.2898] PeriodicSite: P (9.4207, 10.5714, 7.4786) [0.9048, 0.8752, 0.7891] PeriodicSite: O (6.2228, 1.5268, 3.5773) [0.5977, 0.1264, 0.3775] PeriodicSite: O (6.2093, 1.5125, 8.3155) [0.5964, 0.1252, 0.8774] PeriodicSite: O (6.2747, 7.4398, 3.6014) [0.6027, 0.6160, 0.3800] PeriodicSite: O (6.2119, 7.5449, 8.2933) [0.5966, 0.6247, 0.8750] PeriodicSite: O (0.9902, 1.5124, 3.5258) [0.0951, 0.1252, 0.3720] PeriodicSite: O (0.9889, 1.5120, 8.2636) [0.0950, 0.1252, 0.8719] PeriodicSite: O (0.9898, 7.5475, 3.5295) [0.0951, 0.6249, 0.3724] PeriodicSite: O (0.9929, 7.5401, 8.2739) [0.0954, 0.6243, 0.8730] PeriodicSite: O (4.1889, 4.5124, 1.1615) [0.4023, 0.3736, 0.1225] PeriodicSite: O (4.2024, 4.5266, 5.9009) [0.4036, 0.3748, 0.6226] PeriodicSite: O (4.1370, 10.6778, 1.1374) [0.3973, 0.8840, 0.1200] PeriodicSite: O (4.1999, 10.5726, 5.9231) [0.4034, 0.8753, 0.6250] PeriodicSite: O (9.4215, 4.5268, 1.2130) [0.9049, 0.3748, 0.1280] PeriodicSite: O (9.4228, 4.5272, 5.9528) [0.9050, 0.3748, 0.6281] PeriodicSite: O (9.4220, 10.5700, 1.2093) [0.9049, 0.8751, 0.1276] PeriodicSite: O (9.4189, 10.5774, 5.9425) [0.9046, 0.8757, 0.6270] PeriodicSite: O (9.9678, 1.5135, 1.3791) [0.9574, 0.1253, 0.1455] PeriodicSite: O (9.9659, 1.5224, 6.1189) [0.9572, 0.1260, 0.6456] PeriodicSite: O (9.9630, 7.5428, 1.3832) [0.9569, 0.6245, 0.1459] PeriodicSite: O (9.9719, 7.5406, 6.1245) [0.9578, 0.6243, 0.6462] PeriodicSite: O (4.7657, 1.5202, 0.9751) [0.4577, 0.1259, 0.1029] PeriodicSite: O (4.7779, 1.5132, 5.7181) [0.4589, 0.1253, 0.6033] PeriodicSite: O (4.7627, 7.5033, 0.9219) [0.4574, 0.6212, 0.0973] PeriodicSite: O (4.7799, 7.5423, 5.7118) [0.4591, 0.6244, 0.6027] PeriodicSite: O (0.4439, 4.5256, 3.3597) [0.0426, 0.3747, 0.3545] PeriodicSite: O (0.4458, 4.5167, 8.0975) [0.0428, 0.3740, 0.8544] PeriodicSite: O (0.4487, 10.5747, 3.3556) [0.0431, 0.8755, 0.3541] PeriodicSite: O (0.4398, 10.5769, 8.0919) [0.0422, 0.8757, 0.8538] PeriodicSite: O (5.6461, 4.5190, 3.7637) [0.5423, 0.3741, 0.3971] PeriodicSite: O (5.6338, 4.5260, 8.4983) [0.5411, 0.3747, 0.8967] PeriodicSite: O (5.6490, 10.6142, 3.8169) [0.5426, 0.8788, 0.4027] PeriodicSite: O (5.6318, 10.5752, 8.5046) [0.5409, 0.8756, 0.8973] PeriodicSite: O (6.9383, 0.2665, 0.9991) [0.6664, 0.0221, 0.1054] PeriodicSite: O (6.9618, 0.2813, 5.7394) [0.6687, 0.0233, 0.6056] PeriodicSite: O (6.9424, 6.2988, 0.9884) [0.6668, 0.5215, 0.1043] PeriodicSite: O (6.9414, 6.2829, 5.8049) [0.6667, 0.5202, 0.6125] PeriodicSite: O (1.7379, 2.7394, 1.3635) [0.1669, 0.2268, 0.1439] PeriodicSite: O (1.7390, 2.7463, 6.1020) [0.1670, 0.2274, 0.6438] PeriodicSite: O (1.7293, 8.7758, 1.3621) [0.1661, 0.7266, 0.1437] PeriodicSite: O (1.7278, 8.7874, 6.1173) [0.1659, 0.7275, 0.6454] PeriodicSite: O (3.4593, 3.2999, 3.7365) [0.3322, 0.2732, 0.3942] PeriodicSite: O (3.4611, 3.2876, 8.4676) [0.3324, 0.2722, 0.8934] PeriodicSite: O (3.3893, 9.3739, 3.7965) [0.3255, 0.7761, 0.4006] PeriodicSite: O (3.4444, 9.3601, 8.4821) [0.3308, 0.7749, 0.8950] PeriodicSite: O (8.6876, 5.7754, 3.3730) [0.8344, 0.4782, 0.3559] PeriodicSite: O (8.6907, 5.7645, 8.1192) [0.8347, 0.4773, 0.8567] PeriodicSite: O (8.6853, 11.8141, 3.3664) [0.8342, 0.9781, 0.3552] PeriodicSite: O (8.6685, 11.8020, 8.1098) [0.8326, 0.9771, 0.8557] PeriodicSite: O (3.4734, 5.7727, 3.7397) [0.3336, 0.4779, 0.3946] PeriodicSite: O (3.4499, 5.7579, 8.4770) [0.3313, 0.4767, 0.8944] PeriodicSite: O (3.4693, 11.8187, 3.7504) [0.3332, 0.9785, 0.3957] PeriodicSite: O (3.4703, 11.8347, 8.4115) [0.3333, 0.9798, 0.8875] PeriodicSite: O (8.6738, 3.2998, 3.3753) [0.8331, 0.2732, 0.3561] PeriodicSite: O (8.6727, 3.2929, 8.1143) [0.8330, 0.2726, 0.8562] PeriodicSite: O (8.6824, 9.3417, 3.3767) [0.8339, 0.7734, 0.3563] PeriodicSite: O (8.6840, 9.3302, 8.0991) [0.8341, 0.7725, 0.8546] PeriodicSite: O (6.9525, 2.7393, 1.0023) [0.6678, 0.2268, 0.1058] PeriodicSite: O (6.9506, 2.7516, 5.7488) [0.6676, 0.2278, 0.6066] PeriodicSite: O (7.0224, 8.7437, 0.9423) [0.6745, 0.7239, 0.0994] PeriodicSite: O (6.9673, 8.7574, 5.7343) [0.6692, 0.7251, 0.6050] PeriodicSite: O (1.7242, 0.2638, 1.3658) [0.1656, 0.0218, 0.1441] PeriodicSite: O (1.7210, 0.2747, 6.0972) [0.1653, 0.0227, 0.6433] PeriodicSite: O (1.7264, 6.3034, 1.3724) [0.1658, 0.5219, 0.1448] PeriodicSite: O (1.7432, 6.3156, 6.1066) [0.1674, 0.5229, 0.6443]
        +
        +final_struct = Structure Summary Lattice     abc : 10.411723299877 12.0783517723596 9.47759961582329  angles : 90.0 90.0 90.0  volume : 1191.8693444977544       A : 10.411723299877 0.0 0.0       B : 0.0 12.0783517723596 0.0       C : 0.0 0.0 9.47759961582329 PeriodicSite: Li (5.1847, 6.1822, 2.4175) [0.4980, 0.5118, 0.2551] PeriodicSite: Li (5.2270, 11.9354, 2.3213) [0.5020, 0.9882, 0.2449] PeriodicSite: Li (5.1817, 12.0665, 7.0846) [0.4977, 0.9990, 0.7475] PeriodicSite: Li (5.2300, 6.0511, 7.1318) [0.5023, 0.5010, 0.7525] PeriodicSite: Li (0.0005, 3.0181, 0.0043) [0.0000, 0.2499, 0.0005] PeriodicSite: Li (10.4112, 3.0211, 4.7345) [1.0000, 0.2501, 0.4995] PeriodicSite: Li (10.4061, 9.0584, 0.0031) [0.9995, 0.7500, 0.0003] PeriodicSite: Li (0.0057, 9.0592, 4.7357) [0.0005, 0.7500, 0.4997] PeriodicSite: Li (5.2059, 3.0196, 2.3694) [0.5000, 0.2500, 0.2500] PeriodicSite: Li (5.2059, 3.0196, 7.1082) [0.5000, 0.2500, 0.7500] PeriodicSite: Li (5.2059, 9.0588, 7.1082) [0.5000, 0.7500, 0.7500] PeriodicSite: Li (10.4087, 12.0648, 0.0085) [0.9997, 0.9989, 0.0009] PeriodicSite: Li (0.0032, 12.0741, 4.7383) [0.0003, 0.9996, 0.5000] PeriodicSite: Li (10.4086, 6.0435, 0.0005) [0.9997, 0.5004, 0.0000] PeriodicSite: Li (0.0030, 6.0527, 4.7303) [0.0003, 0.5011, 0.4991] PeriodicSite: Fe (8.1412, 1.5110, 2.4871) [0.7819, 0.1251, 0.2624] PeriodicSite: Fe (8.1407, 1.5063, 7.2279) [0.7819, 0.1247, 0.7626] PeriodicSite: Fe (8.1001, 7.5688, 2.4722) [0.7780, 0.6266, 0.2608] PeriodicSite: Fe (8.1373, 7.5452, 7.2347) [0.7816, 0.6247, 0.7633] PeriodicSite: Fe (2.9469, 1.5019, 4.6127) [0.2830, 0.1243, 0.4867] PeriodicSite: Fe (2.9383, 1.5040, 9.3553) [0.2822, 0.1245, 0.9871] PeriodicSite: Fe (2.9571, 7.5783, 4.6085) [0.2840, 0.6274, 0.4863] PeriodicSite: Fe (2.9595, 7.5654, 9.3806) [0.2842, 0.6264, 0.9898] PeriodicSite: Fe (2.2705, 4.5282, 2.2517) [0.2181, 0.3749, 0.2376] PeriodicSite: Fe (2.2711, 4.5329, 6.9885) [0.2181, 0.3753, 0.7374] PeriodicSite: Fe (2.3116, 10.5488, 2.2666) [0.2220, 0.8734, 0.2392] PeriodicSite: Fe (2.2744, 10.5723, 6.9817) [0.2184, 0.8753, 0.7367] PeriodicSite: Fe (7.4648, 4.5373, 0.1261) [0.7170, 0.3757, 0.0133] PeriodicSite: Fe (7.4734, 4.5352, 4.8611) [0.7178, 0.3755, 0.5129] PeriodicSite: Fe (7.4547, 10.5392, 0.1303) [0.7160, 0.8726, 0.0137] PeriodicSite: Fe (7.4522, 10.5521, 4.8358) [0.7158, 0.8736, 0.5102] PeriodicSite: P (6.1978, 1.5072, 0.3753) [0.5953, 0.1248, 0.0396] PeriodicSite: P (6.2113, 1.5136, 5.1114) [0.5966, 0.1253, 0.5393] PeriodicSite: P (6.1961, 7.5476, 0.3633) [0.5951, 0.6249, 0.0383] PeriodicSite: P (6.2203, 7.5145, 5.1196) [0.5974, 0.6221, 0.5402] PeriodicSite: P (0.9887, 1.5041, 1.9896) [0.0950, 0.1245, 0.2099] PeriodicSite: P (0.9865, 1.5133, 6.7275) [0.0948, 0.1253, 0.7098] PeriodicSite: P (0.9818, 7.5439, 1.9926) [0.0943, 0.6246, 0.2102] PeriodicSite: P (0.9911, 7.5461, 6.7377) [0.0952, 0.6248, 0.7109] PeriodicSite: P (4.2139, 4.5319, 4.3635) [0.4047, 0.3752, 0.4604] PeriodicSite: P (4.2004, 4.5256, 9.1050) [0.4034, 0.3747, 0.9607] PeriodicSite: P (4.2156, 10.5699, 4.3756) [0.4049, 0.8751, 0.4617] PeriodicSite: P (4.1914, 10.6030, 9.0968) [0.4026, 0.8779, 0.9598] PeriodicSite: P (9.4230, 4.5351, 2.7492) [0.9050, 0.3755, 0.2901] PeriodicSite: P (9.4252, 4.5259, 7.4889) [0.9053, 0.3747, 0.7902] PeriodicSite: P (9.4299, 10.5737, 2.7462) [0.9057, 0.8754, 0.2898] PeriodicSite: P (9.4207, 10.5714, 7.4786) [0.9048, 0.8752, 0.7891] PeriodicSite: O (6.2228, 1.5268, 3.5773) [0.5977, 0.1264, 0.3775] PeriodicSite: O (6.2093, 1.5125, 8.3155) [0.5964, 0.1252, 0.8774] PeriodicSite: O (6.2747, 7.4398, 3.6014) [0.6027, 0.6160, 0.3800] PeriodicSite: O (6.2119, 7.5449, 8.2933) [0.5966, 0.6247, 0.8750] PeriodicSite: O (0.9902, 1.5124, 3.5258) [0.0951, 0.1252, 0.3720] PeriodicSite: O (0.9889, 1.5120, 8.2636) [0.0950, 0.1252, 0.8719] PeriodicSite: O (0.9898, 7.5475, 3.5295) [0.0951, 0.6249, 0.3724] PeriodicSite: O (0.9929, 7.5401, 8.2739) [0.0954, 0.6243, 0.8730] PeriodicSite: O (4.1889, 4.5124, 1.1615) [0.4023, 0.3736, 0.1225] PeriodicSite: O (4.2024, 4.5266, 5.9009) [0.4036, 0.3748, 0.6226] PeriodicSite: O (4.1370, 10.6778, 1.1374) [0.3973, 0.8840, 0.1200] PeriodicSite: O (4.1999, 10.5726, 5.9231) [0.4034, 0.8753, 0.6250] PeriodicSite: O (9.4215, 4.5268, 1.2130) [0.9049, 0.3748, 0.1280] PeriodicSite: O (9.4228, 4.5272, 5.9528) [0.9050, 0.3748, 0.6281] PeriodicSite: O (9.4220, 10.5700, 1.2093) [0.9049, 0.8751, 0.1276] PeriodicSite: O (9.4189, 10.5774, 5.9425) [0.9046, 0.8757, 0.6270] PeriodicSite: O (9.9678, 1.5135, 1.3791) [0.9574, 0.1253, 0.1455] PeriodicSite: O (9.9659, 1.5224, 6.1189) [0.9572, 0.1260, 0.6456] PeriodicSite: O (9.9630, 7.5428, 1.3832) [0.9569, 0.6245, 0.1459] PeriodicSite: O (9.9719, 7.5406, 6.1245) [0.9578, 0.6243, 0.6462] PeriodicSite: O (4.7657, 1.5202, 0.9751) [0.4577, 0.1259, 0.1029] PeriodicSite: O (4.7779, 1.5132, 5.7181) [0.4589, 0.1253, 0.6033] PeriodicSite: O (4.7627, 7.5033, 0.9219) [0.4574, 0.6212, 0.0973] PeriodicSite: O (4.7799, 7.5423, 5.7118) [0.4591, 0.6244, 0.6027] PeriodicSite: O (0.4439, 4.5256, 3.3597) [0.0426, 0.3747, 0.3545] PeriodicSite: O (0.4458, 4.5167, 8.0975) [0.0428, 0.3740, 0.8544] PeriodicSite: O (0.4487, 10.5747, 3.3556) [0.0431, 0.8755, 0.3541] PeriodicSite: O (0.4398, 10.5769, 8.0919) [0.0422, 0.8757, 0.8538] PeriodicSite: O (5.6461, 4.5190, 3.7637) [0.5423, 0.3741, 0.3971] PeriodicSite: O (5.6338, 4.5260, 8.4983) [0.5411, 0.3747, 0.8967] PeriodicSite: O (5.6490, 10.6142, 3.8169) [0.5426, 0.8788, 0.4027] PeriodicSite: O (5.6318, 10.5752, 8.5046) [0.5409, 0.8756, 0.8973] PeriodicSite: O (6.9383, 0.2665, 0.9991) [0.6664, 0.0221, 0.1054] PeriodicSite: O (6.9618, 0.2813, 5.7394) [0.6687, 0.0233, 0.6056] PeriodicSite: O (6.9424, 6.2988, 0.9884) [0.6668, 0.5215, 0.1043] PeriodicSite: O (6.9414, 6.2829, 5.8049) [0.6667, 0.5202, 0.6125] PeriodicSite: O (1.7379, 2.7394, 1.3635) [0.1669, 0.2268, 0.1439] PeriodicSite: O (1.7390, 2.7463, 6.1020) [0.1670, 0.2274, 0.6438] PeriodicSite: O (1.7293, 8.7758, 1.3621) [0.1661, 0.7266, 0.1437] PeriodicSite: O (1.7278, 8.7874, 6.1173) [0.1659, 0.7275, 0.6454] PeriodicSite: O (3.4593, 3.2999, 3.7365) [0.3322, 0.2732, 0.3942] PeriodicSite: O (3.4611, 3.2876, 8.4676) [0.3324, 0.2722, 0.8934] PeriodicSite: O (3.3893, 9.3739, 3.7965) [0.3255, 0.7761, 0.4006] PeriodicSite: O (3.4444, 9.3601, 8.4821) [0.3308, 0.7749, 0.8950] PeriodicSite: O (8.6876, 5.7754, 3.3730) [0.8344, 0.4782, 0.3559] PeriodicSite: O (8.6907, 5.7645, 8.1192) [0.8347, 0.4773, 0.8567] PeriodicSite: O (8.6853, 11.8141, 3.3664) [0.8342, 0.9781, 0.3552] PeriodicSite: O (8.6685, 11.8020, 8.1098) [0.8326, 0.9771, 0.8557] PeriodicSite: O (3.4734, 5.7727, 3.7397) [0.3336, 0.4779, 0.3946] PeriodicSite: O (3.4499, 5.7579, 8.4770) [0.3313, 0.4767, 0.8944] PeriodicSite: O (3.4693, 11.8187, 3.7504) [0.3332, 0.9785, 0.3957] PeriodicSite: O (3.4703, 11.8347, 8.4115) [0.3333, 0.9798, 0.8875] PeriodicSite: O (8.6738, 3.2998, 3.3753) [0.8331, 0.2732, 0.3561] PeriodicSite: O (8.6727, 3.2929, 8.1143) [0.8330, 0.2726, 0.8562] PeriodicSite: O (8.6824, 9.3417, 3.3767) [0.8339, 0.7734, 0.3563] PeriodicSite: O (8.6840, 9.3302, 8.0991) [0.8341, 0.7725, 0.8546] PeriodicSite: O (6.9525, 2.7393, 1.0023) [0.6678, 0.2268, 0.1058] PeriodicSite: O (6.9506, 2.7516, 5.7488) [0.6676, 0.2278, 0.6066] PeriodicSite: O (7.0224, 8.7437, 0.9423) [0.6745, 0.7239, 0.0994] PeriodicSite: O (6.9673, 8.7574, 5.7343) [0.6692, 0.7251, 0.6050] PeriodicSite: O (1.7242, 0.2638, 1.3658) [0.1656, 0.0218, 0.1441] PeriodicSite: O (1.7210, 0.2747, 6.0972) [0.1653, 0.0227, 0.6433] PeriodicSite: O (1.7264, 6.3034, 1.3724) [0.1658, 0.5219, 0.1448] PeriodicSite: O (1.7432, 6.3156, 6.1066) [0.1674, 0.5229, 0.6443]
        -
        -init_struct = Structure Summary Lattice     abc : 10.411723299877 12.0783517723596 9.47759961582329  angles : 90.0 90.0 90.0  volume : 1191.8693444977544       A : 10.411723299877 0.0 0.0       B : 0.0 12.0783517723596 0.0       C : 0.0 0.0 9.47759961582329 PeriodicSite: Li (5.1874, 8.9205, 2.4168) [0.4982, 0.7386, 0.2550] PeriodicSite: Li (5.2059, 12.0784, 2.3694) [0.5000, 1.0000, 0.2500] PeriodicSite: Li (5.2059, 12.0784, 7.1082) [0.5000, 1.0000, 0.7500] PeriodicSite: Li (5.2059, 6.0392, 7.1082) [0.5000, 0.5000, 0.7500] PeriodicSite: Li (10.4090, 3.0319, 0.0078) [0.9997, 0.2510, 0.0008] PeriodicSite: Li (0.0030, 3.0234, 4.7387) [0.0003, 0.2503, 0.5000] PeriodicSite: Li (10.4088, 9.0550, 0.0000) [0.9997, 0.7497, 0.0000] PeriodicSite: Li (0.0028, 9.0464, 4.7310) [0.0003, 0.7490, 0.4992] PeriodicSite: Li (5.2243, 3.1578, 2.3220) [0.5018, 0.2614, 0.2450] PeriodicSite: Li (5.1821, 3.0310, 7.0844) [0.4977, 0.2509, 0.7475] PeriodicSite: Li (5.2296, 9.0473, 7.1320) [0.5023, 0.7491, 0.7525] PeriodicSite: Li (0.0004, 0.0009, 0.0057) [0.0000, 0.0001, 0.0006] PeriodicSite: Li (10.4114, 12.0774, 4.7330) [1.0000, 0.9999, 0.4994] PeriodicSite: Li (10.4062, 6.0393, 0.0036) [0.9995, 0.5000, 0.0004] PeriodicSite: Li (0.0055, 6.0390, 4.7352) [0.0005, 0.5000, 0.4996] PeriodicSite: Fe (8.1421, 1.5086, 2.4873) [0.7820, 0.1249, 0.2624] PeriodicSite: Fe (8.1410, 1.5134, 7.2283) [0.7819, 0.1253, 0.7627] PeriodicSite: Fe (8.1009, 7.5290, 2.4716) [0.7781, 0.6233, 0.2608] PeriodicSite: Fe (8.1373, 7.5521, 7.2339) [0.7816, 0.6253, 0.7633] PeriodicSite: Fe (2.9469, 1.5185, 4.6137) [0.2830, 0.1257, 0.4868] PeriodicSite: Fe (2.9385, 1.5169, 9.3552) [0.2822, 0.1256, 0.9871] PeriodicSite: Fe (2.9564, 7.5201, 4.6074) [0.2839, 0.6226, 0.4861] PeriodicSite: Fe (2.9587, 7.5328, 9.3801) [0.2842, 0.6237, 0.9897] PeriodicSite: Fe (2.3108, 4.5494, 2.2672) [0.2219, 0.3767, 0.2392] PeriodicSite: Fe (2.2744, 4.5263, 6.9825) [0.2184, 0.3747, 0.7367] PeriodicSite: Fe (2.2697, 10.5698, 2.2515) [0.2180, 0.8751, 0.2376] PeriodicSite: Fe (2.2707, 10.5649, 6.9880) [0.2181, 0.8747, 0.7373] PeriodicSite: Fe (7.4553, 4.5583, 0.1314) [0.7161, 0.3774, 0.0139] PeriodicSite: Fe (7.4530, 4.5455, 4.8363) [0.7158, 0.3763, 0.5103] PeriodicSite: Fe (7.4648, 10.5599, 0.1251) [0.7170, 0.8743, 0.0132] PeriodicSite: Fe (7.4732, 10.5614, 4.8612) [0.7178, 0.8744, 0.5129] PeriodicSite: P (6.1981, 1.5112, 0.3753) [0.5953, 0.1251, 0.0396] PeriodicSite: P (6.2113, 1.5050, 5.1115) [0.5966, 0.1246, 0.5393] PeriodicSite: P (6.1957, 7.5503, 0.3633) [0.5951, 0.6251, 0.0383] PeriodicSite: P (6.2199, 7.5836, 5.1189) [0.5974, 0.6279, 0.5401] PeriodicSite: P (0.9888, 1.5155, 1.9897) [0.0950, 0.1255, 0.2099] PeriodicSite: P (0.9865, 1.5064, 6.7280) [0.0947, 0.1247, 0.7099] PeriodicSite: P (0.9815, 7.5544, 1.9920) [0.0943, 0.6254, 0.2102] PeriodicSite: P (0.9909, 7.5520, 6.7372) [0.0952, 0.6252, 0.7109] PeriodicSite: P (4.2160, 4.5281, 4.3755) [0.4049, 0.3749, 0.4617] PeriodicSite: P (4.1918, 4.4947, 9.0976) [0.4026, 0.3721, 0.9599] PeriodicSite: P (4.2137, 10.5672, 4.3635) [0.4047, 0.8749, 0.4604] PeriodicSite: P (4.2004, 10.5734, 9.1049) [0.4034, 0.8754, 0.9607] PeriodicSite: P (9.4302, 4.5240, 2.7468) [0.9057, 0.3746, 0.2898] PeriodicSite: P (9.4208, 4.5264, 7.4792) [0.9048, 0.3747, 0.7891] PeriodicSite: P (9.4229, 10.5629, 2.7491) [0.9050, 0.8745, 0.2901] PeriodicSite: P (9.4253, 10.5720, 7.4884) [0.9053, 0.8753, 0.7901] PeriodicSite: O (6.2224, 1.4923, 3.5773) [0.5976, 0.1236, 0.3775] PeriodicSite: O (6.2101, 1.5049, 8.3154) [0.5965, 0.1246, 0.8774] PeriodicSite: O (6.2743, 7.6582, 3.6007) [0.6026, 0.6340, 0.3799] PeriodicSite: O (6.2108, 7.5517, 8.2934) [0.5965, 0.6252, 0.8751] PeriodicSite: O (0.9903, 1.5073, 3.5259) [0.0951, 0.1248, 0.3720] PeriodicSite: O (0.9896, 1.5080, 8.2642) [0.0950, 0.1248, 0.8720] PeriodicSite: O (0.9900, 7.5502, 3.5288) [0.0951, 0.6251, 0.3723] PeriodicSite: O (0.9927, 7.5581, 8.2733) [0.0953, 0.6258, 0.8729] PeriodicSite: O (4.1374, 4.4202, 1.1381) [0.3974, 0.3660, 0.1201] PeriodicSite: O (4.2009, 4.5266, 5.9230) [0.4035, 0.3748, 0.6249] PeriodicSite: O (4.1893, 10.5860, 1.1615) [0.4024, 0.8764, 0.1225] PeriodicSite: O (4.2016, 10.5735, 5.9010) [0.4035, 0.8754, 0.6226] PeriodicSite: O (9.4217, 4.5281, 1.2100) [0.9049, 0.3749, 0.1277] PeriodicSite: O (9.4190, 4.5202, 5.9431) [0.9047, 0.3742, 0.6271] PeriodicSite: O (9.4215, 10.5710, 1.2129) [0.9049, 0.8752, 0.1280] PeriodicSite: O (9.4221, 10.5704, 5.9522) [0.9050, 0.8752, 0.6280] PeriodicSite: O (9.9681, 1.5052, 1.3785) [0.9574, 0.1246, 0.1454] PeriodicSite: O (9.9658, 1.4966, 6.1196) [0.9572, 0.1239, 0.6457] PeriodicSite: O (9.9624, 7.5551, 1.3829) [0.9568, 0.6255, 0.1459] PeriodicSite: O (9.9718, 7.5569, 6.1240) [0.9577, 0.6257, 0.6462] PeriodicSite: O (4.7659, 1.5002, 0.9756) [0.4577, 0.1242, 0.1029] PeriodicSite: O (4.7782, 1.5064, 5.7191) [0.4589, 0.1247, 0.6034] PeriodicSite: O (4.7625, 7.5958, 0.9216) [0.4574, 0.6289, 0.0972] PeriodicSite: O (4.7791, 7.5563, 5.7097) [0.4590, 0.6256, 0.6024] PeriodicSite: O (0.4493, 4.5232, 3.3559) [0.0432, 0.3745, 0.3541] PeriodicSite: O (0.4400, 4.5214, 8.0924) [0.0423, 0.3743, 0.8538] PeriodicSite: O (0.4436, 10.5732, 3.3603) [0.0426, 0.8754, 0.3546] PeriodicSite: O (0.4459, 10.5818, 8.0968) [0.0428, 0.8761, 0.8543] PeriodicSite: O (5.6492, 4.4825, 3.8172) [0.5426, 0.3711, 0.4028] PeriodicSite: O (5.6326, 4.5220, 8.5067) [0.5410, 0.3744, 0.8976] PeriodicSite: O (5.6458, 10.5782, 3.7632) [0.5423, 0.8758, 0.3971] PeriodicSite: O (5.6335, 10.5719, 8.4973) [0.5411, 0.8753, 0.8966] PeriodicSite: O (6.9512, 0.2785, 1.0032) [0.6676, 0.0231, 0.1058] PeriodicSite: O (6.9495, 0.2660, 5.7483) [0.6675, 0.0220, 0.6065] PeriodicSite: O (7.0219, 6.3538, 0.9424) [0.6744, 0.5261, 0.0994] PeriodicSite: O (6.9656, 6.3395, 5.7329) [0.6690, 0.5249, 0.6049] PeriodicSite: O (1.7248, 2.7555, 1.3661) [0.1657, 0.2281, 0.1441] PeriodicSite: O (1.7211, 2.7446, 6.0973) [0.1653, 0.2272, 0.6433] PeriodicSite: O (1.7255, 8.7949, 1.3716) [0.1657, 0.7282, 0.1447] PeriodicSite: O (1.7426, 8.7823, 6.1058) [0.1674, 0.7271, 0.6442] PeriodicSite: O (3.4692, 3.2784, 3.7520) [0.3332, 0.2714, 0.3959] PeriodicSite: O (3.4699, 3.2636, 8.4112) [0.3333, 0.2702, 0.8875] PeriodicSite: O (3.4720, 9.3269, 3.7396) [0.3335, 0.7722, 0.3946] PeriodicSite: O (3.4483, 9.3419, 8.4769) [0.3312, 0.7734, 0.8944] PeriodicSite: O (8.6826, 5.7559, 3.3769) [0.8339, 0.4765, 0.3563] PeriodicSite: O (8.6832, 5.7673, 8.0990) [0.8340, 0.4775, 0.8545] PeriodicSite: O (8.6740, 11.7982, 3.3753) [0.8331, 0.9768, 0.3561] PeriodicSite: O (8.6732, 11.8051, 8.1140) [0.8330, 0.9774, 0.8561] PeriodicSite: O (3.3898, 5.7246, 3.7964) [0.3256, 0.4740, 0.4006] PeriodicSite: O (3.4461, 5.7388, 8.4835) [0.3310, 0.4751, 0.8951] PeriodicSite: O (3.4605, 11.7998, 3.7356) [0.3324, 0.9769, 0.3942] PeriodicSite: O (3.4622, 11.8123, 8.4681) [0.3325, 0.9780, 0.8935] PeriodicSite: O (8.6862, 3.2835, 3.3672) [0.8343, 0.2718, 0.3553] PeriodicSite: O (8.6691, 3.2960, 8.1106) [0.8326, 0.2729, 0.8558] PeriodicSite: O (8.6869, 9.3228, 3.3727) [0.8343, 0.7719, 0.3559] PeriodicSite: O (8.6906, 9.3337, 8.1191) [0.8347, 0.7728, 0.8567] PeriodicSite: O (6.9397, 2.7514, 0.9992) [0.6665, 0.2278, 0.1054] PeriodicSite: O (6.9635, 2.7364, 5.7395) [0.6688, 0.2266, 0.6056] PeriodicSite: O (6.9425, 8.8000, 0.9868) [0.6668, 0.7286, 0.1041] PeriodicSite: O (6.9418, 8.8148, 5.8052) [0.6667, 0.7298, 0.6125] PeriodicSite: O (1.7378, 0.2801, 1.3635) [0.1669, 0.0232, 0.1439] PeriodicSite: O (1.7385, 0.2732, 6.1024) [0.1670, 0.0226, 0.6439] PeriodicSite: O (1.7291, 6.3224, 1.3619) [0.1661, 0.5235, 0.1437] PeriodicSite: O (1.7285, 6.3110, 6.1174) [0.1660, 0.5225, 0.6455]
        +
        +init_struct = Structure Summary Lattice     abc : 10.411723299877 12.0783517723596 9.47759961582329  angles : 90.0 90.0 90.0  volume : 1191.8693444977544       A : 10.411723299877 0.0 0.0       B : 0.0 12.0783517723596 0.0       C : 0.0 0.0 9.47759961582329 PeriodicSite: Li (5.1874, 8.9205, 2.4168) [0.4982, 0.7386, 0.2550] PeriodicSite: Li (5.2059, 12.0784, 2.3694) [0.5000, 1.0000, 0.2500] PeriodicSite: Li (5.2059, 12.0784, 7.1082) [0.5000, 1.0000, 0.7500] PeriodicSite: Li (5.2059, 6.0392, 7.1082) [0.5000, 0.5000, 0.7500] PeriodicSite: Li (10.4090, 3.0319, 0.0078) [0.9997, 0.2510, 0.0008] PeriodicSite: Li (0.0030, 3.0234, 4.7387) [0.0003, 0.2503, 0.5000] PeriodicSite: Li (10.4088, 9.0550, 0.0000) [0.9997, 0.7497, 0.0000] PeriodicSite: Li (0.0028, 9.0464, 4.7310) [0.0003, 0.7490, 0.4992] PeriodicSite: Li (5.2243, 3.1578, 2.3220) [0.5018, 0.2614, 0.2450] PeriodicSite: Li (5.1821, 3.0310, 7.0844) [0.4977, 0.2509, 0.7475] PeriodicSite: Li (5.2296, 9.0473, 7.1320) [0.5023, 0.7491, 0.7525] PeriodicSite: Li (0.0004, 0.0009, 0.0057) [0.0000, 0.0001, 0.0006] PeriodicSite: Li (10.4114, 12.0774, 4.7330) [1.0000, 0.9999, 0.4994] PeriodicSite: Li (10.4062, 6.0393, 0.0036) [0.9995, 0.5000, 0.0004] PeriodicSite: Li (0.0055, 6.0390, 4.7352) [0.0005, 0.5000, 0.4996] PeriodicSite: Fe (8.1421, 1.5086, 2.4873) [0.7820, 0.1249, 0.2624] PeriodicSite: Fe (8.1410, 1.5134, 7.2283) [0.7819, 0.1253, 0.7627] PeriodicSite: Fe (8.1009, 7.5290, 2.4716) [0.7781, 0.6233, 0.2608] PeriodicSite: Fe (8.1373, 7.5521, 7.2339) [0.7816, 0.6253, 0.7633] PeriodicSite: Fe (2.9469, 1.5185, 4.6137) [0.2830, 0.1257, 0.4868] PeriodicSite: Fe (2.9385, 1.5169, 9.3552) [0.2822, 0.1256, 0.9871] PeriodicSite: Fe (2.9564, 7.5201, 4.6074) [0.2839, 0.6226, 0.4861] PeriodicSite: Fe (2.9587, 7.5328, 9.3801) [0.2842, 0.6237, 0.9897] PeriodicSite: Fe (2.3108, 4.5494, 2.2672) [0.2219, 0.3767, 0.2392] PeriodicSite: Fe (2.2744, 4.5263, 6.9825) [0.2184, 0.3747, 0.7367] PeriodicSite: Fe (2.2697, 10.5698, 2.2515) [0.2180, 0.8751, 0.2376] PeriodicSite: Fe (2.2707, 10.5649, 6.9880) [0.2181, 0.8747, 0.7373] PeriodicSite: Fe (7.4553, 4.5583, 0.1314) [0.7161, 0.3774, 0.0139] PeriodicSite: Fe (7.4530, 4.5455, 4.8363) [0.7158, 0.3763, 0.5103] PeriodicSite: Fe (7.4648, 10.5599, 0.1251) [0.7170, 0.8743, 0.0132] PeriodicSite: Fe (7.4732, 10.5614, 4.8612) [0.7178, 0.8744, 0.5129] PeriodicSite: P (6.1981, 1.5112, 0.3753) [0.5953, 0.1251, 0.0396] PeriodicSite: P (6.2113, 1.5050, 5.1115) [0.5966, 0.1246, 0.5393] PeriodicSite: P (6.1957, 7.5503, 0.3633) [0.5951, 0.6251, 0.0383] PeriodicSite: P (6.2199, 7.5836, 5.1189) [0.5974, 0.6279, 0.5401] PeriodicSite: P (0.9888, 1.5155, 1.9897) [0.0950, 0.1255, 0.2099] PeriodicSite: P (0.9865, 1.5064, 6.7280) [0.0947, 0.1247, 0.7099] PeriodicSite: P (0.9815, 7.5544, 1.9920) [0.0943, 0.6254, 0.2102] PeriodicSite: P (0.9909, 7.5520, 6.7372) [0.0952, 0.6252, 0.7109] PeriodicSite: P (4.2160, 4.5281, 4.3755) [0.4049, 0.3749, 0.4617] PeriodicSite: P (4.1918, 4.4947, 9.0976) [0.4026, 0.3721, 0.9599] PeriodicSite: P (4.2137, 10.5672, 4.3635) [0.4047, 0.8749, 0.4604] PeriodicSite: P (4.2004, 10.5734, 9.1049) [0.4034, 0.8754, 0.9607] PeriodicSite: P (9.4302, 4.5240, 2.7468) [0.9057, 0.3746, 0.2898] PeriodicSite: P (9.4208, 4.5264, 7.4792) [0.9048, 0.3747, 0.7891] PeriodicSite: P (9.4229, 10.5629, 2.7491) [0.9050, 0.8745, 0.2901] PeriodicSite: P (9.4253, 10.5720, 7.4884) [0.9053, 0.8753, 0.7901] PeriodicSite: O (6.2224, 1.4923, 3.5773) [0.5976, 0.1236, 0.3775] PeriodicSite: O (6.2101, 1.5049, 8.3154) [0.5965, 0.1246, 0.8774] PeriodicSite: O (6.2743, 7.6582, 3.6007) [0.6026, 0.6340, 0.3799] PeriodicSite: O (6.2108, 7.5517, 8.2934) [0.5965, 0.6252, 0.8751] PeriodicSite: O (0.9903, 1.5073, 3.5259) [0.0951, 0.1248, 0.3720] PeriodicSite: O (0.9896, 1.5080, 8.2642) [0.0950, 0.1248, 0.8720] PeriodicSite: O (0.9900, 7.5502, 3.5288) [0.0951, 0.6251, 0.3723] PeriodicSite: O (0.9927, 7.5581, 8.2733) [0.0953, 0.6258, 0.8729] PeriodicSite: O (4.1374, 4.4202, 1.1381) [0.3974, 0.3660, 0.1201] PeriodicSite: O (4.2009, 4.5266, 5.9230) [0.4035, 0.3748, 0.6249] PeriodicSite: O (4.1893, 10.5860, 1.1615) [0.4024, 0.8764, 0.1225] PeriodicSite: O (4.2016, 10.5735, 5.9010) [0.4035, 0.8754, 0.6226] PeriodicSite: O (9.4217, 4.5281, 1.2100) [0.9049, 0.3749, 0.1277] PeriodicSite: O (9.4190, 4.5202, 5.9431) [0.9047, 0.3742, 0.6271] PeriodicSite: O (9.4215, 10.5710, 1.2129) [0.9049, 0.8752, 0.1280] PeriodicSite: O (9.4221, 10.5704, 5.9522) [0.9050, 0.8752, 0.6280] PeriodicSite: O (9.9681, 1.5052, 1.3785) [0.9574, 0.1246, 0.1454] PeriodicSite: O (9.9658, 1.4966, 6.1196) [0.9572, 0.1239, 0.6457] PeriodicSite: O (9.9624, 7.5551, 1.3829) [0.9568, 0.6255, 0.1459] PeriodicSite: O (9.9718, 7.5569, 6.1240) [0.9577, 0.6257, 0.6462] PeriodicSite: O (4.7659, 1.5002, 0.9756) [0.4577, 0.1242, 0.1029] PeriodicSite: O (4.7782, 1.5064, 5.7191) [0.4589, 0.1247, 0.6034] PeriodicSite: O (4.7625, 7.5958, 0.9216) [0.4574, 0.6289, 0.0972] PeriodicSite: O (4.7791, 7.5563, 5.7097) [0.4590, 0.6256, 0.6024] PeriodicSite: O (0.4493, 4.5232, 3.3559) [0.0432, 0.3745, 0.3541] PeriodicSite: O (0.4400, 4.5214, 8.0924) [0.0423, 0.3743, 0.8538] PeriodicSite: O (0.4436, 10.5732, 3.3603) [0.0426, 0.8754, 0.3546] PeriodicSite: O (0.4459, 10.5818, 8.0968) [0.0428, 0.8761, 0.8543] PeriodicSite: O (5.6492, 4.4825, 3.8172) [0.5426, 0.3711, 0.4028] PeriodicSite: O (5.6326, 4.5220, 8.5067) [0.5410, 0.3744, 0.8976] PeriodicSite: O (5.6458, 10.5782, 3.7632) [0.5423, 0.8758, 0.3971] PeriodicSite: O (5.6335, 10.5719, 8.4973) [0.5411, 0.8753, 0.8966] PeriodicSite: O (6.9512, 0.2785, 1.0032) [0.6676, 0.0231, 0.1058] PeriodicSite: O (6.9495, 0.2660, 5.7483) [0.6675, 0.0220, 0.6065] PeriodicSite: O (7.0219, 6.3538, 0.9424) [0.6744, 0.5261, 0.0994] PeriodicSite: O (6.9656, 6.3395, 5.7329) [0.6690, 0.5249, 0.6049] PeriodicSite: O (1.7248, 2.7555, 1.3661) [0.1657, 0.2281, 0.1441] PeriodicSite: O (1.7211, 2.7446, 6.0973) [0.1653, 0.2272, 0.6433] PeriodicSite: O (1.7255, 8.7949, 1.3716) [0.1657, 0.7282, 0.1447] PeriodicSite: O (1.7426, 8.7823, 6.1058) [0.1674, 0.7271, 0.6442] PeriodicSite: O (3.4692, 3.2784, 3.7520) [0.3332, 0.2714, 0.3959] PeriodicSite: O (3.4699, 3.2636, 8.4112) [0.3333, 0.2702, 0.8875] PeriodicSite: O (3.4720, 9.3269, 3.7396) [0.3335, 0.7722, 0.3946] PeriodicSite: O (3.4483, 9.3419, 8.4769) [0.3312, 0.7734, 0.8944] PeriodicSite: O (8.6826, 5.7559, 3.3769) [0.8339, 0.4765, 0.3563] PeriodicSite: O (8.6832, 5.7673, 8.0990) [0.8340, 0.4775, 0.8545] PeriodicSite: O (8.6740, 11.7982, 3.3753) [0.8331, 0.9768, 0.3561] PeriodicSite: O (8.6732, 11.8051, 8.1140) [0.8330, 0.9774, 0.8561] PeriodicSite: O (3.3898, 5.7246, 3.7964) [0.3256, 0.4740, 0.4006] PeriodicSite: O (3.4461, 5.7388, 8.4835) [0.3310, 0.4751, 0.8951] PeriodicSite: O (3.4605, 11.7998, 3.7356) [0.3324, 0.9769, 0.3942] PeriodicSite: O (3.4622, 11.8123, 8.4681) [0.3325, 0.9780, 0.8935] PeriodicSite: O (8.6862, 3.2835, 3.3672) [0.8343, 0.2718, 0.3553] PeriodicSite: O (8.6691, 3.2960, 8.1106) [0.8326, 0.2729, 0.8558] PeriodicSite: O (8.6869, 9.3228, 3.3727) [0.8343, 0.7719, 0.3559] PeriodicSite: O (8.6906, 9.3337, 8.1191) [0.8347, 0.7728, 0.8567] PeriodicSite: O (6.9397, 2.7514, 0.9992) [0.6665, 0.2278, 0.1054] PeriodicSite: O (6.9635, 2.7364, 5.7395) [0.6688, 0.2266, 0.6056] PeriodicSite: O (6.9425, 8.8000, 0.9868) [0.6668, 0.7286, 0.1041] PeriodicSite: O (6.9418, 8.8148, 5.8052) [0.6667, 0.7298, 0.6125] PeriodicSite: O (1.7378, 0.2801, 1.3635) [0.1669, 0.0232, 0.1439] PeriodicSite: O (1.7385, 0.2732, 6.1024) [0.1670, 0.0226, 0.6439] PeriodicSite: O (1.7291, 6.3224, 1.3619) [0.1661, 0.5235, 0.1437] PeriodicSite: O (1.7285, 6.3110, 6.1174) [0.1660, 0.5225, 0.6455]
        -
        -test_idpp()[source]
        +
        +test_idpp()[source]
        -
        -test_idpp_from_ep()[source]
        +
        +test_idpp_from_ep()[source]
        -
        -class MigrationHopTest(methodName='runTest')[source]
        +
        +class MigrationHopTest(methodName='runTest')[source]

        Bases: pymatgen.util.testing.PymatgenTest

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -setUp()[source]
        +
        +setUp()[source]

        Hook method for setting up the test fixture before exercising it.

        -
        -test_get_sc_structures()[source]
        +
        +test_get_sc_structures()[source]
        -
        -test_get_start_end_structs_from_hop()[source]
        +
        +test_get_sc_structures_vacmode()[source]
        -
        -test_get_start_end_structs_from_hop_vac()[source]
        +
        +test_get_start_end_structs_from_hop()[source]
        +
        + +
        +
        +test_get_start_end_structs_from_hop_vac()[source]
        -
        -get_path(path_str, dirname='./')[source]
        +
        +get_path(path_str, dirname='./')[source]
        -
        +
        @@ -155,7 +161,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.tests.test_analyzer.html b/docs/pymatgen.analysis.diffusion.tests.test_analyzer.html index 9cc3f03a..68c03686 100644 --- a/docs/pymatgen.analysis.diffusion.tests.test_analyzer.html +++ b/docs/pymatgen.analysis.diffusion.tests.test_analyzer.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.tests.test_analyzer module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.tests.test_analyzer module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,52 +47,52 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.tests.test_analyzer module

        -
        -class DiffusionAnalyzerTest(methodName='runTest')[source]
        +
        +class DiffusionAnalyzerTest(methodName='runTest')[source]

        Bases: pymatgen.util.testing.PymatgenTest

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_from_structure_NPT()[source]
        +
        +test_from_structure_NPT()[source]
        -
        -test_init()[source]
        +
        +test_init()[source]
        -
        -test_init_npt()[source]
        +
        +test_init_npt()[source]
        -
        -class FuncTest(methodName='runTest')[source]
        +
        +class FuncTest(methodName='runTest')[source]

        Bases: pymatgen.util.testing.PymatgenTest

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -test_fit_arrhenius()[source]
        +
        +test_fit_arrhenius()[source]
        -
        -test_get_conversion_factor()[source]
        +
        +test_get_conversion_factor()[source]
        -
        +
        @@ -115,7 +116,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.edge_data_from_sc.html b/docs/pymatgen.analysis.diffusion.utils.edge_data_from_sc.html index 036c7678..bb7e08fe 100644 --- a/docs/pymatgen.analysis.diffusion.utils.edge_data_from_sc.html +++ b/docs/pymatgen.analysis.diffusion.utils.edge_data_from_sc.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils.edge_data_from_sc module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils.edge_data_from_sc module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils.edge_data_from_sc module

        Function to add edge data to MigrationGraph through 2 SC structures

        -
        -add_edge_data_from_sc(mg: pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph, i_sc: pymatgen.core.structure.Structure, e_sc: pymatgen.core.structure.Structure, data_array: list, key: str = 'custom_key', symprec: Union[None, float] = None)None[source]
        +
        +add_edge_data_from_sc(mg: pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph, i_sc: pymatgen.core.structure.Structure, e_sc: pymatgen.core.structure.Structure, data_array: list, key: str = 'custom_key', use_host_sg: bool = True) None[source]

        Add a data entry and key to edges within FullPathMapper object with the same hop_label. These hops are equivalent by symmetry to the 2 positions given in the supercell structures.

        @@ -61,6 +62,7 @@

        Navigation

      • e_sc – Supercell structure containing working ion at ending position

      • data_array – The data to be added to the edges

      • key – Key of the edge attribute to be added

      • +
      • use_host_sg – Flag t whether or not to use the host structure’s spacegroup to initiate MigrationHop

      • Returns
        @@ -70,8 +72,8 @@

        Navigation

        -
        -get_uc_pos(isite: pymatgen.core.sites.PeriodicSite, esite: pymatgen.core.sites.PeriodicSite, uc: pymatgen.core.structure.Structure, sc: pymatgen.core.structure.Structure, sm: pymatgen.analysis.structure_matcher.StructureMatcher)Tuple[pymatgen.core.sites.PeriodicSite, pymatgen.core.sites.PeriodicSite, pymatgen.core.sites.PeriodicSite][source]
        +
        +get_uc_pos(isite: pymatgen.core.sites.PeriodicSite, esite: pymatgen.core.sites.PeriodicSite, uc: pymatgen.core.structure.Structure, sc: pymatgen.core.structure.Structure, sm: pymatgen.analysis.structure_matcher.StructureMatcher) Tuple[pymatgen.core.sites.PeriodicSite, pymatgen.core.sites.PeriodicSite, pymatgen.core.sites.PeriodicSite][source]

        Take positions in the supercel and transform into the unitcell positions

        Parameters
        @@ -90,8 +92,8 @@

        Navigation

        -
        -get_unique_hop(mg: pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph, sc: pymatgen.core.structure.Structure, isite: pymatgen.core.sites.PeriodicSite, esite: pymatgen.core.sites.PeriodicSite, symprec: Union[None, float] = None)Tuple[int, pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop][source]
        +
        +get_unique_hop(mg: pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph, sc: pymatgen.core.structure.Structure, isite: pymatgen.core.sites.PeriodicSite, esite: pymatgen.core.sites.PeriodicSite, use_host_sg: bool = True) Tuple[int, pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop][source]

        Get the unique hop label that correspond to two end positions in the SC

        Parameters
        @@ -100,6 +102,7 @@

        Navigation

      • sc – Structure of the supercell used for the NEB calculation

      • isite – Initial position in the supercell

      • esite – Final position in the supercell

      • +
      • use_host_sg – Flag t whether or not to use the host structure’s spacegroup to initiate MigrationHop

      • Returns
        @@ -109,8 +112,8 @@

        Navigation

        -
        -mh_eq(mh1, mh2)[source]
        +
        +mh_eq(mh1, mh2)[source]

        Allow for symmetric matching of MigrationPath objects with variable precession

        Parameters
        @@ -125,7 +128,7 @@

        Navigation

        -
        +
        @@ -149,7 +152,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.html b/docs/pymatgen.analysis.diffusion.utils.html index 08f98029..d8bd0cf0 100644 --- a/docs/pymatgen.analysis.diffusion.utils.html +++ b/docs/pymatgen.analysis.diffusion.utils.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils package — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils package — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,14 +47,14 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils package

        -
        +

        Subpackages

        -
        -
        +
        +

        Submodules

        -
        -
        + +

        Module contents

        Utils Modules

        -
        -
        + +
        @@ -102,7 +103,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.maggma.html b/docs/pymatgen.analysis.diffusion.utils.maggma.html index d82bf904..0876e7fb 100644 --- a/docs/pymatgen.analysis.diffusion.utils.maggma.html +++ b/docs/pymatgen.analysis.diffusion.utils.maggma.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils.maggma module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils.maggma module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,9 +47,9 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils.maggma module

        -
        +
        @@ -72,7 +73,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.parse_entries.html b/docs/pymatgen.analysis.diffusion.utils.parse_entries.html index 55bb620e..d7793e2b 100644 --- a/docs/pymatgen.analysis.diffusion.utils.parse_entries.html +++ b/docs/pymatgen.analysis.diffusion.utils.parse_entries.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils.parse_entries module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils.parse_entries module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils.parse_entries module

        Functions for combining many ComputedEntry objects into MigrationGraph objects.

        -
        -get_inserted_on_base(base_ent: pymatgen.entries.computed_entries.ComputedStructureEntry, inserted_ent: pymatgen.entries.computed_entries.ComputedStructureEntry, migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry, sm: pymatgen.analysis.structure_matcher.StructureMatcher)Optional[pymatgen.core.structure.Structure][source]
        +
        +get_inserted_on_base(base_ent: pymatgen.entries.computed_entries.ComputedStructureEntry, inserted_ent: pymatgen.entries.computed_entries.ComputedStructureEntry, migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry, sm: pymatgen.analysis.structure_matcher.StructureMatcher) Optional[pymatgen.core.structure.Structure][source]

        For a structured-matched pair of base and inserted entries, map all of the Li positions in the inserted entry to positions in the base entry and return a new structure where all the sites are decorated with the insertion energy. Since the calculation of the insertion energy needs the energy of the metallic working ion, @@ -72,8 +73,8 @@

        Navigation

        -
        -get_insertion_energy(base_entry: pymatgen.entries.computed_entries.ComputedStructureEntry, inserted_entry: pymatgen.entries.computed_entries.ComputedStructureEntry, migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry)float[source]
        +
        +get_insertion_energy(base_entry: pymatgen.entries.computed_entries.ComputedStructureEntry, inserted_entry: pymatgen.entries.computed_entries.ComputedStructureEntry, migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry) float[source]

        Calculate the insertion energy for a given inserted entry :param base_entry: The entry for the host structure :param inserted_entry: The entry for the inserted structure @@ -88,8 +89,8 @@

        Navigation

        -
        -get_matched_structure_mapping(base: pymatgen.core.structure.Structure, inserted: pymatgen.core.structure.Structure, sm: pymatgen.analysis.structure_matcher.StructureMatcher)[source]
        +
        +get_matched_structure_mapping(base: pymatgen.core.structure.Structure, inserted: pymatgen.core.structure.Structure, sm: pymatgen.analysis.structure_matcher.StructureMatcher)[source]

        Get the mapping from the inserted structure onto the base structure, assuming that the inserted structure sans the working ion is some kind of SC of the base.

        @@ -112,8 +113,8 @@

        Navigation

        -
        -get_sym_migration_ion_sites(base_struct: pymatgen.core.structure.Structure, inserted_struct: pymatgen.core.structure.Structure, migrating_ion: str, symprec: float = 0.01, angle_tol: float = 5.0)pymatgen.core.structure.Structure[source]
        +
        +get_sym_migration_ion_sites(base_struct: pymatgen.core.structure.Structure, inserted_struct: pymatgen.core.structure.Structure, migrating_ion: str, symprec: float = 0.01, angle_tol: float = 5.0) pymatgen.core.structure.Structure[source]

        Take one inserted entry then map out all symmetry equivalent copies of the cation sites in base entry. Each site is decorated with the insertion energy calculated from the base and inserted entries.

        @@ -133,8 +134,8 @@

        Navigation

        -
        -process_entries(base_entries: List[pymatgen.entries.computed_entries.ComputedStructureEntry], inserted_entries: List[pymatgen.entries.computed_entries.ComputedStructureEntry], migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry, symprec: float = 0.01, ltol: float = 0.2, stol: float = 0.3, angle_tol: float = 5.0)List[Dict][source]
        +
        +process_entries(base_entries: List[pymatgen.entries.computed_entries.ComputedStructureEntry], inserted_entries: List[pymatgen.entries.computed_entries.ComputedStructureEntry], migrating_ion_entry: pymatgen.entries.computed_entries.ComputedEntry, symprec: float = 0.01, ltol: float = 0.2, stol: float = 0.3, angle_tol: float = 5.0) List[Dict][source]

        Process a list of base entries and inserted entries to create input for migration path analysis Each inserted entries can be mapped to more than one base entry. Return groups of structures decorated with the working ions to indicate the metastable sites, ranked by the number of working ion sites (highest number is the first).

        @@ -163,7 +164,7 @@

        Navigation

        -
        +
        @@ -187,7 +188,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.supercells.html b/docs/pymatgen.analysis.diffusion.utils.supercells.html index 20eef806..7a9068f9 100644 --- a/docs/pymatgen.analysis.diffusion.utils.supercells.html +++ b/docs/pymatgen.analysis.diffusion.utils.supercells.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils.supercells module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils.supercells module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,12 +47,12 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils.supercells module

        Functions for creating supercells for NEB calculations

        -
        -get_sc_fromstruct(base_struct: pymatgen.core.structure.Structure, min_atoms: int = 80, max_atoms: int = 240, min_length: float = 10.0)List[List[int]][source]
        +
        +get_sc_fromstruct(base_struct: pymatgen.core.structure.Structure, min_atoms: int = 80, max_atoms: int = 240, min_length: float = 10.0) List[List[int]][source]

        Generate the best supercell from a unitcell. The CubicSupercellTransformation from PMG is much faster but don’t iterate over as many supercell configurations so it’s less able to find the best configuration in a give cell size. @@ -76,8 +77,8 @@

        Navigation

        -
        -get_start_end_structures(isite: pymatgen.core.sites.PeriodicSite, esite: pymatgen.core.sites.PeriodicSite, base_struct: pymatgen.core.structure.Structure, sc_mat: List[List[Union[int, float]]], vac_mode: bool, debug: bool = False)Tuple[pymatgen.core.structure.Structure, pymatgen.core.structure.Structure, pymatgen.core.structure.Structure][source]
        +
        +get_start_end_structures(isite: pymatgen.core.sites.PeriodicSite, esite: pymatgen.core.sites.PeriodicSite, base_struct: pymatgen.core.structure.Structure, sc_mat: List[List[Union[int, float]]], vac_mode: bool, debug: bool = False) Tuple[pymatgen.core.structure.Structure, pymatgen.core.structure.Structure, pymatgen.core.structure.Structure][source]

        Obtain the starting and terminating structures in a supercell for NEB calculations.

        Parameters
        @@ -93,7 +94,7 @@

        Navigation

        -
        +
        @@ -117,7 +118,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.html b/docs/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.html index 539524dd..0ad307b9 100644 --- a/docs/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.html +++ b/docs/pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,19 +47,29 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc module

        -
        -test_add_edge_data_from_sc()[source]
        +
        +test_add_edge_data_from_sc()[source]
        -
        -test_get_uc_pos()[source]
        +
        +test_get_uc_pos()[source]
        -
        +
        +
        +test_get_unique_hop_host()[source]
        +
        + +
        +
        +test_get_unique_host_nonhost()[source]
        +
        + +
        @@ -82,7 +93,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.tests.test_maggma.html b/docs/pymatgen.analysis.diffusion.utils.tests.test_maggma.html index 9c4e91b9..cf814e8c 100644 --- a/docs/pymatgen.analysis.diffusion.utils.tests.test_maggma.html +++ b/docs/pymatgen.analysis.diffusion.utils.tests.test_maggma.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils.tests.test_maggma module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils.tests.test_maggma module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,9 +47,9 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils.tests.test_maggma module

        -
        +
        @@ -72,7 +73,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.html b/docs/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.html index eb7abe55..729c5ddd 100644 --- a/docs/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.html +++ b/docs/pymatgen.analysis.diffusion.utils.tests.test_parse_entries.html @@ -4,11 +4,12 @@ - - pymatgen.analysis.diffusion.utils.tests.test_parse_entries module — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis.diffusion.utils.tests.test_parse_entries module — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,49 +47,49 @@

        Navigation

        -
        +

        pymatgen.analysis.diffusion.utils.tests.test_parse_entries module

        -
        -class ParseEntriesTest(methodName='runTest')[source]
        +
        +class ParseEntriesTest(methodName='runTest')[source]

        Bases: unittest.case.TestCase

        Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

        -
        -setUp()[source]
        +
        +setUp()[source]

        Hook method for setting up the test fixture before exercising it.

        -
        -test_filter_and_merge()[source]
        +
        +test_filter_and_merge()[source]
        -
        -test_get_all_sym_sites()[source]
        +
        +test_get_all_sym_sites()[source]
        -
        -test_get_inserted_on_base()[source]
        +
        +test_get_inserted_on_base()[source]
        -
        -test_get_insertion_energy()[source]
        +
        +test_get_insertion_energy()[source]
        -
        -test_process_ents()[source]
        +
        +test_process_ents()[source]
        -
        +
        @@ -112,7 +113,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.analysis.html b/docs/pymatgen.analysis.html index c6a44e00..8b1accee 100644 --- a/docs/pymatgen.analysis.html +++ b/docs/pymatgen.analysis.html @@ -4,11 +4,12 @@ - - pymatgen.analysis namespace — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen.analysis namespace — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,9 +47,9 @@

        Navigation

        -
        -

        pymatgen.analysis namespace

        -
        +
        +

        pymatgen.analysis namespace

        +

        Subpackages

          @@ -107,8 +108,8 @@

          Subpackages

        @@ -140,7 +141,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen.html b/docs/pymatgen.html index 1406b2cf..9f7ccb83 100644 --- a/docs/pymatgen.html +++ b/docs/pymatgen.html @@ -4,11 +4,12 @@ - - pymatgen namespace — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen namespace — pymatgen-diffusion 2022.1.15 documentation + + + @@ -40,7 +41,7 @@

        Navigation

      • previous |
      • - + @@ -51,9 +52,9 @@

        Navigation

        -
        -

        pymatgen namespace

        -
        +
        +

        pymatgen namespace

        +
        @@ -80,7 +81,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen_diffusion.aimd.html b/docs/pymatgen_diffusion.aimd.html index 52638678..5adc498d 100644 --- a/docs/pymatgen_diffusion.aimd.html +++ b/docs/pymatgen_diffusion.aimd.html @@ -4,11 +4,12 @@ - - pymatgen_diffusion.aimd package — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen_diffusion.aimd package — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,32 +47,32 @@

        Navigation

        -
        +

        pymatgen_diffusion.aimd package

        -
        +

        Subpackages

        -
        -
        +
        +

        Submodules

        -
        -
        +
        +

        pymatgen_diffusion.aimd.clustering module

        -
        -
        + +

        pymatgen_diffusion.aimd.pathway module

        -
        -
        + +

        pymatgen_diffusion.aimd.rdf module

        -
        -
        + +

        pymatgen_diffusion.aimd.van_hove module

        -
        -
        + +

        Module contents

        -
        -
        + +
        @@ -109,7 +110,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen_diffusion.html b/docs/pymatgen_diffusion.html index a392ebad..bf03ca6f 100644 --- a/docs/pymatgen_diffusion.html +++ b/docs/pymatgen_diffusion.html @@ -4,11 +4,12 @@ - - pymatgen_diffusion package — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen_diffusion package — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,9 +47,9 @@

        Navigation

        -
        +

        pymatgen_diffusion package

        -
        +

        Subpackages

          @@ -78,11 +79,11 @@

          Subpackages +

        +

        Module contents

        -
        -
        + +
        @@ -115,7 +116,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/pymatgen_diffusion.neb.html b/docs/pymatgen_diffusion.neb.html index 963a6513..6b25f46b 100644 --- a/docs/pymatgen_diffusion.neb.html +++ b/docs/pymatgen_diffusion.neb.html @@ -4,11 +4,12 @@ - - pymatgen_diffusion.neb package — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen_diffusion.neb package — pymatgen-diffusion 2022.1.15 documentation + + + @@ -36,7 +37,7 @@

        Navigation

      • modules |
      • - +
        @@ -46,32 +47,32 @@

        Navigation

        -
        +

        pymatgen_diffusion.neb package

        -
        +

        Subpackages

        -
        -
        +
        +

        Submodules

        -
        -
        + +

        pymatgen_diffusion.neb.full_path_mapper module

        -
        -
        + +

        pymatgen_diffusion.neb.io module

        -
        -
        + +

        pymatgen_diffusion.neb.pathfinder module

        -
        -
        + +

        pymatgen_diffusion.neb.periodic_dijkstra module

        -
        -
        + +

        Module contents

        -
        -
        + +
        @@ -109,7 +110,7 @@

        This Page

        Quick search

        - +
        diff --git a/docs/search.html b/docs/search.html index bea9e344..0e38582f 100644 --- a/docs/search.html +++ b/docs/search.html @@ -5,11 +5,11 @@ - Search — pymatgen-diffusion 2021.4.29 documentation - - + Search — pymatgen-diffusion 2022.1.15 documentation + + - + @@ -42,7 +42,7 @@

        Navigation

      • modules |
      • - +
        @@ -53,26 +53,35 @@

        Navigation

        Search

        -
        - + + + +

        Searching for multiple words only shows matches that contain all words.

        + +
        - + + +
        +
        diff --git a/docs/searchindex.js b/docs/searchindex.js index 691a3b18..59858988 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["_themes/README","change_log","index","modules","pymatgen","pymatgen.analysis","pymatgen.analysis.diffusion","pymatgen.analysis.diffusion.aimd","pymatgen.analysis.diffusion.aimd.clustering","pymatgen.analysis.diffusion.aimd.pathway","pymatgen.analysis.diffusion.aimd.rdf","pymatgen.analysis.diffusion.aimd.tests.test_clustering","pymatgen.analysis.diffusion.aimd.tests.test_pathway","pymatgen.analysis.diffusion.aimd.tests.test_rdf","pymatgen.analysis.diffusion.aimd.tests.test_van_hove","pymatgen.analysis.diffusion.aimd.van_hove","pymatgen.analysis.diffusion.analyzer","pymatgen.analysis.diffusion.neb","pymatgen.analysis.diffusion.neb.full_path_mapper","pymatgen.analysis.diffusion.neb.io","pymatgen.analysis.diffusion.neb.pathfinder","pymatgen.analysis.diffusion.neb.periodic_dijkstra","pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper","pymatgen.analysis.diffusion.neb.tests.test_io","pymatgen.analysis.diffusion.neb.tests.test_pathfinder","pymatgen.analysis.diffusion.tests.test_analyzer","pymatgen.analysis.diffusion.utils","pymatgen.analysis.diffusion.utils.edge_data_from_sc","pymatgen.analysis.diffusion.utils.maggma","pymatgen.analysis.diffusion.utils.parse_entries","pymatgen.analysis.diffusion.utils.supercells","pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc","pymatgen.analysis.diffusion.utils.tests.test_maggma","pymatgen.analysis.diffusion.utils.tests.test_parse_entries","pymatgen_diffusion","pymatgen_diffusion.aimd","pymatgen_diffusion.neb"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["_themes/README.rst","change_log.rst","index.rst","modules.rst","pymatgen.rst","pymatgen.analysis.rst","pymatgen.analysis.diffusion.rst","pymatgen.analysis.diffusion.aimd.rst","pymatgen.analysis.diffusion.aimd.clustering.rst","pymatgen.analysis.diffusion.aimd.pathway.rst","pymatgen.analysis.diffusion.aimd.rdf.rst","pymatgen.analysis.diffusion.aimd.tests.test_clustering.rst","pymatgen.analysis.diffusion.aimd.tests.test_pathway.rst","pymatgen.analysis.diffusion.aimd.tests.test_rdf.rst","pymatgen.analysis.diffusion.aimd.tests.test_van_hove.rst","pymatgen.analysis.diffusion.aimd.van_hove.rst","pymatgen.analysis.diffusion.analyzer.rst","pymatgen.analysis.diffusion.neb.rst","pymatgen.analysis.diffusion.neb.full_path_mapper.rst","pymatgen.analysis.diffusion.neb.io.rst","pymatgen.analysis.diffusion.neb.pathfinder.rst","pymatgen.analysis.diffusion.neb.periodic_dijkstra.rst","pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.rst","pymatgen.analysis.diffusion.neb.tests.test_io.rst","pymatgen.analysis.diffusion.neb.tests.test_pathfinder.rst","pymatgen.analysis.diffusion.tests.test_analyzer.rst","pymatgen.analysis.diffusion.utils.rst","pymatgen.analysis.diffusion.utils.edge_data_from_sc.rst","pymatgen.analysis.diffusion.utils.maggma.rst","pymatgen.analysis.diffusion.utils.parse_entries.rst","pymatgen.analysis.diffusion.utils.supercells.rst","pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.rst","pymatgen.analysis.diffusion.utils.tests.test_maggma.rst","pymatgen.analysis.diffusion.utils.tests.test_parse_entries.rst","pymatgen_diffusion.rst","pymatgen_diffusion.aimd.rst","pymatgen_diffusion.neb.rst"],objects:{"pymatgen.analysis":{diffusion:[6,0,0,"-"]},"pymatgen.analysis.diffusion":{aimd:[7,0,0,"-"],analyzer:[16,0,0,"-"],neb:[17,0,0,"-"],utils:[26,0,0,"-"]},"pymatgen.analysis.diffusion.aimd":{clustering:[8,0,0,"-"],pathway:[9,0,0,"-"],rdf:[10,0,0,"-"],van_hove:[15,0,0,"-"]},"pymatgen.analysis.diffusion.aimd.clustering":{Kmeans:[8,1,1,""],KmeansPBC:[8,1,1,""],get_random_centroid:[8,3,1,""],get_random_centroids:[8,3,1,""]},"pymatgen.analysis.diffusion.aimd.clustering.Kmeans":{cluster:[8,2,1,""],get_centroids:[8,2,1,""],get_labels:[8,2,1,""],should_stop:[8,2,1,""]},"pymatgen.analysis.diffusion.aimd.clustering.KmeansPBC":{get_centroids:[8,2,1,""],get_labels:[8,2,1,""],should_stop:[8,2,1,""]},"pymatgen.analysis.diffusion.aimd.pathway":{ProbabilityDensityAnalysis:[9,1,1,""],SiteOccupancyAnalyzer:[9,1,1,""]},"pymatgen.analysis.diffusion.aimd.pathway.ProbabilityDensityAnalysis":{from_diffusion_analyzer:[9,2,1,""],generate_stable_sites:[9,2,1,""],get_full_structure:[9,2,1,""],to_chgcar:[9,2,1,""]},"pymatgen.analysis.diffusion.aimd.pathway.SiteOccupancyAnalyzer":{coords_ref:[9,4,1,""],from_diffusion_analyzer:[9,2,1,""],get_average_site_occupancy:[9,2,1,""],nsites:[9,4,1,""],site_occ:[9,4,1,""],structure:[9,4,1,""]},"pymatgen.analysis.diffusion.aimd.rdf":{RadialDistributionFunction:[10,1,1,""],RadialDistributionFunctionFast:[10,1,1,""]},"pymatgen.analysis.diffusion.aimd.rdf.RadialDistributionFunction":{coordination_number:[10,2,1,""],export_rdf:[10,2,1,""],from_species:[10,2,1,""],get_rdf_plot:[10,2,1,""]},"pymatgen.analysis.diffusion.aimd.rdf.RadialDistributionFunctionFast":{get_coordination_number:[10,2,1,""],get_one_rdf:[10,2,1,""],get_rdf:[10,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests":{test_clustering:[11,0,0,"-"],test_pathway:[12,0,0,"-"],test_rdf:[13,0,0,"-"],test_van_hove:[14,0,0,"-"]},"pymatgen.analysis.diffusion.aimd.tests.test_clustering":{KmeansPBCTest:[11,1,1,""],KmeansTest:[11,1,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_clustering.KmeansPBCTest":{test_cluster:[11,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_clustering.KmeansTest":{test_cluster:[11,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_pathway":{ProbabilityDensityTest:[12,1,1,""],SiteOccupancyTest:[12,1,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_pathway.ProbabilityDensityTest":{test_generate_stable_sites:[12,2,1,""],test_probability:[12,2,1,""],test_probability_classmethod:[12,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_pathway.SiteOccupancyTest":{test_site_occupancy:[12,2,1,""],test_site_occupancy_classmethod:[12,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_rdf":{RDFTest:[13,1,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_rdf.RDFTest":{test_rdf:[13,2,1,""],test_rdf_coordination_number:[13,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_van_hove":{EvolutionAnalyzerTest:[14,1,1,""],RDFTest:[14,1,1,""],VanHoveTest:[14,1,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_van_hove.EvolutionAnalyzerTest":{test_get_df:[14,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_van_hove.RDFTest":{setUp:[14,2,1,""],test_raises_ValueError_if_reference_species_not_in_structure:[14,2,1,""],test_raises_ValueError_if_sigma_is_not_positive:[14,2,1,""],test_raises_ValueError_if_species_not_in_structure:[14,2,1,""],test_raises_valueerror_if_ngrid_is_less_than_2:[14,2,1,""],test_rdf:[14,2,1,""],test_rdf_coordination_number:[14,2,1,""],test_rdf_two_species_coordination_number:[14,2,1,""]},"pymatgen.analysis.diffusion.aimd.tests.test_van_hove.VanHoveTest":{test_van_hove:[14,2,1,""]},"pymatgen.analysis.diffusion.aimd.van_hove":{EvolutionAnalyzer:[15,1,1,""],VanHoveAnalysis:[15,1,1,""]},"pymatgen.analysis.diffusion.aimd.van_hove.EvolutionAnalyzer":{atom_dist:[15,2,1,""],get_df:[15,2,1,""],get_min_dist:[15,2,1,""],get_pairs:[15,2,1,""],plot_atomic_evolution:[15,2,1,""],plot_evolution_from_data:[15,2,1,""],plot_rdf_evolution:[15,2,1,""],rdf:[15,2,1,""]},"pymatgen.analysis.diffusion.aimd.van_hove.VanHoveAnalysis":{get_1d_plot:[15,2,1,""],get_3d_plot:[15,2,1,""]},"pymatgen.analysis.diffusion.analyzer":{DiffusionAnalyzer:[16,1,1,""],fit_arrhenius:[16,3,1,""],get_arrhenius_plot:[16,3,1,""],get_conversion_factor:[16,3,1,""],get_extrapolated_conductivity:[16,3,1,""],get_extrapolated_diffusivity:[16,3,1,""]},"pymatgen.analysis.diffusion.analyzer.DiffusionAnalyzer":{as_dict:[16,2,1,""],export_msdt:[16,2,1,""],from_dict:[16,2,1,""],from_files:[16,2,1,""],from_structures:[16,2,1,""],from_vaspruns:[16,2,1,""],get_drift_corrected_structures:[16,2,1,""],get_framework_rms_plot:[16,2,1,""],get_msd_plot:[16,2,1,""],get_summary_dict:[16,2,1,""],plot_msd:[16,2,1,""]},"pymatgen.analysis.diffusion.neb":{full_path_mapper:[18,0,0,"-"],io:[19,0,0,"-"],pathfinder:[20,0,0,"-"],periodic_dijkstra:[21,0,0,"-"]},"pymatgen.analysis.diffusion.neb.full_path_mapper":{ChargeBarrierGraph:[18,1,1,""],MigrationGraph:[18,1,1,""],almost:[18,3,1,""],check_uc_hop:[18,3,1,""],generic_groupby:[18,3,1,""],get_hop_site_sequence:[18,3,1,""],get_only_sites_from_structure:[18,3,1,""],map_hop_sc2uc:[18,3,1,""]},"pymatgen.analysis.diffusion.neb.full_path_mapper.ChargeBarrierGraph":{get_least_chg_path:[18,2,1,""],get_summary_dict:[18,2,1,""],populate_edges_with_chg_density_info:[18,2,1,""]},"pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph":{add_data_to_similar_edges:[18,2,1,""],assign_cost_to_graph:[18,2,1,""],get_path:[18,2,1,""],get_structure_from_entries:[18,2,1,""],get_summary_dict:[18,2,1,""],host_structure:[18,2,1,""],only_sites:[18,2,1,""],symm_structure:[18,2,1,""],unique_hops:[18,2,1,""],with_base_structure:[18,2,1,""],with_distance:[18,2,1,""],with_local_env_strategy:[18,2,1,""]},"pymatgen.analysis.diffusion.neb.io":{MVLCINEBEndPointSet:[19,1,1,""],MVLCINEBSet:[19,1,1,""],get_endpoint_dist:[19,3,1,""],get_endpoints_from_index:[19,3,1,""]},"pymatgen.analysis.diffusion.neb.pathfinder":{DistinctPathFinder:[20,1,1,""],IDPPSolver:[20,1,1,""],MigrationHop:[20,1,1,""]},"pymatgen.analysis.diffusion.neb.pathfinder.DistinctPathFinder":{get_paths:[20,2,1,""],write_all_paths:[20,2,1,""]},"pymatgen.analysis.diffusion.neb.pathfinder.IDPPSolver":{from_endpoints:[20,2,1,""],get_unit_vector:[20,2,1,""],run:[20,2,1,""]},"pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop":{get_sc_structures:[20,2,1,""],get_structures:[20,2,1,""],length:[20,2,1,""],write_path:[20,2,1,""]},"pymatgen.analysis.diffusion.neb.periodic_dijkstra":{get_optimal_pathway_rev:[21,3,1,""],periodic_dijkstra:[21,3,1,""],periodic_dijkstra_on_sgraph:[21,3,1,""]},"pymatgen.analysis.diffusion.neb.tests":{test_full_path_mapper:[22,0,0,"-"],test_io:[23,0,0,"-"],test_pathfinder:[24,0,0,"-"]},"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper":{ChargeBarrierGraphTest:[22,1,1,""],MigrationGraphComplexTest:[22,1,1,""],MigrationGraphFromEntriesTest:[22,1,1,""],MigrationGraphSimpleTest:[22,1,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.ChargeBarrierGraphTest":{setUp:[22,2,1,""],test_get_summary_dict:[22,2,1,""],test_integration:[22,2,1,""],test_populate_edges_with_chg_density_info:[22,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.MigrationGraphComplexTest":{setUp:[22,2,1,""],test_add_data_to_similar_edges:[22,2,1,""],test_assign_cost_to_graph:[22,2,1,""],test_get_path:[22,2,1,""],test_group_and_label_hops:[22,2,1,""],test_not_matching_first:[22,2,1,""],test_periodic_dijkstra:[22,2,1,""],test_unique_hops_dict:[22,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.MigrationGraphFromEntriesTest":{setUp:[22,2,1,""],test_m_graph_construction:[22,2,1,""],test_m_graph_from_entries_failed:[22,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.MigrationGraphSimpleTest":{setUp:[22,2,1,""],test_get_pos_and_migration_hop:[22,2,1,""],test_get_summary_dict:[22,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_io":{MVLCINEBEndPointSetTest:[23,1,1,""],MVLCINEBSetTest:[23,1,1,""],UtilityTest:[23,1,1,""],get_path:[23,3,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_io.MVLCINEBEndPointSetTest":{endpoint:[23,4,1,""],test_incar:[23,2,1,""],test_incar_user_setting:[23,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_io.MVLCINEBSetTest":{structures:[23,4,1,""],test_incar:[23,2,1,""],test_incar_user_setting:[23,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_io.UtilityTest":{structure:[23,4,1,""],test_get_endpoint_dist:[23,2,1,""],test_get_endpoints_from_index:[23,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_pathfinder":{DistinctPathFinderTest:[24,1,1,""],IDPPSolverTest:[24,1,1,""],MigrationHopTest:[24,1,1,""],get_path:[24,3,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_pathfinder.DistinctPathFinderTest":{test_get_paths:[24,2,1,""],test_max_path_length:[24,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_pathfinder.IDPPSolverTest":{final_struct:[24,4,1,""],init_struct:[24,4,1,""],test_idpp:[24,2,1,""],test_idpp_from_ep:[24,2,1,""]},"pymatgen.analysis.diffusion.neb.tests.test_pathfinder.MigrationHopTest":{setUp:[24,2,1,""],test_get_sc_structures:[24,2,1,""],test_get_start_end_structs_from_hop:[24,2,1,""],test_get_start_end_structs_from_hop_vac:[24,2,1,""]},"pymatgen.analysis.diffusion.tests":{test_analyzer:[25,0,0,"-"]},"pymatgen.analysis.diffusion.tests.test_analyzer":{DiffusionAnalyzerTest:[25,1,1,""],FuncTest:[25,1,1,""]},"pymatgen.analysis.diffusion.tests.test_analyzer.DiffusionAnalyzerTest":{test_from_structure_NPT:[25,2,1,""],test_init:[25,2,1,""],test_init_npt:[25,2,1,""]},"pymatgen.analysis.diffusion.tests.test_analyzer.FuncTest":{test_fit_arrhenius:[25,2,1,""],test_get_conversion_factor:[25,2,1,""]},"pymatgen.analysis.diffusion.utils":{edge_data_from_sc:[27,0,0,"-"],parse_entries:[29,0,0,"-"],supercells:[30,0,0,"-"]},"pymatgen.analysis.diffusion.utils.edge_data_from_sc":{add_edge_data_from_sc:[27,3,1,""],get_uc_pos:[27,3,1,""],get_unique_hop:[27,3,1,""],mh_eq:[27,3,1,""]},"pymatgen.analysis.diffusion.utils.parse_entries":{get_inserted_on_base:[29,3,1,""],get_insertion_energy:[29,3,1,""],get_matched_structure_mapping:[29,3,1,""],get_sym_migration_ion_sites:[29,3,1,""],process_entries:[29,3,1,""]},"pymatgen.analysis.diffusion.utils.supercells":{get_sc_fromstruct:[30,3,1,""],get_start_end_structures:[30,3,1,""]},"pymatgen.analysis.diffusion.utils.tests":{test_edge_data_from_sc:[31,0,0,"-"],test_parse_entries:[33,0,0,"-"]},"pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc":{test_add_edge_data_from_sc:[31,3,1,""],test_get_uc_pos:[31,3,1,""]},"pymatgen.analysis.diffusion.utils.tests.test_parse_entries":{ParseEntriesTest:[33,1,1,""]},"pymatgen.analysis.diffusion.utils.tests.test_parse_entries.ParseEntriesTest":{setUp:[33,2,1,""],test_filter_and_merge:[33,2,1,""],test_get_all_sym_sites:[33,2,1,""],test_get_inserted_on_base:[33,2,1,""],test_get_insertion_energy:[33,2,1,""],test_process_ents:[33,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute"},terms:{"0000":[23,24],"0001":24,"0003":24,"0004":24,"0005":24,"0006":24,"0008":24,"0009":24,"001":20,"0023":24,"0028":24,"0030":24,"0031":24,"0032":24,"0036":24,"0043":24,"005":10,"0050":23,"0055":24,"0057":24,"0078":24,"0085":24,"0132":24,"0133":24,"0137":24,"0139":24,"0181":24,"0196":24,"0211":24,"0218":24,"0219":24,"0220":24,"0221":24,"0224":24,"0226":24,"0227":24,"0231":24,"0232":24,"0233":24,"0234":24,"0310":24,"0319":24,"0383":24,"0390":24,"0392":24,"0393":24,"0394":23,"0396":24,"0416":23,"0419":23,"0422":24,"0423":24,"0426":24,"0428":24,"0431":24,"0432":24,"0435":24,"0464":24,"0473":24,"0511":24,"0527":24,"0550":24,"0584":24,"0588":24,"0592":24,"0630":23,"0640":23,"0648":24,"0665":24,"0741":24,"0774":24,"0783517723596":24,"0784":24,"0799":23,"0844":24,"0846":24,"0868":23,"0893":23,"089343":23,"0910":2,"0919":24,"0924":24,"0929":23,"0943":24,"0947":24,"0948":24,"0950":24,"0951":24,"0952":24,"0953":24,"0954":24,"0968":24,"0972":24,"0973":24,"0975":24,"0976":24,"0990":24,"0991":24,"0994":24,"100":18,"1000":[8,16,20],"100000":18,"1001":24,"1009":24,"101":[10,15],"1020":24,"1021":16,"1024":24,"1029":24,"1039":16,"1041":24,"1043":24,"1046":23,"1049":24,"1050":24,"1054":24,"1058":24,"1066":24,"1082":24,"1098":24,"1106":24,"1114":24,"1115":24,"113":20,"1140":24,"1143":24,"1173":24,"1174":24,"1189":24,"1191":24,"1192":24,"1196":24,"1200":24,"1201":24,"1203":23,"1223":23,"1225":24,"1236":24,"1239":24,"1240":24,"1242":24,"1243":24,"1245":24,"1246":24,"1247":24,"1248":24,"1249":24,"1251":24,"1252":24,"1253":24,"1255":24,"1256":24,"1257":24,"1259":24,"1260":24,"1261":24,"1264":24,"1276":24,"1277":24,"1280":24,"1303":24,"1314":24,"131710473490111":23,"1318":24,"1320":24,"1329":23,"1370":24,"1373":24,"1374":24,"1381":24,"140":20,"1407":24,"14080369885537":23,"1410":24,"1412":24,"1421":[23,24],"1436976":2,"1437":24,"1439":24,"1441":24,"1447":24,"1448":24,"1454":24,"1455":24,"1457":23,"1459":24,"148":16,"1578":24,"1615":24,"163":15,"1653":24,"1656":24,"1657":24,"1658":24,"1659":24,"1660":24,"1661":24,"1669":24,"1670":24,"1674":24,"173":15,"1787":23,"1817":24,"1821":24,"1822":24,"1847":24,"1874":24,"1889":24,"1893":24,"1914":24,"1918":24,"1957":24,"1961":24,"1978":24,"1981":24,"1999":24,"1mp2x12":16,"200":16,"2000":20,"2004":24,"2009":24,"2012":16,"2013":16,"2014":20,"2015":[2,9,15],"2016":24,"2018":15,"2024":24,"2059":24,"2093":24,"2099":24,"2100":24,"2101":24,"2102":24,"2108":24,"2113":24,"2119":24,"2121":23,"2129":24,"2130":24,"2137":24,"2139":24,"214106":20,"2153":23,"2156":24,"2160":24,"2180":24,"2181":24,"2184":24,"2199":24,"2203":24,"2213":23,"2218449146199":23,"2219":24,"2220":24,"2224":24,"2228":24,"2243":24,"2266":24,"2268":24,"2270":24,"2272":24,"2274":24,"2278":24,"2279":24,"2281":24,"2283":24,"2296":24,"2300":24,"2339":24,"2347":24,"2372":23,"2376":24,"2392":24,"240":[20,30],"2449":24,"2450":24,"2499":24,"2500":[23,24],"2501":24,"2503":24,"2509":24,"2510":24,"2515":24,"2517":24,"2550":24,"2551":24,"2608":24,"2614":24,"2624":24,"2628":23,"2636":24,"2638":24,"2642":24,"2645":23,"2660":24,"2665":24,"2666":24,"2672":24,"2680":23,"2684":23,"2697":24,"2702":24,"2705":24,"2707":24,"2711":24,"2714":24,"2718":24,"2722":24,"2726":24,"2729":24,"2732":24,"2733":24,"2739":24,"2743":24,"2744":24,"2747":24,"2784":24,"2785":24,"2787":23,"2801":24,"2813":24,"2822":24,"2829":24,"2830":24,"2835":24,"2839":24,"2840":24,"2842":24,"2852":23,"2876":24,"2879":23,"2898":24,"2901":24,"2929":24,"2933":24,"2934":24,"2960":24,"2988":24,"2998":24,"2999":24,"2dt":16,"2x2x2":18,"3034":24,"3108":24,"3110":24,"3116":24,"3136":23,"3154":[23,24],"3155":24,"3156":24,"3179":23,"3213":24,"3220":24,"3224":24,"3228":24,"3255":24,"3256":24,"3269":24,"3302":24,"3308":24,"3310":24,"3312":24,"3313":24,"3322":24,"3324":24,"3325":24,"3332":24,"3333":24,"3335":24,"3336":24,"3337":24,"3395":24,"3417":24,"3419":24,"3538":24,"3541":24,"3543":23,"3545":24,"3546":24,"3552":24,"3553":24,"3556":24,"3559":24,"3561":24,"3563":24,"3588":23,"3597":24,"3601":24,"3603":24,"3619":24,"3621":24,"3633":24,"3635":24,"3658":24,"3660":24,"3661":24,"3664":24,"3672":24,"3680":23,"3694":24,"3711":24,"3716":24,"3720":24,"3721":24,"3723":24,"3724":24,"3727":24,"3730":24,"3736":24,"3739":24,"3740":24,"3741":24,"3742":24,"3743":24,"3744":24,"3745":24,"3746":24,"3747":24,"3748":24,"3749":24,"3752":24,"3753":24,"3755":24,"3756":24,"3757":24,"3763":24,"3767":24,"3769":24,"3774":24,"3775":24,"3785":24,"3791":24,"3797":23,"3799":24,"3800":24,"3801":24,"3806":24,"3829":24,"3832":24,"3893":24,"3898":24,"3942":24,"3946":24,"3957":24,"3959":24,"3971":24,"3973":24,"3974":24,"3rp":9,"4006":24,"4023":24,"4024":24,"4026":24,"4027":24,"4028":24,"4034":24,"4035":24,"4036":24,"4047":24,"4049":24,"4061":24,"4062":24,"4075":23,"4086":24,"4087":24,"4088":24,"4090":24,"4112":24,"4114":24,"4115":24,"411723299877":24,"4132":23,"4168":24,"4175":24,"4189":24,"4190":24,"4201":23,"4202":24,"4207":24,"4208":24,"4215":24,"4217":24,"4220":24,"4221":24,"4228":24,"4229":24,"4230":24,"4252":24,"4253":24,"4299":24,"4302":24,"4360":23,"4370":23,"4398":24,"4400":24,"4436":24,"4439":24,"4444":24,"4458":24,"4459":24,"4461":24,"4483":24,"4487":24,"4491":23,"4493":24,"4499":24,"4506":23,"4522":24,"4530":24,"4539":23,"4547":24,"4553":24,"4574":[23,24],"4577":24,"4584":23,"4589":24,"4590":24,"4591":24,"4593":24,"4604":24,"4605":24,"4611":24,"4617":24,"4622":24,"4648":24,"4676":24,"4681":24,"4692":24,"4693":24,"4699":24,"4703":24,"4716":24,"4720":24,"4722":24,"4732":24,"4734":24,"4740":24,"4751":24,"4765":24,"4767":24,"4769":24,"4770":24,"4773":24,"4774":23,"4775":24,"47759961582329":24,"4779":24,"4782":24,"4786":24,"4792":24,"4821":24,"4825":24,"4835":24,"4861":24,"4863":24,"4867":24,"4868":24,"4871":24,"4873":24,"4884":24,"4889":24,"4923":24,"4947":24,"4948":23,"4950":23,"4966":24,"4973":[23,24],"4977":24,"4980":24,"4982":24,"4983":24,"4991":24,"4992":24,"4994":24,"4995":24,"4996":24,"4997":24,"5000":[23,24],"5002":24,"5004":24,"5010":24,"5011":24,"5018":24,"5019":24,"5020":24,"5023":24,"5033":24,"5040":24,"5041":24,"5046":24,"5049":24,"5050":[23,24],"5052":24,"5063":24,"5064":24,"5067":24,"5072":24,"5073":24,"5080":24,"5086":24,"510":23,"5102":24,"5103":24,"5110":24,"5112":24,"5118":24,"5120":24,"5124":24,"5125":24,"5129":24,"5132":24,"5133":24,"5134":24,"5135":24,"5136":24,"5145":24,"5155":24,"5167":24,"5169":24,"5185":24,"5190":24,"5201":24,"5202":24,"5214":24,"5215":24,"5219":24,"5220":24,"5224":24,"5225":24,"5229":24,"5232":24,"5235":24,"5240":24,"5249":24,"5256":24,"5258":24,"5259":24,"5260":24,"5261":24,"5263":24,"5264":24,"5266":24,"5268":24,"5272":24,"5281":24,"5282":24,"5288":24,"5290":24,"5295":24,"5319":24,"5328":24,"5329":24,"534":2,"5351":24,"5352":24,"5373":24,"5392":24,"5393":24,"5401":24,"5402":24,"5406":24,"5409":24,"5410":24,"5411":24,"5416":23,"5423":24,"5426":24,"5428":24,"5439":24,"5449":24,"5452":24,"5455":24,"5461":24,"5475":24,"5476":24,"5488":24,"5494":24,"5502":24,"5503":24,"5517":24,"5520":24,"5521":24,"5544":24,"5551":24,"5563":24,"5569":24,"5580":23,"5581":24,"5583":24,"5599":24,"5614":24,"5629":24,"5630":23,"5640":23,"5649":24,"5654":24,"5672":24,"5688":24,"5698":24,"5699":24,"5700":24,"5704":24,"5710":24,"5714":24,"5719":24,"5720":24,"5723":24,"5726":24,"5732":24,"5734":24,"5735":24,"5737":24,"5747":24,"5752":24,"5769":24,"5773":24,"5774":24,"5782":24,"5783":24,"5799":23,"5805":23,"5815":2,"5818":24,"582":23,"5836":24,"5860":24,"5868":23,"5895":23,"5951":24,"5953":24,"5958":24,"5964":24,"5965":24,"5966":24,"5974":[23,24],"5976":24,"5977":24,"6007":24,"6014":24,"6024":24,"6026":24,"6027":24,"6030":24,"6033":24,"6034":24,"6049":24,"6050":24,"6056":24,"6065":24,"6066":24,"6074":24,"6085":24,"6125":24,"6127":24,"6137":24,"6142":24,"6160":24,"6203":23,"6207":23,"6212":24,"6221":24,"6226":24,"6233":24,"6237":24,"6243":24,"6244":24,"6245":24,"6246":24,"6247":24,"6248":24,"6249":24,"6250":24,"6251":24,"6252":24,"6253":24,"6254":24,"6255":24,"6256":24,"6257":24,"6258":24,"6264":24,"6266":24,"6270":24,"6271":24,"6274":24,"6279":24,"6280":24,"6281":24,"6289":24,"6318":24,"6326":24,"6335":24,"6338":24,"6340":[23,24],"634014":23,"6342":23,"6375":23,"6433":24,"6438":24,"6439":24,"6442":24,"6443":24,"6454":24,"6455":24,"6456":24,"6457":[23,24],"6458":24,"6461":24,"6462":24,"6490":24,"6492":24,"6581":23,"6582":24,"6664":24,"6665":24,"6667":24,"6668":24,"6675":24,"6676":24,"6678":24,"6685":24,"6687":24,"6688":24,"6690":24,"6691":24,"6692":24,"6727":24,"6732":24,"6738":24,"6740":24,"6744":24,"6745":24,"6778":24,"6824":24,"6826":24,"6832":24,"6840":24,"6853":24,"6862":24,"6865":23,"6869":24,"6876":24,"6906":24,"6907":24,"6956":23,"7097":24,"7098":24,"7099":24,"7109":24,"7118":24,"7119":23,"7121":23,"7158":24,"7160":24,"7161":24,"7170":24,"7178":24,"7181":24,"7191":24,"7198":23,"7210":24,"7211":24,"7213":23,"7234":23,"7239":24,"7242":24,"7246":24,"7248":24,"7251":24,"7255":24,"7264":24,"7266":24,"7271":24,"7275":24,"7278":24,"7280":24,"7282":24,"7285":24,"7286":24,"7291":24,"7293":24,"7298":24,"7303":24,"7310":24,"7329":24,"7330":24,"7343":24,"7345":24,"7352":24,"7356":24,"7357":24,"7364":24,"7365":24,"7366":23,"7367":24,"7372":[23,24],"7373":24,"7374":24,"7377":24,"7378":24,"7379":24,"7383":24,"7385":24,"7386":24,"7387":[23,24],"7388":24,"7390":24,"7393":24,"7394":24,"7395":24,"7396":24,"7397":24,"7426":24,"7432":24,"7437":24,"7446":24,"7462":24,"7463":24,"7468":24,"7475":24,"7483":24,"7488":24,"7490":24,"7491":24,"7492":24,"7497":24,"7500":[23,24],"7504":24,"7514":24,"7516":24,"7520":24,"7525":24,"7555":24,"7559":24,"7574":24,"7579":24,"7600":23,"7625":24,"7626":24,"7627":24,"7628":23,"7632":24,"7633":24,"7637":24,"7645":24,"7657":24,"7659":24,"7673":24,"7719":24,"7722":24,"7725":24,"7727":24,"7728":24,"7733":23,"7734":24,"7749":24,"7754":24,"7758":24,"7761":24,"7779":24,"7780":24,"7781":24,"7782":24,"7787":23,"7791":24,"7799":24,"7816":24,"7819":24,"7820":24,"7823":24,"7835":23,"7874":24,"7879":23,"7891":24,"7901":24,"7902":24,"7910":23,"7949":24,"7964":24,"7965":24,"7982":24,"7985":23,"7994":23,"7998":24,"8000":24,"8020":24,"8049":24,"8051":24,"8052":24,"8123":24,"8141":24,"8148":24,"815000056846058":23,"8169":24,"8172":24,"8187":24,"8270":23,"8318":[9,15],"8325":[9,15],"8326":24,"8330":24,"8331":24,"8339":24,"8340":24,"8341":24,"8342":24,"8343":24,"8344":24,"8347":24,"8358":24,"8363":24,"8370":23,"8538":24,"8543":[23,24],"8544":24,"8545":24,"8546":24,"8557":24,"8558":24,"8561":24,"8562":24,"8567":24,"858":2,"8601":23,"8611":24,"8612":24,"8626":23,"8693444977544":24,"8719":24,"8720":24,"8726":24,"8729":24,"8730":24,"8734":24,"8736":24,"8743":24,"8744":24,"8745":24,"8747":24,"8749":24,"8750":24,"8751":24,"8752":24,"8753":24,"8754":24,"8755":24,"8756":24,"8757":24,"8758":24,"8761":24,"8764":24,"8774":24,"8779":24,"8788":24,"8797":23,"8840":24,"8875":24,"8934":24,"8935":24,"8944":24,"8950":24,"8951":24,"8955":23,"8966":24,"8967":24,"8973":24,"8976":24,"9000":23,"9009":24,"9010":24,"9035":23,"9046":24,"9047":24,"9048":24,"9049":24,"9050":24,"9053":24,"9057":24,"9132":23,"9201":23,"9205":24,"92093":2,"9216":24,"9219":24,"9230":24,"9231":24,"9239":23,"9354":24,"9360":23,"9370":23,"9383":24,"9385":24,"9397":24,"9414":24,"9418":24,"9423":24,"9424":24,"9425":24,"9431":24,"9463":23,"9469":24,"9495":24,"9500":2,"9506":24,"9512":24,"9522":24,"9525":24,"9528":24,"9564":24,"9568":24,"9569":[23,24],"9571":24,"9572":24,"9574":24,"9577":24,"9578":24,"9584":23,"9587":24,"9595":24,"9598":24,"9599":24,"9607":24,"9618":24,"9624":24,"9630":24,"9635":24,"9656":24,"9658":24,"9659":24,"9673":24,"9678":24,"9681":24,"9718":24,"9719":24,"9751":24,"9756":24,"9768":24,"9769":24,"9771":24,"9774":24,"9780":24,"9781":24,"9785":24,"9798":24,"9815":24,"9817":24,"9818":24,"9825":24,"9865":24,"9868":24,"9871":24,"9880":24,"9882":24,"9884":24,"9885":24,"9887":24,"9888":24,"9889":24,"9893":23,"9896":24,"9897":24,"9898":24,"9900":24,"9901":20,"9902":24,"9903":24,"9909":24,"9911":24,"9920":24,"9925":23,"9926":24,"9927":24,"9929":24,"9950":23,"9985":23,"9989":24,"9990":24,"9991":24,"9992":24,"9995":24,"9996":24,"9997":24,"9999":24,"9999995733517":23,"boolean":27,"case":[11,12,13,14,18,20,22,23,24,33],"class":[2,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,33],"default":[10,15,16,18,20,21],"final":[8,20,27,30],"float":[9,10,15,16,18,20,27,29,30],"function":[9,10,15,18,20,21,27,29,30],"import":[1,8],"int":[8,10,15,16,18,19,20,21,27,30],"long":22,"new":[8,16,29],"public":2,"return":[8,9,10,15,16,18,19,20,21,27,29,30],"static":[8,15,18,20],"super":[16,27],"true":[10,18,20,22,27,29],"try":30,"while":20,AND:2,ARE:2,BUT:2,FOR:2,For:[2,8,16,18,20,29],HAS:2,ITS:2,NOT:2,N_s:9,Pls:2,SUCH:2,THE:2,The:[0,2,8,9,10,15,16,18,20,21,27,29,30],These:27,USE:2,Use:16,Used:16,Useful:16,Using:18,_subplot:15,_theme:0,abc:[23,24],abl:30,about:20,abov:[2,9],absolut:20,abspath:0,accompani:2,accordingli:16,account:18,accur:[18,29],across:21,adapt:8,add:[0,2,18,27],add_data_to_similar_edg:18,add_edge_data_from_sc:27,add_kei:18,added:[16,27],added_kei:18,adding:18,addit:[15,18,21],addition:29,addon:0,adjac:[10,15],advis:2,after:16,against:16,agreement:2,aimd:[5,6,16,34],algo:[8,20],algorithm:[8,9,20],all:[2,9,10,15,16,18,20,21,22,29,30],allow:[10,20,27,30],almost:18,along:[10,15],also:[0,29],altern:0,alwai:[2,10,15,20,21,22],amount:18,analys:[2,16],analysi:[1,2],analyz:[1,5,6,9,15],angl:[18,23,24,29],angle_tol:[18,29],angstrom:[9,10,15,18,20],ani:[2,15,16,18],appear:2,append:0,appli:[16,29],approach:20,arg:[16,19],argument:[15,16],aris:[2,16],arrai:[8,9,10,15,16,18],arrheniu:16,as_dict:16,ask:18,assign:18,assign_cost_to_graph:18,associ:[9,10,15,20],assum:[10,16,18,19,20,29],atom:[8,10,15,16,20,30],atom_dist:15,attribut:[9,27],avail:16,averag:[9,10,15,16],avg_nstep:[15,16],awai:21,axes:[10,15],axessubplot:15,axi:16,back:2,bad:1,bar:[15,16],base:[8,9,10,11,12,13,14,15,16,18,19,20,22,23,24,25,29,33],base_:29,base_entri:[18,29],base_struct:[29,30],base_struct_entri:29,base_structur:18,basi:2,basic:18,batteri:15,becaus:20,been:[1,2],befor:[14,16,22,24,33],below:16,best:[21,30],best_an:21,better:20,between:[9,16,18,19,20],bigger:29,binari:2,bool:[10,16,18,20,30],both:[16,18,20],boundari:[2,8,19],built:18,busi:2,c2ee23355j:16,calc:[1,30],calcul:[10,15,16,17,18,19,20,27,29,30],california:2,call:[20,21],callabl:[15,18,21],can:[0,8,9,15,16,18,20,21,22,29,30],cap:30,cation:[18,29],caus:2,cb_label:15,ceder:16,cell:[10,15,18,21,22,27,29,30],cell_rang:[10,15],center:10,centroid:8,chang:[8,16,20],character:15,charg:[16,18,22],chargebarriergraph:18,chargebarriergraphtest:22,check:[0,2,8,16,20,21,22],check_uc_hop:18,chem:[9,15,20],chemistri:16,chen:15,chgcar:9,choos:15,chose:8,chosen:20,chu:[9,15],cite:[9,15,16],classmethod:[9,10,16,18,20],cleanup:1,close:30,closer:9,closest:8,cluster:[2,5,6,7,9,34],cm203303y:16,cmap:15,cmocean:15,code:[2,18],color:15,color_plaett:15,column:15,combin:29,commerci:2,comp:18,compar:18,compat:1,complet:20,compon:[9,16,20],composit:10,compris:20,comput:[9,10,15,16],computed_entri:[18,29],computedentri:[18,29],computedstructureentri:[18,29],concentr:15,condit:[2,8,19],conduct:[9,15,16],conductor:[9,15,16],conf:0,configur:30,connect:18,consecut:20,consequenti:2,consid:[2,9,15,16],consider:16,constant:[16,20],constitut:16,construct:[18,20,30],constructor:16,constructur:18,contact:2,contain:[0,1,18,20,27,29],content:[0,5],contract:2,contributor:2,conveni:[16,20],converg:[9,16],convers:16,convert:16,coordin:[8,9,10],coordination_numb:10,coords_ref:9,copi:[2,18,29],core:[10,15,16,18,20,27,29,30],correct:[15,16],correl:[15,20],correspond:27,cost:[18,21],cost_kei:18,count:15,cover:22,cpu:10,creat:[9,11,12,13,14,16,22,23,24,25,29,30,33],crystal:9,csv:[10,15,16],cubic:[9,15,30],cubicsupercelltransform:30,current:[10,16,18],custom_kei:27,cutoff:[9,18,20],d_cutoff:9,damag:2,dat:[10,16],data:[2,8,10,15,16,18,27],data_arrai:27,databas:18,datafram:15,dataset:8,debug:30,decor:[18,29],decreas:30,defin:[15,18,29],deng:[9,15],densiti:[2,9,15,18,22],depend:20,deriv:2,describ:18,design:2,desir:16,detail:[2,20],determin:[8,9,16,18,20],develop:2,diagonali:22,dict:[16,18,21,29],dictionari:[18,21,29],differ:18,diffus:[1,2,5],diffusion_analyz:[9,15],diffusionanalyz:[1,2,9,15,16],diffusionanalyzertest:25,diffusivity_error:16,dijkstra:21,dimension:16,direct:[2,10,15,16],dirnam:[23,24],disclaim:2,disord:16,displac:[16,20],dist:19,distanc:[8,9,15,19,20],distinct:[15,20],distinctpathfind:20,distinctpathfindertest:24,distribut:[2,9,10,15],dmref:2,doc:[0,2],document:0,doe:[2,11,12,13,14,18,20,22,23,24,25,33],doesn:16,doi:16,don:[16,30],done:16,dopant:[9,15],drift:16,driv:0,drive:2,due:1,dure:[15,20],e_sc:27,each:[2,8,16,18,20,21,29],easi:20,easier:20,easili:16,edg:[18,21,27],edge_data_from_sc:[5,6,26],edu:[2,19],educ:2,either:[18,20],electrochem:16,electron:16,element:[8,10,15,16,19],els:16,empti:[8,18,30],end:[2,9,19,20,22,27],endors:2,endpoint:[18,19,20,23],energi:[9,16,18,20,29],engin:2,enhanc:[2,9,15],enough:[18,21,22],ensembl:10,entir:[22,29],entri:[18,27,29],environ:18,environment:16,ep_0:19,ep_1:19,equal:[18,27],equilval:18,equival:[18,20,27,29],error:[1,2,16],esit:[20,27,30],esp:16,especi:16,estim:16,etc:16,even:2,event:[2,18,30],everi:16,evolut:15,evolutionanalyz:15,evolutionanalyzertest:14,exactli:18,exampl:[8,16],exclus:2,execut:[11,12,13,14,22,23,24,25,33],exemplari:2,exercis:[14,22,24,33],exist:[0,16,20],exp:16,expect:16,export_msdt:16,export_rdf:10,express:2,extens:[10,16],extern:15,extra:15,extract:2,extrapol:16,extrem:20,factor:16,fals:[10,16,18,20,27,30],famili:16,far:8,fast:[9,10],faster:[16,30],featur:8,fee:2,fiel:19,field:[18,21],figsiz:15,file:[2,10,16,20],filenam:[9,10,16,20],filepath:16,filter:18,final_struct:24,find:[2,18,20,21,30],first:[15,16,18,19,20,29],fit:[2,16],fit_arrheniu:16,fix:1,fixtur:[14,22,24,33],flask:0,flip:18,fname:20,folder:0,follow:[0,2,9,15,16,21],forc:20,fork:2,form:[2,18,20],format:[9,10,16,18],formula:20,found:21,foundat:2,fraction:[8,9,18,29],frame:15,framework:[16,18],free:2,frequenc:16,fro:[18,29],from:[1,2,8,9,15,16,18,19,21,27,29,30],from_dict:16,from_diffusion_analyz:9,from_endpoint:20,from_fil:16,from_speci:10,from_structur:16,from_vasprun:16,full:29,full_path_mapp:[5,6,17,27,34],full_structur:18,fulli:20,fullpathmapp:27,func:15,functest:25,functiontyp:15,fund:2,further:9,futur:[2,15],gaussian:[10,15],gener:[8,9,16,18,19,20,30],generate_stable_sit:9,generic_groupbi:18,geometr:[8,30],get:[9,10,15,16,18,20,27,29],get_1d_plot:15,get_3d_plot:15,get_arrhenius_plot:16,get_atomic_distribut:15,get_average_site_occup:9,get_centroid:8,get_conversion_factor:16,get_coordination_numb:10,get_df:15,get_drift_corrected_structur:16,get_endpoint_dist:19,get_endpoints_from_index:19,get_extrapolated_conduct:16,get_extrapolated_diffus:16,get_framework_rms_plot:16,get_full_structur:9,get_hop_site_sequ:18,get_inserted_on_bas:29,get_insertion_energi:29,get_label:8,get_least_chg_path:18,get_matched_structure_map:29,get_min_dist:15,get_msd_plot:16,get_one_rdf:10,get_only_sites_from_structur:18,get_optimal_pathway_rev:21,get_pair:15,get_path:[18,20,23,24],get_random_centroid:8,get_rdf:10,get_rdf_plot:10,get_sc_fromstruct:30,get_sc_structur:20,get_start_end_structur:30,get_structur:20,get_structure_from_entri:18,get_summary_dict:[16,18],get_sym_migration_ion_sit:29,get_uc_po:27,get_unique_hop:27,get_unit_vector:20,gilman:2,git:0,give:30,given:[9,10,15,16,18,20,21,27,29],good:[2,16,21],grant:2,granular:16,graph:[16,18,21,22],grid:[9,10,15],group:[16,18,19,22,29],gtol:20,guess:[8,16,20],guid:0,halv:[18,29],handl:18,has:[1,9,16,18],have:[8,11,12,13,14,16,18,21,22,23,24,25,33],heap:21,heat:15,heavili:2,henkelman:[19,20],here:18,herebi:2,hereund:2,hierach:9,higher:9,highest:29,his:0,hmlli:1,holder:2,hook:[14,22,24,33],hop:[18,22,27,30],hop_dist:18,hop_label:27,hop_list:18,host:[18,20,29],host_structur:18,hove:[2,15],how:21,howev:2,html_theme:0,html_theme_path:0,http:19,huge:16,hundr:15,hydrogen:20,i_sc:27,idea:18,idpp:[1,2,20],idpp_kwarg:20,idppsolv:20,idppsolvertest:24,ignor:[15,27],imag:[10,15,16,18,20,21],img:18,implement:[1,8,10,15],impli:2,improv:20,incar:15,incident:2,includ:[1,2,9,10,15,16,20],include_mscd_t:16,include_msd_t:16,inconsist:16,increas:20,index:[2,8,10,15,18,21,27],indic:[9,10,15,18,19,20,21,29],indirect:2,individu:16,inequilval:22,info:20,inform:[16,18],init_struct:24,initi:[8,9,10,15,16,20,27,30],initial_centroid:8,initial_disp:16,initial_structur:16,inlcud:17,input:[15,16,18,19,20,29],insert:[18,29],inserted_:29,inserted_entri:[18,29],inserted_struct:29,insertion_energi:18,instanc:[11,12,13,14,22,23,24,25,29,33],instead:[1,16,20],int_:9,intend:0,intercal:20,intercol:18,interest:[9,10,15],interfaci:15,interpol:20,interrupt:2,interstiti:[9,15,20],interv:[9,15],invent:2,invers:18,ion:[15,16,18,20,27,29],ionic:[9,16],ionic_step_skip:16,is_averag:10,isit:[20,27,30],item:18,iter:[8,16,20,21,30],its:[2,16],jimag:21,jmmshn:1,jolla:2,json:[16,18,20],just:[10,20],kei:[18,21,27],kelvin:16,kenneth:0,keyword:[16,19],kind:29,kmean:8,kmeanspbc:8,kmeanspbctest:11,kmeanstest:11,known:20,kr_small:0,kwarg:[15,16,18,19,20],lab:2,label:[8,10,15,18,22,27],lambda:21,landscap:9,larg:0,later:18,lattic:[8,16,18,20,23,24,30],leaf:21,leaf_nod:21,least:[16,18],lee:16,legend:10,lenght:18,length:[18,20,22,29,30],less:[15,30],li10:16,li10gep2s12:16,li3fe4p4o16:20,li4fe4p4o16:20,liabil:2,liabl:2,librari:0,life4p4o16:20,like:[2,8,16,18,20],limit:[2,10,21],lin:15,linear:20,linearsegmentedcolormap:15,linspac:10,list:[2,8,9,10,15,16,18,19,20,27,29,30],list_in:18,listedcolormap:15,lithium:16,loc_peak:10,local:18,local_env:18,loss:2,lost:2,low:9,lowest:21,ltol:[18,29],m_graph:18,m_hop:18,made:16,maggma:[5,6,26],magmom:1,mai:[2,9,16],mail:2,main:16,mainli:20,mainten:2,make:[2,8,16,20,22],mani:[21,29,30],manifest:1,manipul:2,manner:20,map:[15,18,29],map_hop_sc2uc:18,match:[16,18,20,27,29],matching_:16,mater:[9,15],materi:[2,16,18],matplotlib:[15,16],matrix:[16,20,29],mavrl:19,max:16,max_atom:[20,30],max_disp:20,max_dist:18,max_imag:21,max_iter:8,max_path_length:20,max_val:18,maxim:10,maximum:[8,10,15,16,18,20,30],maxit:20,mean:[2,8,16,18,20],meant:16,measur:16,mechan:[16,20],melt:16,memori:16,merchant:2,met:2,metal:[18,29],metast:[18,29],method:[9,10,11,12,13,14,16,20,22,23,24,25,33],methodnam:[11,12,13,14,22,23,24,25,33],metric:8,mh1:27,mh2:27,mh_eq:27,miara:16,might:[15,18,21],migraiton:18,migrat:[1,2,18,20,27,29,30],migrating_ion:29,migrating_ion_entri:[18,29],migrating_speci:[18,20],migrationgraph:[18,27,29],migrationgraphcomplextest:22,migrationgraphfromentriestest:22,migrationgraphsimpletest:22,migrationhop:[18,20,22,27],migrationhoptest:24,migrationpath:27,migratrion:18,min:[18,20],min_atom:[20,30],min_length:[20,30],min_ob:16,min_step:16,minim:[10,20],minimum:[10,15,16,20,30],miss:21,mit:2,mitnebset:19,mitrelaxset:19,mitsuhiko:0,mn6o5f7:22,mobil:[16,18],mode:[15,16,18,20],modif:[2,19],modifi:2,modul:[2,5],moment:15,monti:[16,18,20],more:[1,2,9,15,18,20,29],most:[0,18],move:[16,20,21],mscd:16,msd:16,msite:1,msonabl:[16,18,20],much:30,multipl:16,multipli:16,multiprocess:16,must:[2,16,29],mvlcinebendpointset:19,mvlcinebendpointsettest:23,mvlcinebset:19,mvlcinebsettest:23,mxn:8,n_job:10,na3ps4:[9,15],name:[2,11,12,13,14,18,20,22,23,24,25,29,33],namespac:[1,2,3],nation:2,ncore:16,ndarrai:[8,16],nearest:9,nearneighbor:18,neb:[1,5,6,27,30,34],nebpath:20,need:[16,18,20,29],neglig:2,neighbor:18,neither:2,nest:9,network:[18,20],networkx:21,new_temp:16,ngrid:[10,15],nimag:20,nion:9,node:[18,21],non:18,none:[8,10,15,16,18,20,21,27],nor:2,note:[2,9,15,16,19,20],notic:2,now:[1,18],npt:16,nsite:9,ntimestep:9,number:[8,9,10,15,16,18,20,29,30],numpi:[9,10,16],nvt:16,nx3:9,object:[8,9,10,15,16,18,19,20,21,22,27,29,30],oblig:2,observ:16,obtain:[2,9,15,16,18,20,29,30],occup:9,occupi:18,offic:2,often:[16,21],old:8,old_centroid:8,omega:9,onc:16,one:[0,10,15,16,19,29],ong:[9,15,16],onli:[15,16,18,20,29],only_single_cat:[18,29],only_sit:18,onto:[18,29],oper:[2,18],optim:21,option:[10,15,16,18,21,29],order:[1,16],origin:16,other:[2,15,16,18,20],otherwis:[2,10,16],out:[0,2,29],output:[10,18],outsid:[18,23],over:[9,10,16,30],overal:16,oxid:16,p_ratio:9,packag:[1,2,5],paddl:16,page:[0,2],pair:[10,15,20,21,29],panda:15,paper:[9,15,16],paragraph:2,param:[9,18,19,20,29],paramet:[8,9,10,15,16,18,19,20,21,27,29,30],parent:21,pars:[15,16,18],parse_entri:[5,6,26],parseentriestest:33,part:15,parti:2,particular:[2,15],pass:[16,18],passthrough:20,path:[0,2,16,18,20,21,29],path_par:21,path_str:[23,24],pathfind:[5,6,17,18,27,34],pathwai:[5,6,7,17,18,21,34],pbc:8,peak:10,per:20,perc_mod:20,percol:[18,20],perfect:19,perform:[16,20],period:[2,8,19,21],periodic_dijkstra:[5,6,17,34],periodic_dijkstra_on_sgraph:21,periodicsit:[23,24,27,30],permiss:2,permit:2,phase:[16,18,29],phy:20,placehold:20,pleas:[2,9,15,16,20],plot:[10,15,16],plot_atomic_evolut:15,plot_evolution_from_data:15,plot_msd:16,plot_rdf_evolut:15,plt:16,pmg:30,pmg_structur:[9,10,20],point:[8,9,10,15,16,19,20,21,22],popul:[18,21,22],populate_edges_with_chg_density_info:18,posit:[8,20,27,29],possibl:[2,18,20,30],potenti:20,potential_data_kei:18,potential_field:18,potim:15,pre:16,precess:27,precis:[18,20],preliminari:2,present:[16,18,30],pretti:16,principl:[15,16],print:18,prior:2,probabilitydensityanalysi:9,probabilitydensitytest:12,probabl:[2,9],probe:15,process:[10,15,16,20,29],process_entri:29,procur:2,product:[2,18],profit:2,program:2,progress:2,project:0,promot:2,properti:[10,18,20],provid:[2,8,16,20,29],pull:2,purpos:2,put:0,py3k:1,pymatgen:[1,2],pymatgen_diffus:1,pymatgentest:[24,25],pypi:1,pyplot:16,python:18,quantit:15,quantiti:16,quickli:21,radial:[10,15],radialdistributionfunct:10,radialdistributionfunctionfast:10,radiu:[10,18,22],rais:[11,12,13,14,22,23,24,25,33],random:8,randomli:8,rang:[10,15],rank:[18,29],rdf:[5,6,7,15,34],rdftest:[13,14],reaction:15,read:[18,19],real:16,reason:2,recommend:15,redistribut:2,reduc:[15,16],ref_speci:10,refer:[2,9,10,18,20],reference_indic:10,reference_speci:[10,15],regent:2,regress:16,regular:20,reitz:0,relat:[0,16],relax:[19,20],releas:[1,2],relev:2,reli:2,reliabl:16,remov:[1,20],repositori:[0,2],repres:20,represent:[16,18,30],reproduc:2,request:2,requir:[15,16,19],research:2,reserv:2,resolut:15,restrict:16,result:16,retain:2,revolution:2,richard:16,right:2,rmax:[10,15],rmin:10,rms:16,role:[9,15],run1:16,run2:16,run3:16,run:[8,10,16,20],runtest:[11,12,13,14,22,23,24,25,33],same:[9,10,18,20,22,27,29],sampl:16,san:29,saniti:22,save:[9,15,18],save_csv:15,sc_hop:18,sc_m:29,sc_mat:30,scheme:9,scienc:[2,16],scientif:2,seaborn:15,search:[2,21],second:19,secondari:16,see:[16,18,19,20],select:[9,15],self:[1,15],send:2,sens:16,sequenc:[9,16,18],sequenti:16,serial:16,servic:2,set1:15,set:[9,10,14,15,16,18,19,20,21,22,24,33],setup:[14,22,24,33],sgraph:21,shall:2,shallow:9,shape:16,shortest:[9,15],should:[1,8,9,16,18,22],should_stop:8,show:16,sigma:[10,15],similar:[16,22],similiarli:22,simpl:8,simul:[7,9,10,15,16,20,30],sinc:[21,29],singl:[10,18,29],site:[9,16,18,19,20,22,27,29,30],site_index:21,site_indic:19,site_occ:9,siteoccupancyanalyz:9,siteoccupancytest:12,size:[20,29,30],skip:15,slope:16,slow:[9,15],slowli:9,small:0,smaller:29,smallest:[20,30],smear:[10,15],smidstrup:20,smooth:[10,16],sodium:15,softwar:[2,16,20],solid:15,solver:[1,20],some:[15,20,29],sometim:16,sort_tol:20,sourc:[2,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,27,29,30,31,33],space:29,spacegroupanalyz:[18,29],speci:[9,10,15,16,18,20,29],special:2,specif:[2,18],specifi:[11,12,13,14,15,18,22,23,24,25,33],spectrum:15,speed:16,spring:20,spring_const:20,squar:[8,16],stabil:16,stabl:9,stable_sit:9,standard:[0,16,20],start:[16,18,20,30],start_u:18,state:[15,16],statist:[15,16],step:[9,15,16,20],step_siz:20,step_skip:[15,16],stipul:16,stol:[18,29],stop:[8,16,21],store:9,str:[9,10,15,16,18,20,21,27,29],strategi:18,strict:[2,18,29],strictur:16,string:[10,15,16,18,20],struc_sc:30,structr:27,structur:[2,9,10,15,16,18,19,20,23,24,27,29,30],structure_is_bas:18,structure_match:[27,29],structuregraph:[18,21],structurematch:[18,27,29],studi:16,subject:16,submodul:[0,5,34],subsequ:20,subset:[9,15],substitut:2,suffici:16,suit:1,sum:8,summari:[16,23,24],supercel:[5,6,10,15,18,20,26,27,29],superion:[9,15,16],suppli:[2,8,16],support:[2,10,16,19,20],sure:22,symbol:[10,15],symm_structur:[18,20],symmetr:[18,20,27],symmetri:[18,20,27,29],symmetrizedstructur:20,symprec:[18,20,27,29],sys:0,tabl:15,take:[10,16,27,29],tang:15,target:21,target_label:18,target_reach:21,technolog:2,temp:16,temperatur:16,term:[2,9],termin:30,test:19,test_add_data_to_similar_edg:22,test_add_edge_data_from_sc:31,test_assign_cost_to_graph:22,test_filter_and_merg:33,test_fit_arrheniu:25,test_from_structure_npt:25,test_generate_stable_sit:12,test_get_all_sym_sit:33,test_get_conversion_factor:25,test_get_df:14,test_get_endpoint_dist:23,test_get_endpoints_from_index:23,test_get_inserted_on_bas:33,test_get_insertion_energi:33,test_get_path:[22,24],test_get_pos_and_migration_hop:22,test_get_sc_structur:24,test_get_start_end_structs_from_hop:24,test_get_start_end_structs_from_hop_vac:24,test_get_summary_dict:22,test_get_uc_po:31,test_group_and_label_hop:22,test_idpp:24,test_idpp_from_ep:24,test_incar:23,test_incar_user_set:23,test_init:25,test_init_npt:25,test_integr:22,test_m_graph_construct:22,test_m_graph_from_entries_fail:22,test_max_path_length:24,test_not_matching_first:22,test_periodic_dijkstra:22,test_populate_edges_with_chg_density_info:22,test_prob:12,test_probability_classmethod:12,test_process_:33,test_raises_valueerror_if_ngrid_is_less_than_2:14,test_raises_valueerror_if_reference_species_not_in_structur:14,test_raises_valueerror_if_sigma_is_not_posit:14,test_raises_valueerror_if_species_not_in_structur:14,test_rdf:14,test_rdf_coordination_numb:[13,14],test_rdf_two_species_coordination_numb:14,test_site_occup:12,test_site_occupancy_classmethod:12,test_unique_hops_dict:22,testcas:[11,12,13,14,22,23,24,33],than:[9,15,16,29],thei:[16,27],theme:0,theori:[2,19],thermal:15,thi:[0,2,8,9,10,15,16,19,20,21,22],those:[15,18,20],three:[2,10,15],threshold:9,through:[18,20,27],throughout:15,thu:8,time:[9,15,16],time_step:[15,16],timestep:16,to_chgcar:9,to_jimag:21,togeth:18,tol:[15,20],toler:[18,20,29],tool:[1,17],top:21,tort:2,total:[20,29],total_run_tim:16,tradit:16,trajectori:[2,8,9],transfer:2,transform:[27,30],translat:[10,15,18,29],trasform:27,tri:16,tube:[18,22],tube_radiu:18,tupl:[10,15,20,21,27,30],turn:22,two:[9,19,20,27],type:[8,9,15,16,18,19,20,21,29,30],typic:16,uc_hop:18,ucsd:2,uncorrel:16,under:[2,18],understand:2,uniform:9,uninterrupt:2,union:[10,15,18,27,30],uniqu:[18,22,27],unique_hop:18,unit:[15,16,18,20,22,23,27,30],unitcel:[27,30],unittest:[11,12,13,14,22,23,24,33],univers:2,unsort:18,until:[18,20,30],updat:2,usag:16,use:[0,2,9,11,12,13,14,15,16,18,22,23,24,25,29,33],use_strict_tol:[18,29],used:[0,2,8,9,15,16,18,20,21,27,29],useful:20,user:2,uses:[0,18],using:[2,9,10,15,18,19,20],usual:[16,20],utexa:19,util:[5,6,24,25],utilitytest:23,vac_mod:[18,20,30],vacanc:[18,20],valenc:16,valid:22,valu:[10,18,20],valueerror:[11,12,13,14,22,23,24,25,33],van:[2,15],van_hov:[5,6,7,34],vanhoveanalysi:15,vanhovetest:14,variabl:[16,27],varianc:16,vasp:[9,16,18,19],vaspinputset:19,vasprun:16,vec:20,vector:[10,15,18,20,30],veri:[0,15,21],version:8,vesta:[9,20],via:[1,16,20],view:20,virtual:[2,20],visual:[9,20],volum:[23,24],volumetricdata:18,vtst:19,vtsttool:19,wai:[2,21,22],wang:15,want:[16,20],warrant:2,warranti:2,water:10,weight:[16,21],welcom:2,well:8,were:20,what:16,wheel:16,when:[11,12,13,14,16,18,22,23,24,25,33],where:[8,9,16,21,29],whether:[2,10,16,18],which:[9,15,16,18,20],window:15,with_base_structur:18,with_dist:18,with_local_env_strategi:18,within:[15,18,27],without:[2,21],work:[2,8,18,20,27,29],working_ion:29,would:[15,16,20],write:[16,19,20],write_all_path:20,write_path:20,written:[2,10,16],x_label:15,xlim:10,xml:16,yield:20,ylim:10,you:[0,2,8,9,15,16,18,20],your:0,zero:[10,15],zheng:15,zhu:[9,15]},titles:["krTheme Sphinx Style","Change Log","Introduction","pymatgen","pymatgen namespace","pymatgen.analysis namespace","pymatgen.analysis.diffusion package","pymatgen.analysis.diffusion.aimd package","pymatgen.analysis.diffusion.aimd.clustering module","pymatgen.analysis.diffusion.aimd.pathway module","pymatgen.analysis.diffusion.aimd.rdf module","pymatgen.analysis.diffusion.aimd.tests.test_clustering module","pymatgen.analysis.diffusion.aimd.tests.test_pathway module","pymatgen.analysis.diffusion.aimd.tests.test_rdf module","pymatgen.analysis.diffusion.aimd.tests.test_van_hove module","pymatgen.analysis.diffusion.aimd.van_hove module","pymatgen.analysis.diffusion.analyzer module","pymatgen.analysis.diffusion.neb package","pymatgen.analysis.diffusion.neb.full_path_mapper module","pymatgen.analysis.diffusion.neb.io module","pymatgen.analysis.diffusion.neb.pathfinder module","pymatgen.analysis.diffusion.neb.periodic_dijkstra module","pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper module","pymatgen.analysis.diffusion.neb.tests.test_io module","pymatgen.analysis.diffusion.neb.tests.test_pathfinder module","pymatgen.analysis.diffusion.tests.test_analyzer module","pymatgen.analysis.diffusion.utils package","pymatgen.analysis.diffusion.utils.edge_data_from_sc module","pymatgen.analysis.diffusion.utils.maggma module","pymatgen.analysis.diffusion.utils.parse_entries module","pymatgen.analysis.diffusion.utils.supercells module","pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc module","pymatgen.analysis.diffusion.utils.tests.test_maggma module","pymatgen.analysis.diffusion.utils.tests.test_parse_entries module","pymatgen_diffusion package","pymatgen_diffusion.aimd package","pymatgen_diffusion.neb package"],titleterms:{acknowledg:2,aimd:[7,8,9,10,11,12,13,14,15,35],analysi:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],analyz:16,api:2,chang:[1,2],cite:2,cluster:[8,35],content:[6,7,17,26,34,35,36],contribut:2,copyright:2,diffus:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],document:2,edge_data_from_sc:27,exhaust:2,featur:2,full_path_mapp:[18,36],indic:2,introduct:2,krtheme:0,licens:2,log:[1,2],maggma:28,modul:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],namespac:[4,5],neb:[17,18,19,20,21,22,23,24,36],non:2,our:2,packag:[6,7,17,26,34,35,36],parse_entri:29,pathfind:[20,36],pathwai:[9,35],periodic_dijkstra:[21,36],polici:2,pymatgen:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],pymatgen_diffus:[34,35,36],rdf:[10,35],sphinx:0,style:0,submodul:[6,7,17,26,35,36],subpackag:[5,6,7,17,26,34,35,36],supercel:30,tabl:2,test:[11,12,13,14,22,23,24,25,31,32,33],test_analyz:25,test_clust:11,test_edge_data_from_sc:31,test_full_path_mapp:22,test_io:23,test_maggma:32,test_parse_entri:33,test_pathfind:24,test_pathwai:12,test_rdf:13,test_van_hov:14,util:[26,27,28,29,30,31,32,33],v2018:1,v2019:1,v2021:1,van_hov:[15,35]}}) \ No newline at end of file +Search.setIndex({docnames:["_themes/README","change_log","index","modules","pymatgen","pymatgen.analysis","pymatgen.analysis.diffusion","pymatgen.analysis.diffusion.aimd","pymatgen.analysis.diffusion.aimd.clustering","pymatgen.analysis.diffusion.aimd.pathway","pymatgen.analysis.diffusion.aimd.rdf","pymatgen.analysis.diffusion.aimd.tests.test_clustering","pymatgen.analysis.diffusion.aimd.tests.test_pathway","pymatgen.analysis.diffusion.aimd.tests.test_rdf","pymatgen.analysis.diffusion.aimd.tests.test_van_hove","pymatgen.analysis.diffusion.aimd.van_hove","pymatgen.analysis.diffusion.analyzer","pymatgen.analysis.diffusion.neb","pymatgen.analysis.diffusion.neb.full_path_mapper","pymatgen.analysis.diffusion.neb.io","pymatgen.analysis.diffusion.neb.pathfinder","pymatgen.analysis.diffusion.neb.periodic_dijkstra","pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper","pymatgen.analysis.diffusion.neb.tests.test_io","pymatgen.analysis.diffusion.neb.tests.test_pathfinder","pymatgen.analysis.diffusion.tests.test_analyzer","pymatgen.analysis.diffusion.utils","pymatgen.analysis.diffusion.utils.edge_data_from_sc","pymatgen.analysis.diffusion.utils.maggma","pymatgen.analysis.diffusion.utils.parse_entries","pymatgen.analysis.diffusion.utils.supercells","pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc","pymatgen.analysis.diffusion.utils.tests.test_maggma","pymatgen.analysis.diffusion.utils.tests.test_parse_entries","pymatgen_diffusion","pymatgen_diffusion.aimd","pymatgen_diffusion.neb"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["_themes/README.rst","change_log.rst","index.rst","modules.rst","pymatgen.rst","pymatgen.analysis.rst","pymatgen.analysis.diffusion.rst","pymatgen.analysis.diffusion.aimd.rst","pymatgen.analysis.diffusion.aimd.clustering.rst","pymatgen.analysis.diffusion.aimd.pathway.rst","pymatgen.analysis.diffusion.aimd.rdf.rst","pymatgen.analysis.diffusion.aimd.tests.test_clustering.rst","pymatgen.analysis.diffusion.aimd.tests.test_pathway.rst","pymatgen.analysis.diffusion.aimd.tests.test_rdf.rst","pymatgen.analysis.diffusion.aimd.tests.test_van_hove.rst","pymatgen.analysis.diffusion.aimd.van_hove.rst","pymatgen.analysis.diffusion.analyzer.rst","pymatgen.analysis.diffusion.neb.rst","pymatgen.analysis.diffusion.neb.full_path_mapper.rst","pymatgen.analysis.diffusion.neb.io.rst","pymatgen.analysis.diffusion.neb.pathfinder.rst","pymatgen.analysis.diffusion.neb.periodic_dijkstra.rst","pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.rst","pymatgen.analysis.diffusion.neb.tests.test_io.rst","pymatgen.analysis.diffusion.neb.tests.test_pathfinder.rst","pymatgen.analysis.diffusion.tests.test_analyzer.rst","pymatgen.analysis.diffusion.utils.rst","pymatgen.analysis.diffusion.utils.edge_data_from_sc.rst","pymatgen.analysis.diffusion.utils.maggma.rst","pymatgen.analysis.diffusion.utils.parse_entries.rst","pymatgen.analysis.diffusion.utils.supercells.rst","pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc.rst","pymatgen.analysis.diffusion.utils.tests.test_maggma.rst","pymatgen.analysis.diffusion.utils.tests.test_parse_entries.rst","pymatgen_diffusion.rst","pymatgen_diffusion.aimd.rst","pymatgen_diffusion.neb.rst"],objects:{"":[[4,0,0,"-","pymatgen"]],"pymatgen.analysis":[[6,0,0,"-","diffusion"]],"pymatgen.analysis.diffusion":[[7,0,0,"-","aimd"],[16,0,0,"-","analyzer"],[17,0,0,"-","neb"],[26,0,0,"-","utils"]],"pymatgen.analysis.diffusion.aimd":[[8,0,0,"-","clustering"],[9,0,0,"-","pathway"],[10,0,0,"-","rdf"],[15,0,0,"-","van_hove"]],"pymatgen.analysis.diffusion.aimd.clustering":[[8,1,1,"","Kmeans"],[8,1,1,"","KmeansPBC"],[8,3,1,"","get_random_centroid"],[8,3,1,"","get_random_centroids"]],"pymatgen.analysis.diffusion.aimd.clustering.Kmeans":[[8,2,1,"","cluster"],[8,2,1,"","get_centroids"],[8,2,1,"","get_labels"],[8,2,1,"","should_stop"]],"pymatgen.analysis.diffusion.aimd.clustering.KmeansPBC":[[8,2,1,"","get_centroids"],[8,2,1,"","get_labels"],[8,2,1,"","should_stop"]],"pymatgen.analysis.diffusion.aimd.pathway":[[9,1,1,"","ProbabilityDensityAnalysis"],[9,1,1,"","SiteOccupancyAnalyzer"]],"pymatgen.analysis.diffusion.aimd.pathway.ProbabilityDensityAnalysis":[[9,2,1,"","from_diffusion_analyzer"],[9,2,1,"","generate_stable_sites"],[9,2,1,"","get_full_structure"],[9,2,1,"","to_chgcar"]],"pymatgen.analysis.diffusion.aimd.pathway.SiteOccupancyAnalyzer":[[9,4,1,"","coords_ref"],[9,2,1,"","from_diffusion_analyzer"],[9,2,1,"","get_average_site_occupancy"],[9,4,1,"","nsites"],[9,4,1,"","site_occ"],[9,4,1,"","structure"]],"pymatgen.analysis.diffusion.aimd.rdf":[[10,1,1,"","RadialDistributionFunction"],[10,1,1,"","RadialDistributionFunctionFast"]],"pymatgen.analysis.diffusion.aimd.rdf.RadialDistributionFunction":[[10,5,1,"","coordination_number"],[10,2,1,"","export_rdf"],[10,2,1,"","from_species"],[10,2,1,"","get_rdf_plot"]],"pymatgen.analysis.diffusion.aimd.rdf.RadialDistributionFunctionFast":[[10,2,1,"","get_coordination_number"],[10,2,1,"","get_one_rdf"],[10,2,1,"","get_rdf"]],"pymatgen.analysis.diffusion.aimd.tests":[[11,0,0,"-","test_clustering"],[12,0,0,"-","test_pathway"],[13,0,0,"-","test_rdf"],[14,0,0,"-","test_van_hove"]],"pymatgen.analysis.diffusion.aimd.tests.test_clustering":[[11,1,1,"","KmeansPBCTest"],[11,1,1,"","KmeansTest"]],"pymatgen.analysis.diffusion.aimd.tests.test_clustering.KmeansPBCTest":[[11,2,1,"","test_cluster"]],"pymatgen.analysis.diffusion.aimd.tests.test_clustering.KmeansTest":[[11,2,1,"","test_cluster"]],"pymatgen.analysis.diffusion.aimd.tests.test_pathway":[[12,1,1,"","ProbabilityDensityTest"],[12,1,1,"","SiteOccupancyTest"]],"pymatgen.analysis.diffusion.aimd.tests.test_pathway.ProbabilityDensityTest":[[12,2,1,"","test_generate_stable_sites"],[12,2,1,"","test_probability"],[12,2,1,"","test_probability_classmethod"]],"pymatgen.analysis.diffusion.aimd.tests.test_pathway.SiteOccupancyTest":[[12,2,1,"","test_site_occupancy"],[12,2,1,"","test_site_occupancy_classmethod"]],"pymatgen.analysis.diffusion.aimd.tests.test_rdf":[[13,1,1,"","RDFTest"]],"pymatgen.analysis.diffusion.aimd.tests.test_rdf.RDFTest":[[13,2,1,"","test_rdf"],[13,2,1,"","test_rdf_coordination_number"]],"pymatgen.analysis.diffusion.aimd.tests.test_van_hove":[[14,1,1,"","EvolutionAnalyzerTest"],[14,1,1,"","RDFTest"],[14,1,1,"","VanHoveTest"]],"pymatgen.analysis.diffusion.aimd.tests.test_van_hove.EvolutionAnalyzerTest":[[14,2,1,"","test_get_df"]],"pymatgen.analysis.diffusion.aimd.tests.test_van_hove.RDFTest":[[14,2,1,"","setUp"],[14,2,1,"","test_raises_ValueError_if_reference_species_not_in_structure"],[14,2,1,"","test_raises_ValueError_if_sigma_is_not_positive"],[14,2,1,"","test_raises_ValueError_if_species_not_in_structure"],[14,2,1,"","test_raises_valueerror_if_ngrid_is_less_than_2"],[14,2,1,"","test_rdf"],[14,2,1,"","test_rdf_coordination_number"],[14,2,1,"","test_rdf_two_species_coordination_number"]],"pymatgen.analysis.diffusion.aimd.tests.test_van_hove.VanHoveTest":[[14,2,1,"","test_van_hove"]],"pymatgen.analysis.diffusion.aimd.van_hove":[[15,1,1,"","EvolutionAnalyzer"],[15,1,1,"","VanHoveAnalysis"]],"pymatgen.analysis.diffusion.aimd.van_hove.EvolutionAnalyzer":[[15,2,1,"","atom_dist"],[15,2,1,"","get_df"],[15,2,1,"","get_min_dist"],[15,2,1,"","get_pairs"],[15,2,1,"","plot_atomic_evolution"],[15,2,1,"","plot_evolution_from_data"],[15,2,1,"","plot_rdf_evolution"],[15,2,1,"","rdf"]],"pymatgen.analysis.diffusion.aimd.van_hove.VanHoveAnalysis":[[15,2,1,"","get_1d_plot"],[15,2,1,"","get_3d_plot"]],"pymatgen.analysis.diffusion.analyzer":[[16,1,1,"","DiffusionAnalyzer"],[16,3,1,"","fit_arrhenius"],[16,3,1,"","get_arrhenius_plot"],[16,3,1,"","get_conversion_factor"],[16,3,1,"","get_extrapolated_conductivity"],[16,3,1,"","get_extrapolated_diffusivity"]],"pymatgen.analysis.diffusion.analyzer.DiffusionAnalyzer":[[16,2,1,"","as_dict"],[16,2,1,"","export_msdt"],[16,2,1,"","from_dict"],[16,2,1,"","from_files"],[16,2,1,"","from_structures"],[16,2,1,"","from_vaspruns"],[16,2,1,"","get_drift_corrected_structures"],[16,2,1,"","get_framework_rms_plot"],[16,2,1,"","get_msd_plot"],[16,2,1,"","get_summary_dict"],[16,2,1,"","plot_msd"]],"pymatgen.analysis.diffusion.neb":[[18,0,0,"-","full_path_mapper"],[19,0,0,"-","io"],[20,0,0,"-","pathfinder"],[21,0,0,"-","periodic_dijkstra"]],"pymatgen.analysis.diffusion.neb.full_path_mapper":[[18,1,1,"","ChargeBarrierGraph"],[18,1,1,"","MigrationGraph"],[18,3,1,"","almost"],[18,3,1,"","check_uc_hop"],[18,3,1,"","generic_groupby"],[18,3,1,"","get_hop_site_sequence"],[18,3,1,"","get_only_sites_from_structure"],[18,3,1,"","map_hop_sc2uc"],[18,3,1,"","order_path"]],"pymatgen.analysis.diffusion.neb.full_path_mapper.ChargeBarrierGraph":[[18,2,1,"","get_least_chg_path"],[18,2,1,"","get_summary_dict"],[18,2,1,"","populate_edges_with_chg_density_info"]],"pymatgen.analysis.diffusion.neb.full_path_mapper.MigrationGraph":[[18,2,1,"","add_data_to_similar_edges"],[18,2,1,"","assign_cost_to_graph"],[18,2,1,"","get_path"],[18,2,1,"","get_structure_from_entries"],[18,2,1,"","get_summary_dict"],[18,5,1,"","host_structure"],[18,5,1,"","only_sites"],[18,5,1,"","symm_structure"],[18,5,1,"","unique_hops"],[18,2,1,"","with_base_structure"],[18,2,1,"","with_distance"],[18,2,1,"","with_local_env_strategy"]],"pymatgen.analysis.diffusion.neb.io":[[19,1,1,"","MVLCINEBEndPointSet"],[19,1,1,"","MVLCINEBSet"],[19,3,1,"","get_endpoint_dist"],[19,3,1,"","get_endpoints_from_index"]],"pymatgen.analysis.diffusion.neb.pathfinder":[[20,1,1,"","DistinctPathFinder"],[20,1,1,"","IDPPSolver"],[20,1,1,"","MigrationHop"]],"pymatgen.analysis.diffusion.neb.pathfinder.DistinctPathFinder":[[20,2,1,"","get_paths"],[20,2,1,"","write_all_paths"]],"pymatgen.analysis.diffusion.neb.pathfinder.IDPPSolver":[[20,2,1,"","from_endpoints"],[20,2,1,"","get_unit_vector"],[20,2,1,"","run"]],"pymatgen.analysis.diffusion.neb.pathfinder.MigrationHop":[[20,2,1,"","get_sc_structures"],[20,2,1,"","get_structures"],[20,5,1,"","length"],[20,2,1,"","write_path"]],"pymatgen.analysis.diffusion.neb.periodic_dijkstra":[[21,3,1,"","get_optimal_pathway_rev"],[21,3,1,"","periodic_dijkstra"],[21,3,1,"","periodic_dijkstra_on_sgraph"]],"pymatgen.analysis.diffusion.neb.tests":[[22,0,0,"-","test_full_path_mapper"],[23,0,0,"-","test_io"],[24,0,0,"-","test_pathfinder"]],"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper":[[22,1,1,"","ChargeBarrierGraphTest"],[22,1,1,"","MigrationGraphComplexTest"],[22,1,1,"","MigrationGraphFromEntriesTest"],[22,1,1,"","MigrationGraphSimpleTest"]],"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.ChargeBarrierGraphTest":[[22,2,1,"","setUp"],[22,2,1,"","test_get_summary_dict"],[22,2,1,"","test_integration"],[22,2,1,"","test_populate_edges_with_chg_density_info"]],"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.MigrationGraphComplexTest":[[22,2,1,"","setUp"],[22,2,1,"","test_add_data_to_similar_edges"],[22,2,1,"","test_assign_cost_to_graph"],[22,2,1,"","test_get_key_in_path"],[22,2,1,"","test_get_path"],[22,2,1,"","test_group_and_label_hops"],[22,2,1,"","test_not_matching_first"],[22,2,1,"","test_order_path"],[22,2,1,"","test_periodic_dijkstra"],[22,2,1,"","test_unique_hops_dict"]],"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.MigrationGraphFromEntriesTest":[[22,2,1,"","setUp"],[22,2,1,"","test_m_graph_construction"],[22,2,1,"","test_m_graph_from_entries_failed"]],"pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper.MigrationGraphSimpleTest":[[22,2,1,"","setUp"],[22,2,1,"","test_get_pos_and_migration_hop"],[22,2,1,"","test_get_summary_dict"]],"pymatgen.analysis.diffusion.neb.tests.test_io":[[23,1,1,"","MVLCINEBEndPointSetTest"],[23,1,1,"","MVLCINEBSetTest"],[23,1,1,"","UtilityTest"],[23,3,1,"","get_path"]],"pymatgen.analysis.diffusion.neb.tests.test_io.MVLCINEBEndPointSetTest":[[23,4,1,"","endpoint"],[23,2,1,"","test_incar"],[23,2,1,"","test_incar_user_setting"]],"pymatgen.analysis.diffusion.neb.tests.test_io.MVLCINEBSetTest":[[23,4,1,"","structures"],[23,2,1,"","test_incar"],[23,2,1,"","test_incar_user_setting"]],"pymatgen.analysis.diffusion.neb.tests.test_io.UtilityTest":[[23,4,1,"","structure"],[23,2,1,"","test_get_endpoint_dist"],[23,2,1,"","test_get_endpoints_from_index"]],"pymatgen.analysis.diffusion.neb.tests.test_pathfinder":[[24,1,1,"","DistinctPathFinderTest"],[24,1,1,"","IDPPSolverTest"],[24,1,1,"","MigrationHopTest"],[24,3,1,"","get_path"]],"pymatgen.analysis.diffusion.neb.tests.test_pathfinder.DistinctPathFinderTest":[[24,2,1,"","test_get_paths"],[24,2,1,"","test_max_path_length"]],"pymatgen.analysis.diffusion.neb.tests.test_pathfinder.IDPPSolverTest":[[24,4,1,"","final_struct"],[24,4,1,"","init_struct"],[24,2,1,"","test_idpp"],[24,2,1,"","test_idpp_from_ep"]],"pymatgen.analysis.diffusion.neb.tests.test_pathfinder.MigrationHopTest":[[24,2,1,"","setUp"],[24,2,1,"","test_get_sc_structures"],[24,2,1,"","test_get_sc_structures_vacmode"],[24,2,1,"","test_get_start_end_structs_from_hop"],[24,2,1,"","test_get_start_end_structs_from_hop_vac"]],"pymatgen.analysis.diffusion.tests":[[25,0,0,"-","test_analyzer"]],"pymatgen.analysis.diffusion.tests.test_analyzer":[[25,1,1,"","DiffusionAnalyzerTest"],[25,1,1,"","FuncTest"]],"pymatgen.analysis.diffusion.tests.test_analyzer.DiffusionAnalyzerTest":[[25,2,1,"","test_from_structure_NPT"],[25,2,1,"","test_init"],[25,2,1,"","test_init_npt"]],"pymatgen.analysis.diffusion.tests.test_analyzer.FuncTest":[[25,2,1,"","test_fit_arrhenius"],[25,2,1,"","test_get_conversion_factor"]],"pymatgen.analysis.diffusion.utils":[[27,0,0,"-","edge_data_from_sc"],[29,0,0,"-","parse_entries"],[30,0,0,"-","supercells"]],"pymatgen.analysis.diffusion.utils.edge_data_from_sc":[[27,3,1,"","add_edge_data_from_sc"],[27,3,1,"","get_uc_pos"],[27,3,1,"","get_unique_hop"],[27,3,1,"","mh_eq"]],"pymatgen.analysis.diffusion.utils.parse_entries":[[29,3,1,"","get_inserted_on_base"],[29,3,1,"","get_insertion_energy"],[29,3,1,"","get_matched_structure_mapping"],[29,3,1,"","get_sym_migration_ion_sites"],[29,3,1,"","process_entries"]],"pymatgen.analysis.diffusion.utils.supercells":[[30,3,1,"","get_sc_fromstruct"],[30,3,1,"","get_start_end_structures"]],"pymatgen.analysis.diffusion.utils.tests":[[31,0,0,"-","test_edge_data_from_sc"],[33,0,0,"-","test_parse_entries"]],"pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc":[[31,3,1,"","test_add_edge_data_from_sc"],[31,3,1,"","test_get_uc_pos"],[31,3,1,"","test_get_unique_hop_host"],[31,3,1,"","test_get_unique_host_nonhost"]],"pymatgen.analysis.diffusion.utils.tests.test_parse_entries":[[33,1,1,"","ParseEntriesTest"]],"pymatgen.analysis.diffusion.utils.tests.test_parse_entries.ParseEntriesTest":[[33,2,1,"","setUp"],[33,2,1,"","test_filter_and_merge"],[33,2,1,"","test_get_all_sym_sites"],[33,2,1,"","test_get_inserted_on_base"],[33,2,1,"","test_get_insertion_energy"],[33,2,1,"","test_process_ents"]],pymatgen:[[5,0,0,"-","analysis"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute","5":"py:property"},terms:{"0":[9,10,15,18,20,21,23,24,29,30],"0000":[23,24],"0001":24,"0003":24,"0004":24,"0005":24,"0006":24,"0008":24,"0009":24,"001":20,"0023":24,"0028":24,"0030":24,"0031":24,"0032":24,"0036":24,"0043":24,"005":10,"0050":23,"0055":24,"0057":24,"0078":24,"0085":24,"01":29,"0132":24,"0133":24,"0137":24,"0139":24,"0181":24,"0196":24,"0211":24,"0218":24,"0219":24,"0220":24,"0221":24,"0224":24,"0226":24,"0227":24,"0231":24,"0232":24,"0233":24,"0234":24,"0310":24,"0319":24,"0383":24,"0390":24,"0392":24,"0393":24,"0394":23,"0396":24,"0416":23,"0419":23,"0422":24,"0423":24,"0426":24,"0428":24,"0431":24,"0432":24,"0435":24,"0464":24,"0473":24,"05":20,"0511":24,"0527":24,"0550":24,"0584":24,"0588":24,"0592":24,"0630":23,"0640":23,"0648":24,"0665":24,"0741":24,"0774":24,"0783517723596":24,"0784":24,"0799":23,"0844":24,"0846":24,"0868":23,"0893":23,"089343":23,"0910":2,"0919":24,"0924":24,"0929":23,"0943":24,"0947":24,"0948":24,"0950":24,"0951":24,"0952":24,"0953":24,"0954":24,"0968":24,"0972":24,"0973":24,"0975":24,"0976":24,"0990":24,"0991":24,"0994":24,"1":[2,9,10,15,16,18,20,21,23,24],"10":[10,15,16,20,23,24,30],"100":18,"1000":[8,16,20],"100000":18,"1001":24,"1009":24,"101":[10,15],"1020":24,"1021":16,"1024":24,"1029":24,"1039":16,"1041":24,"1043":24,"1046":23,"1049":24,"1050":24,"1054":24,"1058":24,"1066":24,"1082":24,"1098":24,"11":[23,24],"1106":24,"1114":24,"1115":24,"113":20,"1140":24,"1143":24,"1173":24,"1174":24,"1189":24,"1191":24,"1192":24,"1196":24,"12":[15,23,24],"1200":24,"1201":24,"1203":23,"1223":23,"1225":24,"1236":24,"1239":24,"1240":24,"1242":24,"1243":24,"1245":24,"1246":24,"1247":24,"1248":24,"1249":24,"1251":24,"1252":24,"1253":24,"1255":24,"1256":24,"1257":24,"1259":24,"1260":24,"1261":24,"1264":24,"1276":24,"1277":24,"1280":24,"13":23,"1303":24,"1314":24,"131710473490111":23,"1318":24,"1320":24,"1329":23,"1370":24,"1373":24,"1374":24,"1381":24,"140":20,"1407":24,"14080369885537":23,"1410":24,"1412":24,"1421":[23,24],"1436976":2,"1437":24,"1439":24,"1441":24,"1447":24,"1448":24,"1454":24,"1455":24,"1457":23,"1459":24,"148":16,"15":[16,23],"1578":24,"16":23,"1615":24,"163":15,"1653":24,"1656":24,"1657":24,"1658":24,"1659":24,"1660":24,"1661":24,"1669":24,"1670":24,"1674":24,"17":16,"173":15,"1787":23,"1817":24,"1821":24,"1822":24,"1847":24,"1874":24,"1889":24,"1893":24,"1914":24,"1918":24,"1957":24,"1961":24,"1978":24,"1981":24,"1999":24,"1d":[18,20],"1e":[15,20],"1mp2x12":16,"2":[2,9,15,16,20,21,23,24,27,29],"200":16,"2000":20,"2004":24,"2009":24,"2012":16,"2013":16,"2014":20,"2015":[2,9,15],"2016":24,"2018":15,"2024":24,"2059":24,"2093":24,"2099":24,"2100":24,"2101":24,"2102":24,"2108":24,"2113":24,"2119":24,"2121":23,"2129":24,"2130":24,"2137":24,"2139":24,"214106":20,"2153":23,"2156":24,"2160":24,"2180":24,"2181":24,"2184":24,"2199":24,"2203":24,"2213":23,"2218449146199":23,"2219":24,"2220":24,"2224":24,"2228":24,"2243":24,"2266":24,"2268":24,"2270":24,"2272":24,"2274":24,"2278":24,"2279":24,"2281":24,"2283":24,"2296":24,"2300":24,"2339":24,"2347":24,"2372":23,"2376":24,"2392":24,"24":16,"240":[20,30],"2449":24,"2450":24,"2499":24,"25":9,"2500":[23,24],"2501":24,"2503":24,"2509":24,"2510":24,"2515":24,"2517":24,"2550":24,"2551":24,"2608":24,"2614":24,"2624":24,"2628":23,"2636":24,"2638":24,"2642":24,"2645":23,"2660":24,"2665":24,"2666":24,"2672":24,"2680":23,"2684":23,"2697":24,"27":[9,15],"2702":24,"2705":24,"2707":24,"2711":24,"2714":24,"2718":24,"2722":24,"2726":24,"2729":24,"2732":24,"2733":24,"2739":24,"2743":24,"2744":24,"2747":24,"2784":24,"2785":24,"2787":23,"2801":24,"2813":24,"2822":24,"2829":24,"2830":24,"2835":24,"2839":24,"2840":24,"2842":24,"2852":23,"2876":24,"2879":23,"2898":24,"2901":24,"2929":24,"2933":24,"2934":24,"2960":24,"2988":24,"2998":24,"2999":24,"2dt":16,"2x2x2":18,"3":[2,9,10,16,18,21,23,24,29],"30":[15,16],"3034":24,"3108":24,"3110":24,"3116":24,"3136":23,"3154":[23,24],"3155":24,"3156":24,"3179":23,"3213":24,"3220":24,"3224":24,"3228":24,"3255":24,"3256":24,"3269":24,"3302":24,"3308":24,"3310":24,"3312":24,"3313":24,"3322":24,"3324":24,"3325":24,"3332":24,"3333":24,"3335":24,"3336":24,"3337":24,"3395":24,"3417":24,"3419":24,"3538":24,"3541":24,"3543":23,"3545":24,"3546":24,"3552":24,"3553":24,"3556":24,"3559":24,"3561":24,"3563":24,"3588":23,"3597":24,"3601":24,"3603":24,"3619":24,"3621":24,"3633":24,"3635":24,"3658":24,"3660":24,"3661":24,"3664":24,"3672":24,"3680":23,"3694":24,"3711":24,"3716":24,"3720":24,"3721":24,"3723":24,"3724":24,"3727":24,"3730":24,"3736":24,"3739":24,"3740":24,"3741":24,"3742":24,"3743":24,"3744":24,"3745":24,"3746":24,"3747":24,"3748":24,"3749":24,"3752":24,"3753":24,"3755":24,"3756":24,"3757":24,"3763":24,"3767":24,"3769":24,"3774":24,"3775":24,"3785":24,"3791":24,"3797":23,"3799":24,"3800":24,"3801":24,"3806":24,"3829":24,"3832":24,"3893":24,"3898":24,"3942":24,"3946":24,"3957":24,"3959":24,"3971":24,"3973":24,"3974":24,"3d":15,"3rp":9,"4":[23,24],"4006":24,"4023":24,"4024":24,"4026":24,"4027":24,"4028":24,"4034":24,"4035":24,"4036":24,"4047":24,"4049":24,"4061":24,"4062":24,"4075":23,"4086":24,"4087":24,"4088":24,"4090":24,"4112":24,"4114":24,"4115":24,"411723299877":24,"4132":23,"4168":24,"4175":24,"4189":24,"4190":24,"4201":23,"4202":24,"4207":24,"4208":24,"4215":24,"4217":24,"4220":24,"4221":24,"4228":24,"4229":24,"4230":24,"4252":24,"4253":24,"4299":24,"4302":24,"4360":23,"4370":23,"4398":24,"4400":24,"4436":24,"4439":24,"4444":24,"4458":24,"4459":24,"4461":24,"4483":24,"4487":24,"4491":23,"4493":24,"4499":24,"45":18,"4506":23,"4522":24,"4530":24,"4539":23,"4547":24,"4553":24,"4574":[23,24],"4577":24,"4584":23,"4589":24,"4590":24,"4591":24,"4593":24,"4604":24,"4605":24,"4611":24,"4617":24,"4622":24,"4648":24,"4676":24,"4681":24,"4692":24,"4693":24,"4699":24,"4703":24,"4716":24,"4720":24,"4722":24,"4732":24,"4734":24,"4740":24,"4751":24,"4765":24,"4767":24,"4769":24,"4770":24,"4773":24,"4774":23,"4775":24,"47759961582329":24,"4779":24,"4782":24,"4786":24,"4792":24,"4821":24,"4825":24,"4835":24,"4861":24,"4863":24,"4867":24,"4868":24,"4871":24,"4873":24,"4884":24,"4889":24,"4923":24,"4947":24,"4948":23,"4950":23,"4966":24,"4973":[23,24],"4977":24,"4980":24,"4982":24,"4983":24,"4991":24,"4992":24,"4994":24,"4995":24,"4996":24,"4997":24,"5":[9,20,23,24,29],"50":15,"5000":[23,24],"5002":24,"5004":24,"5010":24,"5011":24,"5018":24,"5019":24,"5020":24,"5023":24,"5033":24,"5040":24,"5041":24,"5046":24,"5049":24,"5050":[23,24],"5052":24,"5063":24,"5064":24,"5067":24,"5072":24,"5073":24,"5080":24,"5086":24,"510":23,"5102":24,"5103":24,"5110":24,"5112":24,"5118":24,"5120":24,"5124":24,"5125":24,"5129":24,"5132":24,"5133":24,"5134":24,"5135":24,"5136":24,"5145":24,"5155":24,"5167":24,"5169":24,"5185":24,"5190":24,"5201":24,"5202":24,"5214":24,"5215":24,"5219":24,"5220":24,"5224":24,"5225":24,"5229":24,"5232":24,"5235":24,"5240":24,"5249":24,"5256":24,"5258":24,"5259":24,"5260":24,"5261":24,"5263":24,"5264":24,"5266":24,"5268":24,"5272":24,"5281":24,"5282":24,"5288":24,"5290":24,"5295":24,"5319":24,"5328":24,"5329":24,"534":2,"5351":24,"5352":24,"5373":24,"5392":24,"5393":24,"5401":24,"5402":24,"5406":24,"5409":24,"5410":24,"5411":24,"5416":23,"5423":24,"5426":24,"5428":24,"5439":24,"5449":24,"5452":24,"5455":24,"5461":24,"5475":24,"5476":24,"5488":24,"5494":24,"55":18,"5502":24,"5503":24,"5517":24,"5520":24,"5521":24,"5544":24,"5551":24,"5563":24,"5569":24,"5580":23,"5581":24,"5583":24,"5599":24,"5614":24,"5629":24,"5630":23,"5640":23,"5649":24,"5654":24,"5672":24,"5688":24,"5698":24,"5699":24,"5700":24,"5704":24,"5710":24,"5714":24,"5719":24,"5720":24,"5723":24,"5726":24,"5732":24,"5734":24,"5735":24,"5737":24,"5747":24,"5752":24,"5769":24,"5773":24,"5774":24,"5782":24,"5783":24,"5799":23,"5805":23,"5815":2,"5818":24,"582":23,"5836":24,"5860":24,"5868":23,"5895":23,"59":23,"5951":24,"5953":24,"5958":24,"5964":24,"5965":24,"5966":24,"5974":[23,24],"5976":24,"5977":24,"6":[16,23,24],"6007":24,"6014":24,"6024":24,"6026":24,"6027":24,"6030":24,"6033":24,"6034":24,"6049":24,"6050":24,"6056":24,"6065":24,"6066":24,"6074":24,"6085":24,"61":23,"6125":24,"6127":24,"6137":24,"6142":24,"6160":24,"6203":23,"6207":23,"6212":24,"6221":24,"6226":24,"6233":24,"6237":24,"6243":24,"6244":24,"6245":24,"6246":24,"6247":24,"6248":24,"6249":24,"6250":24,"6251":24,"6252":24,"6253":24,"6254":24,"6255":24,"6256":24,"6257":24,"6258":24,"6264":24,"6266":24,"6270":24,"6271":24,"6274":24,"6279":24,"6280":24,"6281":24,"6289":24,"6318":24,"6326":24,"6335":24,"6338":24,"6340":[23,24],"634014":23,"6342":23,"6375":23,"6433":24,"6438":24,"6439":24,"6442":24,"6443":24,"6454":24,"6455":24,"6456":24,"6457":[23,24],"6458":24,"6461":24,"6462":24,"6490":24,"6492":24,"6581":23,"6582":24,"6664":24,"6665":24,"6667":24,"6668":24,"6675":24,"6676":24,"6678":24,"6685":24,"6687":24,"6688":24,"6690":24,"6691":24,"6692":24,"6727":24,"6732":24,"6738":24,"6740":24,"6744":24,"6745":24,"6778":24,"6824":24,"6826":24,"6832":24,"6840":24,"6853":24,"6862":24,"6865":23,"6869":24,"6876":24,"6906":24,"6907":24,"6956":23,"7":[23,24],"7097":24,"7098":24,"7099":24,"7109":24,"7118":24,"7119":23,"7121":23,"7158":24,"7160":24,"7161":24,"7170":24,"7178":24,"7181":24,"7191":24,"7198":23,"7210":24,"7211":24,"7213":23,"7234":23,"7239":24,"7242":24,"7246":24,"7248":24,"7251":24,"7255":24,"7264":24,"7266":24,"7271":24,"7275":24,"7278":24,"7280":24,"7282":24,"7285":24,"7286":24,"7291":24,"7293":24,"7298":24,"7303":24,"7310":24,"7329":24,"7330":24,"7343":24,"7345":24,"7352":24,"7356":24,"7357":24,"7364":24,"7365":24,"7366":23,"7367":24,"7372":[23,24],"7373":24,"7374":24,"7377":24,"7378":24,"7379":24,"7383":24,"7385":24,"7386":24,"7387":[23,24],"7388":24,"7390":24,"7393":24,"7394":24,"7395":24,"7396":24,"7397":24,"7426":24,"7432":24,"7437":24,"7446":24,"7462":24,"7463":24,"7468":24,"7475":24,"7483":24,"7488":24,"7490":24,"7491":24,"7492":24,"7497":24,"7500":[23,24],"7504":24,"7514":24,"7516":24,"7520":24,"7525":24,"7555":24,"7559":24,"7574":24,"7579":24,"7600":23,"7625":24,"7626":24,"7627":24,"7628":23,"7632":24,"7633":24,"7637":24,"7645":24,"7657":24,"7659":24,"7673":24,"7719":24,"7722":24,"7725":24,"7727":24,"7728":24,"7733":23,"7734":24,"7749":24,"7754":24,"7758":24,"7761":24,"7779":24,"7780":24,"7781":24,"7782":24,"7787":23,"7791":24,"7799":24,"7816":24,"7819":24,"7820":24,"7823":24,"7835":23,"7874":24,"7879":23,"7891":24,"7901":24,"7902":24,"7910":23,"7949":24,"7964":24,"7965":24,"7982":24,"7985":23,"7994":23,"7998":24,"8":[10,15,23,24],"80":[20,30],"8000":24,"8020":24,"8049":24,"8051":24,"8052":24,"8123":24,"8141":24,"8148":24,"815000056846058":23,"8169":24,"8172":24,"8187":24,"8270":23,"8318":[9,15],"8325":[9,15],"8326":24,"8330":24,"8331":24,"8339":24,"8340":24,"8341":24,"8342":24,"8343":24,"8344":24,"8347":24,"8358":24,"8363":24,"8370":23,"8538":24,"8543":[23,24],"8544":24,"8545":24,"8546":24,"8557":24,"8558":24,"8561":24,"8562":24,"8567":24,"858":2,"8601":23,"8611":24,"8612":24,"8626":23,"8693444977544":24,"8719":24,"8720":24,"8726":24,"8729":24,"8730":24,"8734":24,"8736":24,"8743":24,"8744":24,"8745":24,"8747":24,"8749":24,"8750":24,"8751":24,"8752":24,"8753":24,"8754":24,"8755":24,"8756":24,"8757":24,"8758":24,"8761":24,"8764":24,"8774":24,"8779":24,"8788":24,"8797":23,"8840":24,"8875":24,"8934":24,"8935":24,"8944":24,"8950":24,"8951":24,"8955":23,"8966":24,"8967":24,"8973":24,"8976":24,"9":[18,23,24],"90":24,"9000":23,"9009":24,"9010":24,"9035":23,"9046":24,"9047":24,"9048":24,"9049":24,"9050":24,"9053":24,"9057":24,"9132":23,"9201":23,"9205":24,"92093":2,"9216":24,"9219":24,"9230":24,"9231":24,"9239":23,"9354":24,"9360":23,"9370":23,"9383":24,"9385":24,"9397":24,"9414":24,"9418":24,"9423":24,"9424":24,"9425":24,"9431":24,"9463":23,"9469":24,"9495":24,"9500":2,"9506":24,"9512":24,"9522":24,"9525":24,"9528":24,"9564":24,"9568":24,"9569":[23,24],"9571":24,"9572":24,"9574":24,"9577":24,"9578":24,"9584":23,"9587":24,"9595":24,"9598":24,"9599":24,"9607":24,"9618":24,"9624":24,"9630":24,"9635":24,"9656":24,"9658":24,"9659":24,"9673":24,"9678":24,"9681":24,"9718":24,"9719":24,"9751":24,"9756":24,"9768":24,"9769":24,"9771":24,"9774":24,"9780":24,"9781":24,"9785":24,"9798":24,"9815":24,"9817":24,"9818":24,"9825":24,"9865":24,"9868":24,"9871":24,"9880":24,"9882":24,"9884":24,"9885":24,"9887":24,"9888":24,"9889":24,"9893":23,"9896":24,"9897":24,"9898":24,"9900":24,"9901":20,"9902":24,"9903":24,"9909":24,"9911":24,"9920":24,"9925":23,"9926":24,"9927":24,"9929":24,"9950":23,"9985":23,"9989":24,"9990":24,"9991":24,"9992":24,"9995":24,"9996":24,"9997":24,"9999":24,"9999995733517":23,"boolean":27,"case":[11,12,13,14,18,20,22,23,24,33],"class":[2,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,33],"default":[10,15,16,18,20,21],"do":16,"final":[8,20,27,30],"float":[9,10,15,16,18,20,29,30],"function":[9,10,15,18,20,21,27,29,30],"import":[1,8],"int":[8,10,15,16,18,19,20,21,27,30],"long":22,"new":[8,16,29],"public":2,"return":[8,9,10,15,16,18,19,20,21,27,29,30],"static":[8,15,18,20],"super":[16,27],"switch":18,"true":[10,18,20,22,27,29],"try":30,"while":20,A:[2,8,9,10,15,16,18,19,20,21,23,24],AND:2,AS:2,BE:2,BUT:2,BY:2,By:16,FOR:2,For:[2,8,16,18,20,29],IF:2,IN:2,IS:2,ITS:2,If:[2,8,9,10,15,16,18,20,29],In:[2,9,15,20],Is:18,It:[0,1,9,15,16],NO:2,NOT:2,No:[2,16],OF:2,ON:2,OR:2,SUCH:2,THE:2,TO:2,The:[0,2,8,9,10,15,16,18,20,21,27,29,30],These:27,To:[0,15,16],_:16,_subplot:15,_theme:0,abc:[23,24],abl:30,about:20,abov:[2,9],absolut:20,abspath:0,accompani:2,accord:18,accordingli:16,account:18,accur:[18,29],across:21,ad:[16,18,27],adapt:8,add:[0,2,18,27],add_data_to_similar_edg:18,add_edge_data_from_sc:27,add_kei:18,added_kei:18,addit:[15,18,21],addition:29,addon:0,adjac:[10,15],advis:2,after:16,against:16,agreement:2,aimd:[5,6,16,34],al:[16,20],algo:[8,20],algorithm:[8,9,20],all:[2,9,10,15,16,18,20,21,22,29,30],allow:[10,20,27,30],almost:18,along:[10,15],also:[0,29],altern:0,alwai:[2,10,15,20,21,22],amount:18,an:[1,2,11,12,13,14,15,16,18,20,22,23,24,25,33],analys:[2,16],analysi:[1,2],analyz:[1,5,6,9,15],angl:[18,23,24,29],angle_tol:[18,29],angstrom:[9,10,15,18,20],ani:[2,15,16,18],appear:2,append:0,appli:[16,29],approach:20,ar:[2,8,9,10,15,16,18,19,20,21,22,27,29],arg:[16,19],argument:[15,16],aris:[2,16],arrai:[8,9,10,15,16,18],arrheniu:16,as_dict:16,ask:18,assign:18,assign_cost_to_graph:18,associ:[9,10,15,20],assum:[10,16,18,19,20,29],atom:[8,10,15,16,20,30],atom_dist:15,attribut:[9,27],avail:16,averag:[9,10,15,16],avg_nstep:[15,16],awai:21,ax:[10,15],axessubplot:15,axi:16,b:[9,15,18,23,24],back:2,bad:1,bar:[15,16],base:[8,9,10,11,12,13,14,15,16,18,19,20,22,23,24,25,29,33],base_:29,base_entri:[18,29],base_struct:[29,30],base_struct_entri:29,base_structur:18,basi:2,basic:18,batteri:15,becaus:20,been:[1,2],befor:[14,16,22,24,33],below:16,best:[21,30],best_an:21,better:20,between:[9,16,18,19,20],bigger:29,binari:2,bool:[10,16,18,20,27,30],both:[16,18,20],boundari:[2,8,19],built:18,busi:2,c2ee23355j:16,c:[2,9,15,16,23,24],ca:2,calc:[1,30],calcul:[10,15,16,17,18,19,20,27,29,30],california:2,call:[20,21],callabl:[15,18,21],can:[0,8,9,15,16,18,20,21,22,29,30],cap:30,cation:[18,29],caus:2,cb_label:15,ceder:16,cell:[10,15,18,21,22,27,29,30],cell_rang:[10,15],center:10,centroid:8,chang:[8,16,20],character:15,charg:[16,18,22],chargebarriergraph:18,chargebarriergraphtest:22,check:[0,2,8,16,20,21,22],check_uc_hop:18,chem:[9,15,20],chemistri:16,chen:15,chgcar:9,choos:15,chose:8,chosen:20,chu:[9,15],ci:19,cite:[9,15,16],classmethod:[9,10,16,18,20],cleanup:1,close:30,closer:9,closest:8,cluster:[2,5,6,7,9,34],cm203303y:16,cm:[15,16,19],cmap:15,cmocean:15,code:[2,18],coher:18,color:15,color_plaett:15,column:15,combin:29,commerci:2,comp:18,compar:18,compat:1,complet:20,compon:[9,16,20],composit:10,compris:20,comput:[9,10,15,16],computed_entri:[18,29],computedentri:[18,29],computedstructureentri:[18,29],concentr:15,condit:[2,8,19],conduct:[9,15,16],conductor:[9,15,16],conf:0,configur:30,connect:18,consecut:20,consequenti:2,consid:[2,9,15,16],consider:16,constant:[16,20],constitut:16,construct:[18,20,30],constructor:16,constructur:18,contact:2,contain:[0,1,18,20,27,29],content:[0,5],contract:2,contributor:2,conveni:[16,20],converg:[9,16],convers:16,convert:16,coordin:[8,9,10],coordination_numb:10,coords_ref:9,copi:[2,18,29],core:[10,15,16,18,20,27,29,30],correct:[15,16],correl:[15,20],correspond:27,cost:[18,21],cost_kei:18,count:15,cover:22,cpu:10,creat:[9,11,12,13,14,16,22,23,24,25,29,30,33],crystal:9,csv:[10,15,16],cubic:[9,15,30],cubicsupercelltransform:30,current:[10,16,18],custom_kei:27,cutoff:[9,18,20],d:[2,9,16],d_cutoff:9,damag:2,dat:[10,16],data:[2,8,10,15,16,18,27],data_arrai:27,databas:18,datafram:15,dataset:8,debug:30,decor:[18,29],decreas:30,defin:[15,18,29],deng:[9,15],densiti:[2,9,15,18,22],depend:20,deriv:2,describ:18,design:2,desir:16,detail:[2,20],determin:[8,9,16,18,20],develop:2,df:15,diagonali:22,dict:[16,18,21,29],dictionari:[18,21,29],differ:18,diffus:[1,2,5],diffusion_analyz:[9,15],diffusionanalyz:[1,2,9,15,16],diffusionanalyzertest:25,diffusivity_error:16,dijkstra:21,dimension:16,direct:[2,10,15,16],dirnam:[23,24],disclaim:2,disord:16,displac:[16,20],dist:19,distanc:[8,9,15,19,20],distinct:[15,20],distinctpathfind:20,distinctpathfindertest:24,distribut:[2,9,10,15],dmref:2,doc:[0,2],document:0,doe:[2,11,12,13,14,18,20,22,23,24,25,33],doesn:16,doi:16,don:[16,30],done:16,dopant:[9,15],drift:16,driv:0,drive:2,dt:16,due:1,dure:[15,20],e:[2,10,15,16,18,20,29],e_sc:27,ea:16,each:[2,8,16,18,20,21,29],easi:20,easier:20,easili:16,edg:[18,21,27],edge_data_from_sc:[5,6,26],edu:[2,19],educ:2,eg:10,eindex:18,either:[18,20],electrochem:16,electron:16,element:[8,10,15,16,19],els:16,empti:[8,18,30],end:[2,9,19,20,22,27],endors:2,endpoint:[18,19,20,23],energi:[9,16,18,20,29],engin:2,enhanc:[2,9,15],enough:[18,21,22],ensembl:10,entir:[22,29],entri:[18,27,29],environ:18,environment:16,ep_0:19,ep_1:19,eq:18,equal:[18,27],equilval:18,equival:[18,20,27,29],error:[1,2,16],esit:[18,20,27,30],esp:16,especi:16,estim:16,et:20,etc:[16,18],even:2,event:[2,18,30],everi:16,evolut:15,evolutionanalyz:15,evolutionanalyzertest:14,exactli:18,exampl:[8,16,18],exclus:2,execut:[11,12,13,14,22,23,24,25,33],exemplari:2,exercis:[14,22,24,33],exist:[0,16,20],exp:16,expect:16,export_msdt:16,export_rdf:10,express:2,extens:[10,16],extern:15,extra:15,extract:2,extrapol:16,extrem:20,factor:16,fals:[10,16,18,20,27,30],famili:16,far:8,fast:[9,10],faster:[16,30],fe:24,featur:8,fee:2,fiel:19,field:[18,21],figsiz:15,file:[2,10,16,20],filenam:[9,10,16,20],filepath:16,filter:18,final_struct:24,find:[2,18,20,21,30],first:[15,16,18,19,20,29],fit:[2,16],fit_arrheniu:16,fix:1,fixtur:[14,22,24,33],flag:27,flask:0,flip:18,flip_hop:18,fname:20,folder:0,follow:[0,2,9,15,16,18,21],forc:20,fork:2,form:[2,18,20],format:[9,10,16,18],formula:20,found:21,foundat:2,fraction:[8,9,18,29],frame:15,framework:[16,18],free:2,frequenc:16,fro:[18,29],from:[1,2,8,9,15,16,18,19,21,27,29,30],from_dict:16,from_diffusion_analyz:9,from_endpoint:20,from_fil:16,from_speci:10,from_structur:16,from_vasprun:16,fs:15,full:29,full_path_mapp:[5,6,17,27,34],full_structur:18,fulli:20,fullpathmapp:27,func:15,functest:25,functiontyp:15,fund:2,further:9,futur:[2,15],g:[2,15,16,18,20,21],gaussian:[10,15],gd:15,ge:16,gener:[8,9,16,18,19,20,30],generate_stable_sit:9,generic_groupbi:18,geometr:[8,30],get:[9,10,15,16,18,20,27,29],get_1d_plot:15,get_3d_plot:15,get_arrhenius_plot:16,get_atomic_distribut:15,get_average_site_occup:9,get_centroid:8,get_conversion_factor:16,get_coordination_numb:10,get_df:15,get_drift_corrected_structur:16,get_endpoint_dist:19,get_endpoints_from_index:19,get_extrapolated_conduct:16,get_extrapolated_diffus:16,get_framework_rms_plot:16,get_full_structur:9,get_hop_site_sequ:18,get_inserted_on_bas:29,get_insertion_energi:29,get_label:8,get_least_chg_path:18,get_matched_structure_map:29,get_min_dist:15,get_msd_plot:16,get_one_rdf:10,get_only_sites_from_structur:18,get_optimal_pathway_rev:21,get_pair:15,get_path:[18,20,23,24],get_random_centroid:8,get_rdf:10,get_rdf_plot:10,get_sc_fromstruct:30,get_sc_structur:20,get_start_end_structur:30,get_structur:20,get_structure_from_entri:18,get_summary_dict:[16,18],get_sym_migration_ion_sit:29,get_uc_po:27,get_unique_hop:27,get_unit_vector:20,gilman:2,git:0,give:30,given:[9,10,15,16,18,20,21,27,29],good:[2,16,21],grant:2,granular:16,graph:[16,18,21,22],grid:[9,10,15],group:[16,18,19,22,29],gs:15,gtol:20,guess:[8,16,20],guid:0,h:[9,10,15,16,20],ha:[1,2,9,16,18],halv:[18,29],handl:18,have:[8,11,12,13,14,16,18,21,22,23,24,25,33],heap:21,heat:15,heavili:2,henkelman:[19,20],here:18,herebi:2,hereund:2,hi:0,hierach:9,higher:9,highest:29,hmlli:1,holder:2,hook:[14,22,24,33],hop:[18,22,27,30],hop_dist:18,hop_label:27,hop_list:18,host:[18,20,27,29],host_structur:18,host_symm_struct:20,hove:[2,15],how:21,howev:2,html_theme:0,html_theme_path:0,http:19,huge:16,hundr:15,hydrogen:20,i:[9,10,15],i_sc:27,idea:18,idpp:[1,2,20],idpp_kwarg:20,idppsolv:20,idppsolvertest:24,ignor:[15,27],iindex:18,imag:[10,15,16,18,20,21],img:18,implement:[1,8,10,15],impli:2,improv:20,incar:15,incident:2,includ:[1,2,9,10,15,16,20],include_mscd_t:16,include_msd_t:16,inconsist:16,increas:20,index:[2,8,10,15,18,21,27],indic:[9,10,15,18,19,20,21,29],indirect:2,individu:16,inequilval:22,info:20,inform:[16,18],init_struct:24,initi:[8,9,10,15,16,20,27,30],initial_centroid:8,initial_disp:16,initial_structur:16,inlcud:17,input:[15,16,18,19,20,29],insert:[18,29],inserted_:29,inserted_entri:[18,29],inserted_struct:29,insertion_energi:18,instanc:[11,12,13,14,22,23,24,25,29,33],instead:[1,16,20],int_:9,intend:0,intercal:20,intercol:18,interest:[9,10,15],interfaci:15,interpol:20,interrupt:2,interstiti:[9,15,20],interv:[9,15],invent:2,invers:18,io:[2,5,6,17,18,23,34],ion:[15,16,18,20,27,29],ionic:[9,16],ionic_step_skip:16,is_averag:10,isit:[18,20,27,30],item:18,iter:[8,16,20,21,30],its:[2,16,20],j:20,jimag:21,jmmshn:1,jolla:2,json:[16,18,20],just:[10,20],k:[2,8,16],kei:[18,21,27],kelvin:16,kenneth:0,keyword:[16,19],kind:29,kmean:8,kmeanspbc:8,kmeanspbctest:11,kmeanstest:11,known:20,kr:0,kr_small:0,kt:16,kwarg:[15,16,18,19,20],l:16,la:2,lab:2,label:[8,10,15,18,22,27],lambda:21,landscap:9,larg:0,later:18,lattic:[8,16,18,20,23,24,30],leaf:21,leaf_nod:21,least:[16,18],lee:16,legend:10,lenght:18,length:[18,20,22,29,30],less:[15,30],li10:16,li10gep2s12:16,li3fe4p4o16:20,li4fe4p4o16:20,li:[9,10,15,16,18,20,24,29],liabil:2,liabl:2,librari:0,life4p4o16:20,like:[2,8,16,18,20],limit:[2,10,21],lin:15,linear:20,linearsegmentedcolormap:15,linspac:10,list:[2,8,9,10,15,16,18,19,20,27,29,30],list_in:18,listedcolormap:15,lithium:16,loc_peak:10,local:18,local_env:18,loss:2,lost:2,low:9,lowest:21,ltol:[18,29],m:[8,16],m_graph:18,m_hop:18,made:16,maggma:[5,6,26],magmom:1,mai:[2,9,16],mail:2,main:16,mainli:20,mainten:2,make:[2,8,16,20,22],mani:[21,29,30],manifest:1,manipul:2,manner:20,map:[15,18,29],map_hop_sc2uc:18,match:[16,18,20,27,29],matching_:16,mater:[9,15],materi:[2,16,18],matplotlib:[15,16],matrix:[16,20,29],mavrl:19,max:16,max_atom:[20,30],max_disp:20,max_dist:18,max_imag:21,max_iter:8,max_path_length:20,max_val:18,maxim:10,maximum:[8,10,15,16,18,20,30],maxit:20,md:[8,9,10,15,16],mean:[2,8,16,18,20],meant:16,measur:16,mechan:[16,20],melt:16,memori:16,merchant:2,met:2,metal:[18,29],metast:[18,29],method:[9,10,11,12,13,14,16,20,22,23,24,25,33],methodnam:[11,12,13,14,22,23,24,25,33],metric:8,mg:[18,27],mh1:27,mh2:27,mh_eq:27,miara:16,might:[15,18,21],migraiton:18,migrat:[1,2,18,20,27,29,30],migrating_ion:29,migrating_ion_entri:[18,29],migrating_speci:[18,20],migrationgraph:[18,27,29],migrationgraphcomplextest:22,migrationgraphfromentriestest:22,migrationgraphsimpletest:22,migrationhop:[18,20,22,27],migrationhoptest:24,migrationpath:27,migratrion:18,min:[18,20],min_atom:[20,30],min_length:[20,30],min_ob:16,min_step:16,minim:[10,20],minimum:[10,15,16,20,30],miss:21,mit:2,mitnebset:19,mitrelaxset:19,mitsuhiko:0,mn6o5f7:22,mo:16,mobil:[16,18],mode:[15,16,18,20],modif:[2,19],modifi:2,modul:[2,5],moment:15,monti:[16,18,20],more:[1,2,9,15,18,20,29],most:[0,18],move:[16,20,21],ms:16,mscd:16,msd:16,msite:1,msonabl:[16,18,20],much:30,multipl:16,multipli:16,multiprocess:16,must:[2,16,29],mvlcinebendpointset:19,mvlcinebendpointsettest:23,mvlcinebset:19,mvlcinebsettest:23,mxn:8,n:[8,9,29],n_:9,n_job:10,na3ps4:[9,15],na:[9,10,15,23],name:[2,11,12,13,14,18,20,22,23,24,25,29,33],namespac:[1,2,3],nation:2,ncore:16,ndarrai:[8,16],nearest:9,nearneighbor:18,neb:[1,5,6,27,30,34],nebpath:20,need:[16,18,20,29],neglig:2,neighbor:18,neither:2,nest:9,network:[18,20],networkx:21,new_temp:16,ngrid:[10,15],nimag:20,nion:9,nn:18,node:[18,21],non:18,none:[8,10,15,16,18,20,21,27],nor:2,note:[2,9,15,16,19,20],notic:2,now:[1,18],np:[8,10,15,16],npt:16,nsite:9,ntimestep:9,number:[8,9,10,15,16,18,20,29,30],numpi:[9,10,16],nvt:16,nx3:9,o:[10,16,23,24],object:[8,9,10,15,16,18,19,20,21,22,27,29,30],oblig:2,observ:16,obtain:[2,9,15,16,18,20,29,30],occup:9,occupi:18,offic:2,often:[16,21],old:8,old_centroid:8,omega:9,onc:16,one:[0,10,15,16,19,29],ong:[9,15,16],onli:[15,16,18,20,29],only_single_cat:[18,29],only_sit:18,onto:[18,29],oper:[2,18],optim:21,option:[10,15,16,18,20,21,29],order:[1,16],order_path:18,orient:18,origin:[16,18],os:0,other:[2,15,16,18,20],otherwis:[2,10,16],out:[0,2,29],output:[10,18],outsid:[18,23],over:[9,10,16,30],overal:16,oxid:16,p1:18,p:[9,15,16,23,24],p_ratio:9,packag:[1,2,5],paddl:16,page:[0,2],pair:[10,15,20,21,29],panda:15,paper:[9,15,16],paragraph:2,param:[9,18,19,20,29],paramet:[8,9,10,15,16,18,19,20,21,27,29,30],parent:21,pars:[15,16,18],parse_entri:[5,6,26],parseentriestest:33,part:15,parti:2,particular:[2,15],pass:[16,18],passthrough:20,path:[0,2,16,18,20,21,29],path_par:21,path_str:[23,24],pathfind:[5,6,17,18,27,34],pathwai:[5,6,7,17,18,21,34],pbc:8,peak:10,per:20,perc_mod:20,percol:[18,20],perfect:19,perform:[16,20],period:[2,8,19,21],periodic_dijkstra:[5,6,17,34],periodic_dijkstra_on_sgraph:21,periodicsit:[23,24,27,30],permiss:2,permit:2,phase:[16,18,29],phy:20,pl:2,placehold:20,pleas:[2,9,15,16,20],plot:[10,15,16],plot_atomic_evolut:15,plot_evolution_from_data:15,plot_msd:16,plot_rdf_evolut:15,plt:16,pmg:30,pmg_structur:[9,10,20],point:[8,9,10,15,16,19,20,21,22],popul:[18,21,22],populate_edges_with_chg_density_info:18,posit:[8,20,27,29],possibl:[2,18,20,30],potenti:20,potential_data_kei:18,potential_field:18,potim:15,pp:[9,15],pre:16,precess:27,precis:[18,20],preliminari:2,present:[16,18,30],pretti:16,previou:18,principl:[15,16],print:18,prior:2,probabilitydensityanalysi:9,probabilitydensitytest:12,probabl:[2,9],probe:15,process:[10,15,16,20,29],process_entri:29,procur:2,product:[2,18],profit:2,program:2,progress:2,project:0,promot:2,properti:[10,18,20],provid:[2,8,16,20,29],ps:15,pull:2,purpos:2,put:0,py3k:1,py:[0,23],pymatgen:[1,2],pymatgen_diffus:1,pymatgentest:[24,25],pypi:1,pyplot:16,python:18,quantit:15,quantiti:16,quickli:21,r:[9,15],radial:[10,15],radialdistributionfunct:10,radialdistributionfunctionfast:10,radiu:[10,18,22],rais:[11,12,13,14,22,23,24,25,33],random:8,randomli:8,rang:[10,15],rank:[18,29],rdf:[5,6,7,15,34],rdftest:[13,14],re:[8,27],reaction:15,read:[18,19],real:16,reason:2,recommend:15,redistribut:2,reduc:[15,16],ref_speci:10,refer:[2,9,10,18,20],reference_indic:10,reference_speci:[10,15],regent:2,regress:16,regular:20,reitz:0,relat:[0,16],relax:[19,20],releas:[1,2],relev:[2,18],reli:2,reliabl:16,remov:[1,20],repositori:[0,2],repres:20,represent:[16,18,30],reproduc:2,request:2,requir:[15,16,19],research:2,reserv:2,resolut:15,restrict:16,result:16,retain:[2,18],revolution:2,richard:16,right:2,rm:16,rmax:[10,15],rmin:10,role:[9,15],run1:16,run2:16,run3:16,run:[8,10,16,20],runtest:[11,12,13,14,22,23,24,25,33],s1:29,s2:29,s:[0,2,8,9,15,16,18,21,27,30],same:[9,10,18,20,22,27,29],sampl:16,san:29,saniti:22,save:[9,15,18],save_csv:15,sc:[18,27,29],sc_hop:18,sc_m:29,sc_mat:30,scheme:9,scienc:[2,16],scientif:2,se:16,seaborn:15,search:[2,21],second:19,secondari:16,see:[16,18,19,20],select:[9,15],self:[1,15],send:2,sens:16,sequenc:[9,16,18],sequenti:16,serial:16,servic:2,set1:15,set:[9,10,14,15,16,18,19,20,21,22,24,33],setup:[14,22,24,33],sgraph:21,shall:2,shallow:9,shape:16,shortest:[9,15],should:[1,8,9,16,18,22],should_stop:8,show:16,si:16,sigma:[10,15],similar:[16,22],similiarli:22,simpl:8,simul:[7,9,10,15,16,20,30],sinc:[21,29],singl:[10,18,29],site:[9,16,18,19,20,22,27,29,30],site_index:21,site_indic:19,site_occ:9,siteoccupancyanalyz:9,siteoccupancytest:12,size:[20,29,30],skip:15,slope:16,slow:[9,15],slowli:9,sm:[27,29],small:0,smaller:29,smallest:[20,30],smear:[10,15],smidstrup:20,smooth:[10,16],sn:16,so:[16,18,20,21,29,30],sodium:15,softwar:[2,16,20],solid:15,solver:[1,20],some:[15,20,29],sometim:16,sort_tol:20,sourc:[2,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,27,29,30,31,33],space:29,spacegroup:[20,27],spacegroupanalyz:[18,29],speci:[9,10,15,16,18,20,29],special:2,specif:[2,18],specifi:[11,12,13,14,15,18,22,23,24,25,33],spectrum:15,speed:16,spring:20,spring_const:20,squar:[8,16],ss:8,stabil:16,stabl:9,stable_sit:9,standard:[0,16,20],start:[16,18,20,30],start_u:18,state:[15,16],statist:[15,16],step:[9,15,16,20],step_siz:20,step_skip:[15,16],stipul:16,stol:[18,29],stop:[8,16,21],store:9,str:[9,10,15,16,18,20,21,27,29],strategi:18,strict:[2,18,29],strictur:16,string:[10,15,16,18,20],struc_sc:30,structr:27,structur:[2,9,10,15,16,18,19,20,23,24,27,29,30],structure_is_bas:18,structure_match:[27,29],structuregraph:[18,21],structurematch:[18,27,29],studi:16,subject:16,submodul:[0,5,34],subsequ:20,subset:[9,15],substitut:2,suffici:16,suit:1,sum:8,summari:[16,23,24],supercel:[5,6,10,15,18,20,26,27,29],superion:[9,15,16],suppli:[2,8,16],support:[2,10,16,19,20],sure:22,sy:0,symbol:[10,15],symm_structur:[18,20],symmetr:[18,20,27],symmetri:[18,20,27,29],symmetrizedstructur:[18,20],symprec:[18,20,29],t0:15,t:[15,16,27,29,30],tabl:15,take:[10,16,18,27,29],tang:15,target:21,target_label:18,target_reach:21,technolog:2,temp:16,temperatur:16,term:[2,9],termin:30,test:19,test_add_data_to_similar_edg:22,test_add_edge_data_from_sc:31,test_assign_cost_to_graph:22,test_filter_and_merg:33,test_fit_arrheniu:25,test_from_structure_npt:25,test_generate_stable_sit:12,test_get_all_sym_sit:33,test_get_conversion_factor:25,test_get_df:14,test_get_endpoint_dist:23,test_get_endpoints_from_index:23,test_get_inserted_on_bas:33,test_get_insertion_energi:33,test_get_key_in_path:22,test_get_path:[22,24],test_get_pos_and_migration_hop:22,test_get_sc_structur:24,test_get_sc_structures_vacmod:24,test_get_start_end_structs_from_hop:24,test_get_start_end_structs_from_hop_vac:24,test_get_summary_dict:22,test_get_uc_po:31,test_get_unique_hop_host:31,test_get_unique_host_nonhost:31,test_group_and_label_hop:22,test_idpp:24,test_idpp_from_ep:24,test_incar:23,test_incar_user_set:23,test_init:25,test_init_npt:25,test_integr:22,test_m_graph_construct:22,test_m_graph_from_entries_fail:22,test_max_path_length:24,test_not_matching_first:22,test_order_path:22,test_periodic_dijkstra:22,test_populate_edges_with_chg_density_info:22,test_prob:12,test_probability_classmethod:12,test_process_:33,test_raises_valueerror_if_ngrid_is_less_than_2:14,test_raises_valueerror_if_reference_species_not_in_structur:14,test_raises_valueerror_if_sigma_is_not_posit:14,test_raises_valueerror_if_species_not_in_structur:14,test_rdf:14,test_rdf_coordination_numb:[13,14],test_rdf_two_species_coordination_numb:14,test_site_occup:12,test_site_occupancy_classmethod:12,test_unique_hops_dict:22,testcas:[11,12,13,14,22,23,24,33],than:[9,15,16,29],thei:[16,27],theme:0,theori:[2,19],thermal:15,thi:[0,2,8,9,10,15,16,19,20,21,22],those:[15,18,20],three:[2,10,15],threshold:9,through:[18,20,27],throughout:15,thu:8,time:[9,15,16],time_step:[15,16],timestep:16,to_chgcar:9,to_jimag:21,togeth:18,tol:[15,20],toler:[18,20,29],tool:[1,17],top:21,tort:2,total:[20,29],total_run_tim:16,track:18,tradit:16,trajectori:[2,8,9],transfer:2,transform:[27,30],translat:[10,15,18,29],trasform:27,tri:16,tube:[18,22],tube_radiu:18,tupl:[10,15,20,21,27,30],turn:22,two:[9,19,20,27],type:[8,9,15,16,18,19,20,21,29,30],typic:16,uc:[18,27],uc_hop:18,ucsd:2,uncorrel:16,under:[2,18],understand:2,uniform:9,uninterrupt:2,union:[10,15,18,30],uniqu:[18,22,27],unique_hop:18,unit:[15,16,18,20,22,23,27,30],unitcel:[27,30],unittest:[11,12,13,14,22,23,24,33],univers:2,unsort:18,until:[18,20,30],up:[14,16,20,21,22,24,33],updat:2,us:[0,2,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,27,29,33],usag:16,use_host_sg:27,use_strict_tol:[18,29],user:2,usual:[16,20],utexa:19,util:[5,6,24,25],utilitytest:23,vac_mod:[18,20,30],vacanc:[18,20],valenc:16,valid:22,valu:[10,18,20],valueerror:[11,12,13,14,22,23,24,25,33],van:[2,15],van_hov:[5,6,7,34],vanhoveanalysi:15,vanhovetest:14,variabl:[16,27],varianc:16,vasp:[9,16,18,19],vaspinputset:19,vasprun:16,vec:20,vector:[10,15,18,20,30],veri:[0,15,21],version:8,vesta:[9,20],via:[1,16,20],view:20,virtual:[2,20],visual:[9,20],volum:[23,24],volumetricdata:18,vs:16,vtst:19,vtsttool:19,w:16,wa:2,wai:[2,21,22],wang:15,want:[16,20],warrant:2,warranti:2,water:10,we:[2,10,15,21,22,30],weight:[16,21],welcom:2,well:8,were:20,what:16,wheel:16,when:[11,12,13,14,16,18,22,23,24,25,33],where:[8,9,16,21,29],whether:[2,10,16,18,27],which:[9,15,16,18,20],window:15,with_base_structur:18,with_dist:18,with_local_env_strategi:18,within:[15,18,27],without:[2,21],work:[2,8,18,20,27,29],working_ion:29,would:[15,16,20],write:[16,19,20],write_all_path:20,write_path:20,written:[2,10,16],x:[9,10,15,16],x_label:15,xlim:10,xml:16,y:[10,16],yield:20,ylim:10,you:[0,2,8,9,15,16,18,20],your:0,z:[9,15],zero:[10,15],zheng:15,zhu:[9,15],zr:23},titles:["krTheme Sphinx Style","Change Log","Introduction","pymatgen","pymatgen namespace","pymatgen.analysis namespace","pymatgen.analysis.diffusion package","pymatgen.analysis.diffusion.aimd package","pymatgen.analysis.diffusion.aimd.clustering module","pymatgen.analysis.diffusion.aimd.pathway module","pymatgen.analysis.diffusion.aimd.rdf module","pymatgen.analysis.diffusion.aimd.tests.test_clustering module","pymatgen.analysis.diffusion.aimd.tests.test_pathway module","pymatgen.analysis.diffusion.aimd.tests.test_rdf module","pymatgen.analysis.diffusion.aimd.tests.test_van_hove module","pymatgen.analysis.diffusion.aimd.van_hove module","pymatgen.analysis.diffusion.analyzer module","pymatgen.analysis.diffusion.neb package","pymatgen.analysis.diffusion.neb.full_path_mapper module","pymatgen.analysis.diffusion.neb.io module","pymatgen.analysis.diffusion.neb.pathfinder module","pymatgen.analysis.diffusion.neb.periodic_dijkstra module","pymatgen.analysis.diffusion.neb.tests.test_full_path_mapper module","pymatgen.analysis.diffusion.neb.tests.test_io module","pymatgen.analysis.diffusion.neb.tests.test_pathfinder module","pymatgen.analysis.diffusion.tests.test_analyzer module","pymatgen.analysis.diffusion.utils package","pymatgen.analysis.diffusion.utils.edge_data_from_sc module","pymatgen.analysis.diffusion.utils.maggma module","pymatgen.analysis.diffusion.utils.parse_entries module","pymatgen.analysis.diffusion.utils.supercells module","pymatgen.analysis.diffusion.utils.tests.test_edge_data_from_sc module","pymatgen.analysis.diffusion.utils.tests.test_maggma module","pymatgen.analysis.diffusion.utils.tests.test_parse_entries module","pymatgen_diffusion package","pymatgen_diffusion.aimd package","pymatgen_diffusion.neb package"],titleterms:{"0":1,"1":1,"2":1,"28":1,"29":1,"3":1,"4":1,"5":1,"6":1,acknowledg:2,aimd:[7,8,9,10,11,12,13,14,15,35],analysi:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],analyz:16,api:2,chang:[1,2],cite:2,cluster:[8,35],content:[6,7,17,26,34,35,36],contribut:2,copyright:2,diffus:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],document:2,edge_data_from_sc:27,exhaust:2,featur:2,full_path_mapp:[18,36],indic:2,introduct:2,io:[19,36],krtheme:0,licens:2,log:[1,2],maggma:28,modul:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],namespac:[4,5],neb:[17,18,19,20,21,22,23,24,36],non:2,our:2,packag:[6,7,17,26,34,35,36],parse_entri:29,pathfind:[20,36],pathwai:[9,35],periodic_dijkstra:[21,36],polici:2,pymatgen:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],pymatgen_diffus:[34,35,36],rdf:[10,35],sphinx:0,style:0,submodul:[6,7,17,26,35,36],subpackag:[5,6,7,17,26,34,35,36],supercel:30,tabl:2,test:[11,12,13,14,22,23,24,25,31,32,33],test_analyz:25,test_clust:11,test_edge_data_from_sc:31,test_full_path_mapp:22,test_io:23,test_maggma:32,test_parse_entri:33,test_pathfind:24,test_pathwai:12,test_rdf:13,test_van_hov:14,util:[26,27,28,29,30,31,32,33],v0:1,v2018:1,v2019:1,v2021:1,van_hov:[15,35]}}) \ No newline at end of file diff --git a/docs_rst/pymatgen.analysis.rst b/docs_rst/pymatgen.analysis.rst index 25007431..4e1b7380 100644 --- a/docs_rst/pymatgen.analysis.rst +++ b/docs_rst/pymatgen.analysis.rst @@ -1,6 +1,8 @@ pymatgen.analysis namespace =========================== +.. py:module:: pymatgen.analysis + Subpackages ----------- diff --git a/docs_rst/pymatgen.rst b/docs_rst/pymatgen.rst index 36816d3c..e823f4f2 100644 --- a/docs_rst/pymatgen.rst +++ b/docs_rst/pymatgen.rst @@ -1,2 +1,4 @@ pymatgen namespace ================== + +.. py:module:: pymatgen diff --git a/pymatgen/analysis/diffusion/__init__.py b/pymatgen/analysis/diffusion/__init__.py index e627a779..04c0d65c 100644 --- a/pymatgen/analysis/diffusion/__init__.py +++ b/pymatgen/analysis/diffusion/__init__.py @@ -4,4 +4,4 @@ __author__ = "Materials Virtual Lab" __email__ = "ongsp@eng.ucsd.edu" -__version__ = "2021.4.29" +__version__ = "2022.1.15" \ No newline at end of file diff --git a/setup.py b/setup.py index df32cb13..3c0f87b7 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ setup( name="pymatgen-analysis-diffusion", packages=find_namespace_packages(include=["pymatgen.analysis.*"]), - version="2021.4.29", + version="2022.1.15", install_requires=["pymatgen>=2022.0.3", "joblib"], extras_require={}, package_data={},
        @@ -50,7 +51,7 @@

        Navigation

        -
        +

        Introduction

        This is an add-on to pymatgen for diffusion analysis that is developed by the Materials Virtual Lab. Note that it relies on pymatgen for structural @@ -60,12 +61,12 @@

        Introduction +

        +

        Change Log

        Change log

        -
        -
        + +

        Features (non-exhaustive!)

        1. Van-Hove analysis

        2. @@ -73,7 +74,7 @@

          Features (non-exhaustive!) +

          API documentation

          For detailed documentation of all modules and classes, please refer to the API docs.

          @@ -85,25 +86,25 @@

          API documentation +

          +

        +

        Citing

        If you use this package, please consider citing the relevant publications documented in each analysis.

        -
        -
        + +

        Contributing

        We welcome contributions in all forms. If you’d like to contribute, please fork this repository, make changes and send us a pull request!

        -
        -
        + +

        Acknowledgements

        This code is funded by the National Science Foundation’s Designing Materials to Revolutionize and Engineer our Future (DMREF) program under Grant No. 1436976.

        -
        -
        + +

        License

        Pymatgen is released under the MIT License. The terms of the license are as follows:

        @@ -136,8 +137,8 @@

        LicenseOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

        -
        - - +
        @@ -224,7 +225,7 @@

        This Page

        Quick search

        diff --git a/docs/modules.html b/docs/modules.html index d62ca1e0..6d0e2431 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -4,11 +4,12 @@ - - pymatgen — pymatgen-diffusion 2021.4.29 documentation - - - + + + pymatgen — pymatgen-diffusion 2022.1.15 documentation + + + @@ -44,7 +45,7 @@

        Navigation

      • previous |
      • - + @@ -54,14 +55,14 @@

        Navigation

        -
        +

        pymatgen

        -
        +
        @@ -87,7 +88,7 @@

        This Page

        Quick search

        diff --git a/docs/objects.inv b/docs/objects.inv index d6e9ea7f..b6b05aba 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 622510e3..414d7ba6 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -5,10 +5,10 @@ - Python Module Index — pymatgen-diffusion 2021.4.29 documentation - - - + Python Module Index — pymatgen-diffusion 2022.1.15 documentation + + + @@ -39,7 +39,7 @@

        Navigation

      • modules |
      • - +
        @@ -64,7 +64,12 @@

        Python Module Index

        - pymatgen + pymatgen +
            + pymatgen.analysis