From fa502f0a32e48f0491b263d864cba742d25fe259 Mon Sep 17 00:00:00 2001 From: naik-aakash Date: Wed, 5 Aug 2026 14:48:10 +0200 Subject: [PATCH 1/7] delete cohp module and adapt codes, tests --- src/lobsterpy/cli.py | 116 ++++--- src/lobsterpy/cohp/__init__.py | 4 - src/lobsterpy/cohp/analyze.py | 10 - src/lobsterpy/cohp/describe.py | 13 - src/lobsterpy/coxx/analyze.py | 416 +----------------------- src/lobsterpy/coxx/describe.py | 111 ------- src/lobsterpy/featurize/core.py | 26 +- src/lobsterpy/quality/analyze.py | 4 +- src/lobsterpy/structuregraph/graph.py | 12 +- tests/cli/test_cli.py | 9 +- tests/conftest.py | 443 +++++++++++++------------- tests/{cohp => coxx}/__init__.py | 0 tests/{cohp => coxx}/test_analyze.py | 69 ++-- tests/{cohp => coxx}/test_describe.py | 2 +- tests/plotting/test_plotting.py | 2 +- tests/quality/test_analyze.py | 314 ++++++++---------- 16 files changed, 480 insertions(+), 1071 deletions(-) delete mode 100644 src/lobsterpy/cohp/__init__.py delete mode 100644 src/lobsterpy/cohp/analyze.py delete mode 100644 src/lobsterpy/cohp/describe.py rename tests/{cohp => coxx}/__init__.py (100%) rename tests/{cohp => coxx}/test_analyze.py (95%) rename tests/{cohp => coxx}/test_describe.py (99%) diff --git a/src/lobsterpy/cli.py b/src/lobsterpy/cli.py index d962f611..057523f8 100644 --- a/src/lobsterpy/cli.py +++ b/src/lobsterpy/cli.py @@ -29,6 +29,7 @@ PlainDosPlotter, get_style_list, ) +from lobsterpy.quality import LobsterCalcQuality from lobsterpy.utils import get_file_paths @@ -941,11 +942,11 @@ def run(args): if args.action in ["description", "plot-automatic", "plot-automatic-ia"]: which_bonds = "all" if args.allbonds else "cation-anion" - analyse = Analysis( - path_to_poscar=args.structure, - path_to_charge=args.charge, - path_to_cohpcar=args.cohpcar, - path_to_icohplist=args.icohplist, + analyse = Analysis.from_files( + structure_path=args.structure, + charge_path=args.charge, + coxxcar_path=args.cohpcar, + icoxxlist_path=args.icohplist, which_bonds=which_bonds, are_coops=args.coops, are_cobis=args.cobis, @@ -1301,67 +1302,62 @@ def run(args): raise ValueError('please use "--overwrite" if you would like to overwrite existing lobster inputs') if args.action in ["description-quality"]: - # Check for .gz files exist for default values and update accordingly - req_files = get_file_paths( - path_to_lobster_calc=Path.cwd(), requested_files=["structure", "lobsterin", "lobsterout"] + # # Check for .gz files exist for default values and update accordingly + # req_files = get_file_paths( + # path_to_lobster_calc=Path.cwd(), requested_files=["structure", "lobsterin", "lobsterout"] + # ) + # for arg_name in req_files: + # setattr(args, arg_name, req_files[arg_name]) + + # optional_files = { + # "bandoverlaps": "bandOverlaps.lobster", + # "potcar": "POTCAR", + # "vasprun": "vasprun.xml", + # } + + # for arg_name in optional_files: + # file_path = getattr(args, arg_name) + # if not file_path.exists(): + # gz_file_path = file_path.with_name(zpath(file_path.name)) + # if gz_file_path.exists(): + # setattr(args, arg_name, gz_file_path) + + # bva_comp = args.bvacomp + + # if bva_comp: + # bva_files = get_file_paths(path_to_lobster_calc=Path.cwd(), requested_files=["charge"]) + # for arg_name in bva_files: + # setattr(args, arg_name, bva_files[arg_name]) + + # dos_comparison = args.doscomp + + # if dos_comparison: + # if "DOSCAR.LSO.lobster" in args.doscar.name: + # dos_files = get_file_paths( + # path_to_lobster_calc=Path.cwd(), requested_files=["vasprun", "doscar"], use_lso_dos=True + # ) + # else: + # dos_files = get_file_paths( + # path_to_lobster_calc=Path.cwd(), requested_files=["vasprun", "doscar"], use_lso_dos=False + # ) + # for arg_name in dos_files: + # setattr(args, arg_name, dos_files[arg_name]) + + # potcar_file_path = args.potcar + + calc_quality = LobsterCalcQuality.from_directory( + path_to_lobster_calc=Path.cwd(), ) - for arg_name in req_files: - setattr(args, arg_name, req_files[arg_name]) - - optional_files = { - "bandoverlaps": "bandOverlaps.lobster", - "potcar": "POTCAR", - "vasprun": "vasprun.xml", - } - - for arg_name in optional_files: - file_path = getattr(args, arg_name) - if not file_path.exists(): - gz_file_path = file_path.with_name(zpath(file_path.name)) - if gz_file_path.exists(): - setattr(args, arg_name, gz_file_path) - - bva_comp = args.bvacomp - - if bva_comp: - bva_files = get_file_paths(path_to_lobster_calc=Path.cwd(), requested_files=["charge"]) - for arg_name in bva_files: - setattr(args, arg_name, bva_files[arg_name]) - dos_comparison = args.doscomp - - if dos_comparison: - if "DOSCAR.LSO.lobster" in args.doscar.name: - dos_files = get_file_paths( - path_to_lobster_calc=Path.cwd(), requested_files=["vasprun", "doscar"], use_lso_dos=True - ) - else: - dos_files = get_file_paths( - path_to_lobster_calc=Path.cwd(), requested_files=["vasprun", "doscar"], use_lso_dos=False - ) - for arg_name in dos_files: - setattr(args, arg_name, dos_files[arg_name]) - - potcar_file_path = args.potcar - - quality_dict = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=args.structure, - path_to_charge=args.charge, - path_to_lobsterout=args.lobsterout, - path_to_lobsterin=args.lobsterin, - path_to_potcar=None if not potcar_file_path.exists() else potcar_file_path, - potcar_symbols=args.potcarsymbols, - path_to_bandoverlaps=args.bandoverlaps, - dos_comparison=dos_comparison, - bva_comp=bva_comp, - path_to_doscar=args.doscar, + quality_dict = calc_quality.get_calculation_quality_summary( + dos_comparison=args.doscomp, + bva_comp=args.bvacomp, e_range=args.erange, n_bins=args.nbins, - path_to_vasprun=args.vasprun, ) - quality_text = Description.get_calc_quality_description(quality_dict) - Description.write_calc_quality_description(quality_text) + quality_text = calc_quality.describe(quality_dict) + calc_quality.print_description(quality_text) if args.file_calc_quality_json is not None: with open(args.file_calc_quality_json, "w") as fd: diff --git a/src/lobsterpy/cohp/__init__.py b/src/lobsterpy/cohp/__init__.py deleted file mode 100644 index 09dac03b..00000000 --- a/src/lobsterpy/cohp/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright (c) lobsterpy development team -# Distributed under the terms of a BSD 3-Clause "New" or "Revised" License - -"""This package provides the modules for analyzing COHPs.""" diff --git a/src/lobsterpy/cohp/analyze.py b/src/lobsterpy/cohp/analyze.py deleted file mode 100644 index c391f672..00000000 --- a/src/lobsterpy/cohp/analyze.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Deprecated class for analyzing COHPs/COOPs/COBIs.""" - -from monty.dev import deprecated - -from lobsterpy.coxx.analyze import Analysis as _Analysis - - -@deprecated(message="use `lobsterpy.coxx.analyze.Analysis` instead.", deadline=(2026, 6, 30)) -class Analysis(_Analysis): - """Deprecated class for analyzing COHPs/COOPs/COBIs.""" diff --git a/src/lobsterpy/cohp/describe.py b/src/lobsterpy/cohp/describe.py deleted file mode 100644 index 5ef20ed3..00000000 --- a/src/lobsterpy/cohp/describe.py +++ /dev/null @@ -1,13 +0,0 @@ -"""Deprecated class for describing COHPs/COOPs/COBIs.""" - -from monty.dev import deprecated - -from lobsterpy.coxx.describe import Description as _Description - - -@deprecated( - message="use `lobsterpy.coxx.describe.Description` instead.", - deadline=(2026, 6, 30), -) -class Description(_Description): - """Deprecated class for describing COHPs/COOPs/COBIs.""" diff --git a/src/lobsterpy/coxx/analyze.py b/src/lobsterpy/coxx/analyze.py index 159cbdc8..28caa0f9 100644 --- a/src/lobsterpy/coxx/analyze.py +++ b/src/lobsterpy/coxx/analyze.py @@ -13,22 +13,15 @@ import numpy as np from monty.json import MSONable -from pymatgen.analysis.bond_valence import BVAnalyzer from pymatgen.analysis.lobster_env import LobsterNeighbors from pymatgen.core.structure import Structure from pymatgen.electronic_structure.cohp import CompleteCohp from pymatgen.electronic_structure.core import Spin -from pymatgen.electronic_structure.dos import CompleteDos, LobsterCompleteDos from pymatgen.io.lobster import ( - Bandoverlaps, Charge, - Doscar, Icohplist, - Lobsterin, - Lobsterout, MadelungEnergies, ) -from pymatgen.io.vasp.outputs import Vasprun from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from scipy.integrate import trapezoid @@ -52,11 +45,6 @@ class Analysis(MSONable): :param are_coops: bool indicating if file contains COOP/ICOOP data :param cutoff_icohp: Cutoff in percentage for evaluating neighbors based on ICOHP values. cutoff_icohp*max_icohp limits the number of considered neighbours for evaluating environments. - :param path_to_cohpcar: path to `COHPCAR.lobster` or `COBICAR.lobster` or `COOPCAR.lobster` . - :param path_to_charge: path to `CHARGE.lobster`. - :param path_to_icohplist: path to `ICOHPLIST.lobster` or `ICOBILIST.lobster` or `ICOOPLIST.lobster`. - :param path_to_poscar: path to structure (e.g., `CONTCAR` (preferred), `POSCAR` or `POSCAR.lobster`) - :param path_to_madelung: path to `MadelungEnergies.lobster`. :param charge_obj: pymatgen lobster.io.charge object :param completecoxx_obj: pymatgen.electronic_structure.cohp.CompleteCohp object :param icoxxlist_obj: pymatgen lobster.io.Icohplist object @@ -68,7 +56,7 @@ class Analysis(MSONable): Set it to 0 to get results of all orbitals in the detected relevant bonds. Default is to 0.05 i.e. only analyzes if orbital contribution is 5 % or more. :param orbital_resolved: bool indicating whether orbital wise analysis is performed - :param type_charge: If no path_to_charge or charge_obj is provided, Valences will be used (see pymatgen BVAnalyzer). + :param type_charge: If no charge_obj is provided, Valences will be used (see pymatgen BVAnalyzer). Otherwise, Mulliken charges from CHARGE.lobster are used by default. :param which_bonds: Selects kinds of bonds that are analyzed. `cation-anion` is the default. Alternatively, `all` bonds can also be selected. Support to other kinds of bonds will be @@ -99,11 +87,6 @@ class Analysis(MSONable): def __init__( self, - path_to_poscar: str | Path | None = None, - path_to_icohplist: str | Path | None = None, - path_to_cohpcar: str | Path | None = None, - path_to_charge: str | Path | None = None, - path_to_madelung: str | Path | None = None, structure: Structure | None = None, icoxxlist_obj: Icohplist | None = None, completecoxx_obj: CompleteCohp | None = None, @@ -123,18 +106,12 @@ def __init__( """ Initialize automatic bonding analysis. - Can be initialized using either file paths or pymatgen objects. - Pymatgen objects will be preferred in case both are supplied. + Can be initialized using pymatgen objects. :param are_cobis: bool indicating if file contains COBI/ICOBI data :param are_coops: bool indicating if file contains COOP/ICOOP data :param cutoff_icohp: Cutoff in percentage for evaluating neighbors based on ICOHP values. cutoff_icohp*max_icohp limits the number of considered neighbours for evaluating environments. - :param path_to_cohpcar: path to `COHPCAR.lobster` or `COBICAR.lobster` or `COOPCAR.lobster` . - :param path_to_charge: path to `CHARGE.lobster`. - :param path_to_icohplist: path to `ICOHPLIST.lobster` or `ICOBILIST.lobster` or `ICOOPLIST.lobster`. - :param path_to_poscar: path to structure (e.g., `CONTCAR` (preferred), `POSCAR.lobster` or `POSCAR`) - :param path_to_madelung: path to `MadelungEnergies.lobster`. :param charge_obj: pymatgen lobster.io.charge object (Optional) :param completecoxx_obj: pymatgen.electronic_structure.cohp.CompleteCohp object :param icoxxlist_obj: pymatgen lobster.io.Icohplist object @@ -146,7 +123,7 @@ def __init__( Set it to 0 to get results of all orbitals in the detected relevant bonds. Default is to 0.05 i.e. only analyzes if orbital contribution is 5 % or more. :param orbital_resolved: bool indicating whether orbital wise analysis is performed - :param type_charge: If no path_to_charge or charge_obj is provided, Valences will be used + :param type_charge: If no charge_obj is provided, Valences will be used (see pymatgen BVAnalyzer). Otherwise, Mulliken charges from CHARGE.lobster are used by default. :param which_bonds: Selects kinds of bonds that are analyzed. `cation-anion` is the default. Alternatively, `all` bonds can also be selected. Support to other kinds of bonds will be @@ -156,28 +133,6 @@ def __init__( percentages below efermi. Defaults to None (i.e., all populations below efermi are included) """ - path_args = { - "path_to_poscar": path_to_poscar, - "path_to_icohplist": path_to_icohplist, - "path_to_cohpcar": path_to_cohpcar, - "path_to_charge": path_to_charge, - "path_to_madelung": path_to_madelung, - } - - if any(v is not None for v in path_args.values()): - warnings.warn( - "Initialization via path_to_* arguments is being deprecated and will be " - "removed on 30-06-2026. Please use Analysis.from_files() or " - "Analysis.from_directory() instead.", - DeprecationWarning, - stacklevel=2, - ) - - if (path_to_poscar and str(path_to_poscar).endswith("POSCAR")) or ( - path_to_poscar and str(path_to_poscar).endswith("POSCAR.gz") - ): - warnings.warn(POSCAR_WARNING) - self.start = start self.structure = structure self.which_bonds = which_bonds @@ -193,12 +148,6 @@ def __init__( self.icoxxlist_obj = icoxxlist_obj self.charge_obj = charge_obj self.madelung_obj = madelung_obj - - self.path_to_poscar = None if structure else path_to_poscar - self.path_to_cohpcar = None if completecoxx_obj else path_to_cohpcar - self.path_to_icohplist = None if icoxxlist_obj else path_to_icohplist - self.path_to_charge = None if charge_obj else path_to_charge - self.path_to_madelung = None if madelung_obj else path_to_madelung self.type_charge = type_charge.capitalize() if self.type_charge not in {"Mulliken", "Loewdin", "Valences"}: @@ -228,14 +177,6 @@ def setup_env(self): None """ - if self.structure is None: - if self.path_to_poscar: - self.structure = Structure.from_file(self.path_to_poscar) - elif self.completecoxx_obj: - self.structure = self.completecoxx_obj.structure - else: - raise ValueError("No structure provided via object or path.") - sga = SpacegroupAnalyzer(self.structure) symmetry_dataset = sga.get_symmetry_dataset() self.list_equivalent_sites = symmetry_dataset.equivalent_atoms @@ -251,20 +192,11 @@ def setup_env(self): "noise_cutoff": self.noise_cutoff, "which_charge": self.type_charge, "structure": self.structure, + "icoxxlist_obj": self.icoxxlist_obj, + "charge_obj": self.charge_obj, + "additional_condition": 1 if self.which_bonds == "cation-anion" else 0, } - lob_neigh_kwargs["additional_condition"] = 1 if self.which_bonds == "cation-anion" else 0 - - if self.icoxxlist_obj: - lob_neigh_kwargs["icoxxlist_obj"] = self.icoxxlist_obj - lob_neigh_kwargs["charge_obj"] = self.charge_obj - - else: - lob_neigh_kwargs["icoxxlist_obj"] = Icohplist( - filename=self.path_to_icohplist, are_cobis=self.are_cobis, are_coops=self.are_coops - ) - lob_neigh_kwargs["charge_obj"] = Charge(filename=self.path_to_charge) if self.path_to_charge else None - try: self.chemenv = LobsterNeighbors(**lob_neigh_kwargs) except ValueError as err: @@ -326,6 +258,8 @@ def from_files( kwargs["are_cobis"] = False if are_cobis is None else are_cobis kwargs["are_coops"] = False if are_coops is None else are_coops + if Path(structure_path).name in ("POSCAR", "POSCAR.gz"): + warnings.warn(POSCAR_WARNING, UserWarning) structure = Structure.from_file(structure_path) icoxxlist_obj = Icohplist( filename=icoxxlist_path, are_cobis=kwargs.get("are_cobis"), are_coops=kwargs.get("are_coops") @@ -427,11 +361,6 @@ def as_dict(self) -> dict: "icoxxlist_obj": self.icoxxlist_obj.as_dict() if self.icoxxlist_obj else None, "charge_obj": self.charge_obj.as_dict() if self.charge_obj else None, "madelung_obj": self.madelung_obj.as_dict() if self.madelung_obj else None, - "path_to_poscar": self.path_to_poscar, - "path_to_cohpcar": self.path_to_cohpcar, - "path_to_icohplist": self.path_to_icohplist, - "path_to_charge": self.path_to_charge, - "path_to_madelung": self.path_to_madelung, "are_cobis": self.are_cobis, "are_coops": self.are_coops, "cutoff_icohp": self.cutoff_icohp, @@ -519,7 +448,6 @@ def get_information_all_bonds(self, summed_spins: bool = True): for anion in self.anion_types: # get labels and summed cohp objects labels, summedcohps = self.chemenv.get_info_cohps_to_neighbors( - path_to_cohpcar=self.path_to_cohpcar, coxxcar_obj=self.completecoxx_obj, isites=[ice], summed_spin_channels=summed_spins, @@ -559,7 +487,6 @@ def get_information_all_bonds(self, summed_spins: bool = True): for element in self.elements: # get labels and summed cohp objects labels, summedcohps = self.chemenv.get_info_cohps_to_neighbors( - path_to_cohpcar=self.path_to_cohpcar, coxxcar_obj=self.completecoxx_obj, isites=[ice], onlycation_isites=False, @@ -1542,7 +1469,7 @@ def set_condensed_bonding_analysis(self): "relevant_bonds": bond_infos[3], } - if self.path_to_madelung is None and self.madelung_obj is None: + if self.madelung_obj is None: if self.which_bonds == "cation-anion": # This sets the dictionary including the most important information on the compound self.condensed_bonding_analysis = { @@ -1563,11 +1490,10 @@ def set_condensed_bonding_analysis(self): "type_charges": self.type_charge, } else: - madelung = MadelungEnergies(self.path_to_madelung) if self.path_to_madelung else self.madelung_obj if self.type_charge == "Mulliken": - madelung_energy = madelung.madelungenergies_mulliken + madelung_energy = self.madelung_obj.madelungenergies_mulliken elif self.type_charge == "Loewdin": - madelung_energy = madelung.madelungenergies_loewdin + madelung_energy = self.madelung_obj.madelungenergies_loewdin else: madelung_energy = None # This sets the dictionary including the most important information on the compound @@ -1656,323 +1582,3 @@ def set_summary_dicts(self): self.final_dict_ions = {} for key, item in final_dict_ions.items(): self.final_dict_ions[key] = dict(Counter(item)) - - @staticmethod - def get_lobster_calc_quality_summary( - path_to_poscar: str | Path | None = None, - path_to_lobsterout: str | Path | None = None, - path_to_lobsterin: str | Path | None = None, - path_to_potcar: str | Path | None = None, - potcar_symbols: list | None = None, - path_to_charge: str | Path | None = None, - path_to_bandoverlaps: str | Path | None = None, - path_to_doscar: str | Path | None = None, - path_to_vasprun: str | Path | None = None, - structure_obj: Structure | None = None, - lobsterin_obj: Lobsterin | None = None, - lobsterout_obj: Lobsterout | None = None, - charge_obj: Charge | None = None, - bandoverlaps_obj: Bandoverlaps | None = None, - lobster_completedos_obj: LobsterCompleteDos | None = None, - vasprun_obj: Vasprun | None = None, - ref_dos_obj: CompleteDos | None = None, - dos_comparison: bool = False, - e_range: list = [-5, 0], - n_bins: int | None = None, - bva_comp: bool = False, - ) -> dict: - """ - Analyze LOBSTER calculation quality. - - :param path_to_poscar: path to structure file (e.g., `CONTCAR` (preferred), `POSCAR` or `POSCAR.lobster`) - :param path_to_lobsterout: path to lobsterout file - :param path_to_lobsterin: path to lobsterin file - :param path_to_potcar: path to VASP potcar file - :param potcar_symbols: list of potcar symbols from potcar file (can be used if no potcar available) - :param path_to_charge: path to CHARGE.lobster file - :param path_to_bandoverlaps: path to bandOverlaps.lobster file - :param path_to_doscar: path to DOSCAR.lobster or DOSCAR.LSO.lobster file - :param path_to_vasprun: path to vasprun.xml file - :param structure_obj: pymatgen pymatgen.core.structure.Structure object - :param lobsterin_obj: pymatgen.lobster.io.Lobsterin object - :param lobsterout_obj: pymatgen lobster.io.Lobsterout object - :param charge_obj: pymatgen lobster.io.Charge object - :param bandoverlaps_obj: pymatgen lobster.io.BandOverlaps object - :param lobster_completedos_obj: pymatgen.electronic_structure.dos.LobsterCompleteDos object - :param vasprun_obj: pymatgen vasp.io.Vasprun object - :param ref_dos_obj: pymatgen.electronic_structure.dos.CompleteDos object - :param dos_comparison: will compare DOS from VASP and LOBSTER and return tanimoto index - :param e_range: energy range for DOS comparisons - :param n_bins: number of bins to discretize DOS for comparisons - :param bva_comp: Compares LOBSTER charge signs with Bond valence charge signs - - Returns: - A dict of summary of LOBSTER calculation quality by analyzing basis set used, - charge spilling from lobsterout/ PDOS comparisons of VASP and LOBSTER / - BVA charge comparisons - - """ - warnings.warn( - "This method is being deprecated and will be " - "removed on 30-06-2026. Please use `lobsterpy.quality.LobsterCalcQuality.from_files()` or " - "`lobsterpy.quality.LobsterCalcQuality.from_directory()` instead.", - DeprecationWarning, - stacklevel=2, - ) - - quality_dict = {} - - if path_to_potcar and not potcar_symbols and not path_to_vasprun and not vasprun_obj: - potcar_names = Lobsterin._get_potcar_symbols(POTCAR_input=path_to_potcar) - elif not path_to_potcar and not path_to_vasprun and not vasprun_obj and potcar_symbols: - potcar_names = potcar_symbols - elif path_to_vasprun and not vasprun_obj: - vasprun = Vasprun(path_to_vasprun, parse_potcar_file=False, parse_eigen=False) - potcar_names = [potcar.split(" ")[1] for potcar in vasprun.potcar_symbols] - elif vasprun_obj and not path_to_vasprun: - potcar_names = [potcar.split(" ")[1] for potcar in vasprun_obj.potcar_symbols] - else: - raise ValueError( - "Please provide either path_to_potcar or list of " - "potcar_symbols or path to vasprun.xml or vasprun object. " - "Crucial to identify basis used for projections" - ) - - if path_to_poscar: - if str(path_to_poscar).endswith("POSCAR"): - warnings.warn(POSCAR_WARNING) - struct = Structure.from_file(path_to_poscar) - elif structure_obj: - struct = structure_obj - else: - raise ValueError("Please provide path_to_poscar or structure_obj") - - ref_bases = Lobsterin.get_all_possible_basis_functions(structure=struct, potcar_symbols=potcar_names) - - if path_to_lobsterin: - lobs_in = Lobsterin.from_file(path_to_lobsterin) - elif lobsterin_obj: - lobs_in = lobsterin_obj - else: - raise ValueError("Please provide path_to_lobsterin or lobsterin_obj") - - calc_basis = [] - for basis in lobs_in["basisfunctions"]: - basis_sep = basis.split()[1:] - basis_comb = " ".join(basis_sep) - calc_basis.append(basis_comb) - - if calc_basis == list(ref_bases[0].values()): - quality_dict["minimal_basis"] = True # type: ignore - else: - quality_dict["minimal_basis"] = False # type: ignore - warnings.warn( - "Consider rerunning the calc with the minimum basis as well. Choosing is " - "larger basis set is recommended if you see a significant improvement of " - "the charge spilling and material has non-zero band gap.", - stacklevel=2, - ) - - if path_to_lobsterout: - lob_out = Lobsterout(path_to_lobsterout) - elif lobsterout_obj: - lob_out = lobsterout_obj - else: - raise ValueError("Please provide path_to_lobsterout or lobsterout_obj") - - quality_dict["charge_spilling"] = { - "abs_charge_spilling": round((sum(lob_out.charge_spilling) / 2) * 100, 4), - "abs_total_spilling": round((sum(lob_out.total_spilling) / 2) * 100, 4), - } # type: ignore - - if path_to_bandoverlaps is not None and not bandoverlaps_obj: - band_overlaps = Bandoverlaps(filename=path_to_bandoverlaps) if Path(path_to_bandoverlaps).exists() else None - elif path_to_bandoverlaps is None and bandoverlaps_obj: - band_overlaps = bandoverlaps_obj - else: - band_overlaps = None - - if band_overlaps is not None: - for line in lob_out.warning_lines: - if "k-points could not be orthonormalized" in line: - total_kpoints = int(line.split(" ")[2]) - - # store actual number of devations above pymatgen default limit of 0.1 - dev_val = [] - for dev in band_overlaps.max_deviation: - if dev > 0.1: - dev_val.append(dev) - - quality_dict["band_overlaps_analysis"] = { # type: ignore - "file_exists": True, - "limit_maxDeviation": 0.1, - "has_good_quality_maxDeviation": band_overlaps.has_good_quality_maxDeviation(limit_maxDeviation=0.1), - "max_deviation": round(max(band_overlaps.max_deviation), 4), - "percent_kpoints_abv_limit": round((len(dev_val) / total_kpoints) * 100, 4), - } - - else: - quality_dict["band_overlaps_analysis"] = { # type: ignore - "file_exists": False, - "limit_maxDeviation": None, - "has_good_quality_maxDeviation": True, - "max_deviation": None, - "percent_kpoints_abv_limit": None, - } - - if bva_comp: - try: - bond_valence = BVAnalyzer() - - bva_oxi = [] - if path_to_charge and not charge_obj: - lobs_charge = Charge(filename=path_to_charge) - elif not path_to_charge and charge_obj: - lobs_charge = charge_obj - else: - raise Exception("BVA comparison is requested, thus please provide path_to_charge or charge_obj") - for i in bond_valence.get_valences(structure=struct): - if i >= 0: - bva_oxi.append("POS") - else: - bva_oxi.append("NEG") - - mull_oxi = [] - for i in lobs_charge.Mulliken: - if i >= 0: - mull_oxi.append("POS") - else: - mull_oxi.append("NEG") - - loew_oxi = [] - for i in lobs_charge.Loewdin: - if i >= 0: - loew_oxi.append("POS") - else: - loew_oxi.append("NEG") - - quality_dict["charge_comparisons"] = {} # type: ignore - if mull_oxi == bva_oxi: - quality_dict["charge_comparisons"]["bva_mulliken_agree"] = True # type: ignore - else: - quality_dict["charge_comparisons"]["bva_mulliken_agree"] = False # type: ignore - - if mull_oxi == bva_oxi: - quality_dict["charge_comparisons"]["bva_loewdin_agree"] = True # type: ignore - else: - quality_dict["charge_comparisons"]["bva_loewdin_agree"] = False # type: ignore - - except ValueError: - quality_dict["charge_comparisons"] = {} # type: ignore - warnings.warn( - "Oxidation states from BVA analyzer cannot be determined. " - "Thus BVA charge comparison will be skipped", - stacklevel=2, - ) - if dos_comparison: - if "LSO" not in str(path_to_doscar).split(".") and lobster_completedos_obj is None: - warnings.warn( - "Consider using DOSCAR.LSO.lobster, as non LSO DOS from LOBSTER can have negative DOS values", - stacklevel=2, - ) - if path_to_doscar: - doscar_lobster = Doscar( - doscar=path_to_doscar, - structure_file=path_to_poscar, - structure=structure_obj, - ) - - dos_lobster = doscar_lobster.completedos - elif lobster_completedos_obj: - dos_lobster = lobster_completedos_obj - else: - raise ValueError( - "Dos comparison is requested, so please provide either path_to_doscar or lobster_completedos_obj" - ) - - if path_to_vasprun and not ref_dos_obj: - dos_vasp = Vasprun(path_to_vasprun, parse_potcar_file=False, parse_eigen=False).complete_dos - elif vasprun_obj and not ref_dos_obj: - dos_vasp = vasprun_obj.complete_dos - elif ref_dos_obj: - dos_vasp = ref_dos_obj - else: - raise ValueError( - "Dos comparison is requested, so please provide either path to vasprun.xml or " - "vasprun_obj or ref_dos_obj" - ) - - quality_dict["dos_comparisons"] = {} # type: ignore - - min_e = int(max(e_range[0], min(dos_vasp.energies), min(dos_lobster.energies))) - max_e = int(min(e_range[-1], max(dos_vasp.energies), max(dos_lobster.energies))) - - if min_e > e_range[0]: - warnings.warn( - f"Minimum energy range requested for DOS comparisons is not available in " - "VASP or LOBSTER calculation. " - f"Thus, setting `min_e` to the minimum possible value of {min_e} eV", - stacklevel=2, - ) - if max_e < e_range[-1]: - warnings.warn( - f"Maximum energy range requested for DOS comparisons is not available in " - "VASP or LOBSTER calculation. " - f"Thus, setting `max_e` to the maximum possible value of {max_e} eV", - stacklevel=2, - ) - - minimum_n_bins = min( - len(dos_vasp.energies[(dos_vasp.energies >= min_e) & (dos_vasp.energies <= max_e)]), - len(dos_lobster.energies[(dos_lobster.energies >= min_e) & (dos_lobster.energies <= max_e)]), - ) - - n_bins = n_bins or minimum_n_bins - - if n_bins > minimum_n_bins: - warnings.warn( - f"Number of bins requested for DOS comparisons is larger than the " - "number of points in the energy interval. Thus, setting " - f"`n_bins` to {minimum_n_bins}.", - stacklevel=2, - ) - n_bins = minimum_n_bins - - dos_fp_kwargs = { - "min_e": min_e, - "max_e": max_e, - "n_bins": n_bins, - "normalize": True, - } - - for orb in dos_lobster.get_spd_dos(): - fp_lobster_orb = dos_lobster.get_dos_fp( - **dos_fp_kwargs, - fp_type=orb.name, - ) - fp_vasp_orb = dos_vasp.get_dos_fp( - **dos_fp_kwargs, - fp_type=orb.name, - ) - - tani_orb = round( - dos_vasp.get_dos_fp_similarity(fp_lobster_orb, fp_vasp_orb, metric="tanimoto"), - 4, - ) - quality_dict["dos_comparisons"][f"tanimoto_orb_{orb.name}"] = tani_orb # type: ignore - - fp_lobster = dos_lobster.get_dos_fp( - **dos_fp_kwargs, - fp_type="summed_pdos", - ) - fp_vasp = dos_vasp.get_dos_fp( - **dos_fp_kwargs, - fp_type="summed_pdos", - ) - - tanimoto_summed = round(dos_vasp.get_dos_fp_similarity(fp_lobster, fp_vasp, metric="tanimoto"), 4) - quality_dict["dos_comparisons"]["tanimoto_summed"] = tanimoto_summed # type: ignore - quality_dict["dos_comparisons"]["e_range"] = [min_e, max_e] # type: ignore - quality_dict["dos_comparisons"]["n_bins"] = n_bins # type: ignore - - return quality_dict diff --git a/src/lobsterpy/coxx/describe.py b/src/lobsterpy/coxx/describe.py index 7f896135..96bbfb9a 100644 --- a/src/lobsterpy/coxx/describe.py +++ b/src/lobsterpy/coxx/describe.py @@ -633,114 +633,3 @@ def write_description(self): """Print the description of the COHPs or COBIs or COOPs to the screen.""" for textpart in self.text: print(textpart) - - @staticmethod - def get_calc_quality_description(quality_dict): - """ - Generate a text description of the LOBSTER calculation quality. - - :param quality_dict: python dictionary from lobsterpy.analysis.get_lobster_calc_quality_summary - """ - warnings.warn( - "This method is being deprecated and will be " - "removed on 30-03-2026. Please use `lobsterpy.quality.LobsterCalcQuality.describe()` instead.", - DeprecationWarning, - stacklevel=2, - ) - - text_des = [] - - for key, val in quality_dict.items(): - if key == "minimal_basis": - if val: - text_des.append("The LOBSTER calculation used minimal basis.") - if not val: - text_des.append( - "Consider rerunning the calculation with the minimum basis as well. Choosing a " - "larger basis set is only recommended if you see a significant improvement of " - "the charge spilling." - ) - - elif key == "charge_spilling": - text_des.append( - "The absolute and total charge spilling for the calculation is {} and {} %, respectively.".format( - quality_dict[key]["abs_charge_spilling"], - quality_dict[key]["abs_total_spilling"], - ) - ) - elif key == "band_overlaps_analysis": - if quality_dict[key]["file_exists"]: - if quality_dict[key]["has_good_quality_maxDeviation"]: - text_des.append( - "The bandOverlaps.lobster file is generated during the LOBSTER run. This " - "indicates that the projected wave function is not completely orthonormalized; " - "however, the maximal deviation values observed compared to the identity matrix " - "is below the threshold of 0.1." - ) - else: - text_des.append( - "The bandOverlaps.lobster file is generated during the LOBSTER run. This " - "indicates that the projected wave function is not completely orthonormalized. " - "The maximal deviation value from the identity matrix is {}, and there are " - "{} percent k-points above the deviation threshold of 0.1. Please check the " - "results of other quality checks like dos comparisons, charges, " - "charge spillings before using the results for further " - "analysis.".format( - quality_dict[key]["max_deviation"], - quality_dict[key]["percent_kpoints_abv_limit"], - ) - ) - else: - text_des.append( - "The projected wave function is completely orthonormalized as no " - "bandOverlaps.lobster file is generated during the LOBSTER run." - ) - - elif key == "charge_comparisons": - if val: - for charge in ["mulliken", "loewdin"]: - if val[f"bva_{charge}_agree"]: - text_des.append( - f"The atomic charge signs from {charge.capitalize()} population analysis " - f"agree with the bond valence analysis." - ) - if not val[f"bva_{charge}_agree"]: - text_des.append( - f"The atomic charge signs from {charge.capitalize()} population analysis " - f"do not agree with the bond valence analysis." - ) - else: - text_des.append( - "Oxidation states from BVA analyzer cannot be determined. " - "Thus BVA charge comparison is not conducted." - ) - - elif key == "dos_comparisons": - comp_types = [] - tani_index = [] - for orb in val: - if orb.split("_")[-1] in ["s", "p", "d", "f", "summed"]: - comp_types.append(orb.split("_")[-1]) - tani_index.append(str(val[orb])) - text_des.append( - "The Tanimoto index from DOS comparisons in the energy range between {}, {} eV " - "for {} orbitals are: {}.".format( - val["e_range"][0], - val["e_range"][1], - ", ".join(comp_types), - ", ".join(tani_index), - ) - ) - - return text_des - - @staticmethod - def write_calc_quality_description(calc_quality_text): - """Print the calculation quality description to the screen.""" - warnings.warn( - "This method is being deprecated and will be " - "removed on 30-03-2026. Please use `lobsterpy.quality.LobsterCalcQuality.print_description()` instead.", - DeprecationWarning, - stacklevel=2, - ) - print(" ".join(calc_quality_text)) diff --git a/src/lobsterpy/featurize/core.py b/src/lobsterpy/featurize/core.py index 52375631..844f9a82 100644 --- a/src/lobsterpy/featurize/core.py +++ b/src/lobsterpy/featurize/core.py @@ -326,10 +326,10 @@ def get_lobsterpy_cba_dict( ) default_kwargs.update( { - "path_to_poscar": str(file_paths.get("structure")), - "path_to_icohplist": str(file_paths.get("icobilist")), - "path_to_cohpcar": str(file_paths.get("cobicar")), - "path_to_charge": str(file_paths.get("charge")), + "structure_path": str(file_paths.get("structure")), + "icoxxlist_path": str(file_paths.get("icobilist")), + "coxxcar_path": str(file_paths.get("cobicar")), + "charge_path": str(file_paths.get("charge")), } ) @@ -340,10 +340,10 @@ def get_lobsterpy_cba_dict( ) default_kwargs.update( { - "path_to_poscar": str(file_paths.get("structure")), - "path_to_icohplist": str(file_paths.get("icooplist")), - "path_to_cohpcar": str(file_paths.get("coopcar")), - "path_to_charge": str(file_paths.get("charge")), + "structure_path": str(file_paths.get("structure")), + "icoxxlist_path": str(file_paths.get("icooplist")), + "coxxcar_path": str(file_paths.get("coopcar")), + "charge_path": str(file_paths.get("charge")), } ) else: @@ -353,15 +353,15 @@ def get_lobsterpy_cba_dict( ) default_kwargs.update( { - "path_to_poscar": str(file_paths.get("structure")), - "path_to_icohplist": str(file_paths.get("icohplist")), - "path_to_cohpcar": str(file_paths.get("cohpcar")), - "path_to_charge": str(file_paths.get("charge")), + "structure_path": str(file_paths.get("structure")), + "icoxxlist_path": str(file_paths.get("icohplist")), + "coxxcar_path": str(file_paths.get("cohpcar")), + "charge_path": str(file_paths.get("charge")), } ) try: - analyse = Analysis(**default_kwargs) + analyse = Analysis.from_files(**default_kwargs) type_pop = analyse._get_pop_type() data = {bond_type: {"lobsterpy_data": analyse.condensed_bonding_analysis}} diff --git a/src/lobsterpy/quality/analyze.py b/src/lobsterpy/quality/analyze.py index 8bcd992a..c7fd3d3d 100644 --- a/src/lobsterpy/quality/analyze.py +++ b/src/lobsterpy/quality/analyze.py @@ -257,8 +257,8 @@ def _bva_charge_comparison(self) -> dict: try: bva = BVAnalyzer() bva_oxi = ["POS" if v >= 0 else "NEG" for v in bva.get_valences(self.structure)] - mull = ["POS" if v >= 0 else "NEG" for v in self.charge.Mulliken] - loew = ["POS" if v >= 0 else "NEG" for v in self.charge.Loewdin] + mull = ["POS" if v >= 0 else "NEG" for v in self.charge.mulliken] + loew = ["POS" if v >= 0 else "NEG" for v in self.charge.loewdin] return { "charge_comparisons": { diff --git a/src/lobsterpy/structuregraph/graph.py b/src/lobsterpy/structuregraph/graph.py index d69cb4ba..bb602534 100644 --- a/src/lobsterpy/structuregraph/graph.py +++ b/src/lobsterpy/structuregraph/graph.py @@ -142,12 +142,12 @@ def get_decorated_sg(self): ) # Initialize automating bonding analysis from Lobsterpy based on ICOHP - analyze = Analysis( - path_to_charge=self.path_to_charge, - path_to_cohpcar=self.path_to_cohpcar, - path_to_poscar=self.path_to_poscar, - path_to_icohplist=self.path_to_icohplist, - path_to_madelung=self.path_to_madelung, + analyze = Analysis.from_files( + charge_path=self.path_to_charge, + coxxcar_path=self.path_to_cohpcar, + structure_path=self.path_to_poscar, + icoxxlist_path=self.path_to_icohplist, + madelung_path=self.path_to_madelung, which_bonds=self.which_bonds, cutoff_icohp=self.cutoff_icohp, ) diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index 995dda4c..822421f5 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -751,8 +751,11 @@ def test_cli_exceptions(self): test = get_parser().parse_args(args) run(test) - assert str(err2.value) == "Files ['CONTCAR', 'lobsterin', 'lobsterout'] not found in tests." - # + assert ( + str(err2.value) + == "[Errno 2] No such file or directory: '/home/anaik/Work/Dev_Codes/LobsterPy/tests/CONTCAR'" + ) + # doscar comparison exceptions test with pytest.raises(Exception) as err3: # noqa: PT012, PT011 os.chdir(TestDir / "test_data/NaCl") @@ -766,7 +769,7 @@ def test_cli_exceptions(self): test = get_parser().parse_args(args) run(test) - assert str(err3.value) == "Files ['vasprun.xml', 'DOSCAR.LSO.lobster'] not found in NaCl." + assert str(err3.value) == "DOS comparison requested but DOS data missing" with pytest.raises(Exception) as err4: # noqa: PT012, PT011 os.chdir(TestDir / "test_data/CsH") diff --git a/tests/conftest.py b/tests/conftest.py index 176e13b5..8ce8e29d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,11 +5,12 @@ from pathlib import Path import pytest +from pymatgen.core.structure import Structure from pymatgen.electronic_structure.cohp import CompleteCohp from pymatgen.io.lobster import Charge, Doscar, Icohplist -from lobsterpy.cohp.analyze import Analysis -from lobsterpy.cohp.describe import Description +from lobsterpy.coxx.analyze import Analysis +from lobsterpy.coxx.describe import Description from lobsterpy.featurize.core import FeaturizeIcoxxlist TestDir = Path(__file__).absolute().parent @@ -18,11 +19,11 @@ # Fixtures for testing analyze module @pytest.fixture def analyse_nacl(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -30,11 +31,11 @@ def analyse_nacl(): @pytest.fixture def analyse_nacl_comp_range(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_comp_range/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_comp_range/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_comp_range/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_comp_range/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -42,11 +43,11 @@ def analyse_nacl_comp_range(): @pytest.fixture def analyse_nacl_comp_range_orb(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_comp_range/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_comp_range/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_comp_range/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_comp_range/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, orbital_cutoff=0.10, @@ -56,6 +57,7 @@ def analyse_nacl_comp_range_orb(): @pytest.fixture def analyse_nacl_comp_range_orb_with_objs(): + structure_obj = Structure.from_file(TestDir / "test_data/NaCl_comp_range/CONTCAR.gz") charge_obj = Charge(filename=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz") completecoxx_obj = CompleteCohp.from_file( filename=TestDir / "test_data/NaCl_comp_range/COHPCAR.lobster.gz", @@ -65,10 +67,7 @@ def analyse_nacl_comp_range_orb_with_objs(): icoxxlist_obj = Icohplist(filename=TestDir / "test_data/NaCl_comp_range/ICOHPLIST.lobster.gz") return Analysis( - path_to_poscar=None, - path_to_cohpcar=None, - path_to_charge=None, - path_to_icohplist=None, + structure=structure_obj, completecoxx_obj=completecoxx_obj, icoxxlist_obj=icoxxlist_obj, charge_obj=charge_obj, @@ -81,11 +80,11 @@ def analyse_nacl_comp_range_orb_with_objs(): @pytest.fixture def analyse_nacl_comp_range_cobi(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, noise_cutoff=0.001, @@ -95,11 +94,11 @@ def analyse_nacl_comp_range_cobi(): @pytest.fixture def analyse_nacl_comp_range_cobi_orb(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, noise_cutoff=0.001, @@ -110,11 +109,11 @@ def analyse_nacl_comp_range_cobi_orb(): @pytest.fixture def analyse_nacl_nan(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, start=-4.0, @@ -123,11 +122,11 @@ def analyse_nacl_nan(): @pytest.fixture def analyse_nacl_valences(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", - path_to_charge=None, + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", + charge_path=None, which_bonds="cation-anion", cutoff_icohp=0.1, type_charge="Valences", @@ -136,12 +135,12 @@ def analyse_nacl_valences(): @pytest.fixture def analyse_nacl_madelung(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl/CHARGE.lobster.gz", - path_to_madelung=TestDir / "test_data/NaCl/MadelungEnergies.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl/CHARGE.lobster.gz", + madelung_path=TestDir / "test_data/NaCl/MadelungEnergies.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -149,11 +148,11 @@ def analyse_nacl_madelung(): @pytest.fixture def analyse_bati03(): - return Analysis( - path_to_poscar=TestDir / "test_data/BaTiO3/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/BaTiO3/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -161,11 +160,11 @@ def analyse_bati03(): @pytest.fixture def analyse_batao2n1(): - return Analysis( - path_to_poscar=TestDir / "test_data/BaTaO2N1/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTaO2N1/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTaO2N1/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTaO2N1/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/BaTaO2N1/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTaO2N1/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTaO2N1/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTaO2N1/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -173,11 +172,11 @@ def analyse_batao2n1(): @pytest.fixture def analyse_bati03_differentcutoff(): - return Analysis( - path_to_poscar=TestDir / "test_data/BaTiO3/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/BaTiO3/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.001, ) @@ -185,11 +184,11 @@ def analyse_bati03_differentcutoff(): @pytest.fixture def analyse_nacl_distorted(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_distorted/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_distorted/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_distorted/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_distorted/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_distorted/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_distorted/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_distorted/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_distorted/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -197,11 +196,11 @@ def analyse_nacl_distorted(): @pytest.fixture def analyse_nacl_spin(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_spin/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_spin/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_spin/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_spin/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_spin/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_spin/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_spin/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_spin/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -209,11 +208,11 @@ def analyse_nacl_spin(): @pytest.fixture def analyse_nacl_all(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, ) @@ -221,12 +220,12 @@ def analyse_nacl_all(): @pytest.fixture def analyse_nacl_madelung_all(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl/CHARGE.lobster.gz", - path_to_madelung=TestDir / "test_data/NaCl/MadelungEnergies.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl/CHARGE.lobster.gz", + madelung_path=TestDir / "test_data/NaCl/MadelungEnergies.lobster.gz", which_bonds="all", cutoff_icohp=0.1, ) @@ -234,12 +233,12 @@ def analyse_nacl_madelung_all(): @pytest.fixture def analyse_nasi_madelung_all(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaSi/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaSi/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaSi/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaSi/CHARGE.lobster.gz", - path_to_madelung=TestDir / "test_data/NaSi/MadelungEnergies.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaSi/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaSi/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaSi/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaSi/CHARGE.lobster.gz", + madelung_path=TestDir / "test_data/NaSi/MadelungEnergies.lobster.gz", which_bonds="all", cutoff_icohp=0.1, ) @@ -247,11 +246,11 @@ def analyse_nasi_madelung_all(): @pytest.fixture def analyse_batao2n1_cutoff(): - return Analysis( - path_to_poscar=TestDir / "test_data/BaTaO2N1/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTaO2N1/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTaO2N1/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTaO2N1/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/BaTaO2N1/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTaO2N1/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTaO2N1/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTaO2N1/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.001, ) @@ -259,11 +258,11 @@ def analyse_batao2n1_cutoff(): @pytest.fixture def analyse_nasbf6(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaSbF6/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaSbF6/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaSbF6/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaSbF6/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaSbF6/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaSbF6/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaSbF6/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaSbF6/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -271,11 +270,11 @@ def analyse_nasbf6(): @pytest.fixture def analyse_nasbf6_anbd(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaSbF6/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaSbF6/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaSbF6/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaSbF6/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaSbF6/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaSbF6/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaSbF6/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaSbF6/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, start=-5.5, @@ -284,11 +283,11 @@ def analyse_nasbf6_anbd(): @pytest.fixture def analyse_cdf(): - return Analysis( - path_to_poscar=TestDir / "test_data/CdF/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/CdF/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/CdF/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/CdF/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/CdF/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/CdF/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/CdF/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/CdF/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, start=-4.0, @@ -297,11 +296,11 @@ def analyse_cdf(): @pytest.fixture def analyse_cdf_comp_range(): - return Analysis( - path_to_poscar=TestDir / "test_data/CdF_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/CdF_comp_range/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/CdF_comp_range/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/CdF_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/CdF_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/CdF_comp_range/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/CdF_comp_range/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/CdF_comp_range/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -309,11 +308,11 @@ def analyse_cdf_comp_range(): @pytest.fixture def analyse_cdf_comp_range_coop(): - return Analysis( - path_to_poscar=TestDir / "test_data/CdF_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/CdF_comp_range/COOPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/CdF_comp_range/ICOOPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/CdF_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/CdF_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/CdF_comp_range/COOPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/CdF_comp_range/ICOOPLIST.lobster.gz", + charge_path=TestDir / "test_data/CdF_comp_range/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, noise_cutoff=0.001, @@ -323,11 +322,11 @@ def analyse_cdf_comp_range_coop(): @pytest.fixture def analyse_k3sb(): - return Analysis( - path_to_poscar=TestDir / "test_data/K3Sb/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/K3Sb/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/K3Sb/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/K3Sb/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/K3Sb/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/K3Sb/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -335,11 +334,11 @@ def analyse_k3sb(): @pytest.fixture def analyse_k3sb_all(): - return Analysis( - path_to_poscar=TestDir / "test_data/K3Sb/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/K3Sb/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/K3Sb/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/K3Sb/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/K3Sb/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/K3Sb/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, ) @@ -347,6 +346,7 @@ def analyse_k3sb_all(): @pytest.fixture def analyse_k3sb_all_objs(): + structure_obj = Structure.from_file(TestDir / "test_data/K3Sb/CONTCAR.gz") charge_obj = Charge(filename=TestDir / "test_data/K3Sb/CHARGE.lobster.gz") completecoxx_obj = CompleteCohp.from_file( filename=TestDir / "test_data/K3Sb/COHPCAR.lobster.gz", @@ -355,10 +355,7 @@ def analyse_k3sb_all_objs(): ) icoxxlist_obj = Icohplist(filename=TestDir / "test_data/K3Sb/ICOHPLIST.lobster.gz") return Analysis( - path_to_poscar=None, - path_to_cohpcar=None, - path_to_icohplist=None, - path_to_charge=None, + structure=structure_obj, completecoxx_obj=completecoxx_obj, charge_obj=charge_obj, icoxxlist_obj=icoxxlist_obj, @@ -369,11 +366,11 @@ def analyse_k3sb_all_objs(): @pytest.fixture def analyse_k3sb_all_cobi(): - return Analysis( - path_to_poscar=TestDir / "test_data/K3Sb/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/K3Sb/COBICAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/K3Sb/ICOBILIST.lobster.gz", - path_to_charge=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/K3Sb/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/K3Sb/COBICAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/K3Sb/ICOBILIST.lobster.gz", + charge_path=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, noise_cutoff=0.001, @@ -383,11 +380,11 @@ def analyse_k3sb_all_cobi(): @pytest.fixture def analyse_k3sb_all_coop_orb(): - return Analysis( - path_to_poscar=TestDir / "test_data/K3Sb/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/K3Sb/COOPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/K3Sb/ICOOPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/K3Sb/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/K3Sb/COOPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/K3Sb/ICOOPLIST.lobster.gz", + charge_path=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, noise_cutoff=0.001, @@ -470,11 +467,11 @@ def describe_k3sb_all(analyse_k3sb_all): @pytest.fixture def describe_batio3(): - analyse_batio3 = Analysis( - path_to_poscar=TestDir / "test_data/BaTiO3/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", + analyse_batio3 = Analysis.from_files( + structure_path=TestDir / "test_data/BaTiO3/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -483,11 +480,11 @@ def describe_batio3(): @pytest.fixture def describe_batio3_orb(): - analyse_bati03_orb = Analysis( - path_to_poscar=TestDir / "test_data/BaTiO3/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", + analyse_bati03_orb = Analysis.from_files( + structure_path=TestDir / "test_data/BaTiO3/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, orbital_cutoff=0.10, @@ -498,11 +495,11 @@ def describe_batio3_orb(): @pytest.fixture def describe_c_orb(): - analyse_c_orb = Analysis( - path_to_poscar=TestDir / "test_data/C/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/C/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/C/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/C/CHARGE.lobster.gz", + analyse_c_orb = Analysis.from_files( + structure_path=TestDir / "test_data/C/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/C/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/C/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/C/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, orbital_resolved=True, @@ -513,11 +510,11 @@ def describe_c_orb(): @pytest.fixture(scope="class") def describe_cdf(): - analyse_cdf = Analysis( - path_to_poscar=TestDir / "test_data/CdF/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/CdF/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/CdF/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/CdF/CHARGE.lobster.gz", + analyse_cdf = Analysis.from_files( + structure_path=TestDir / "test_data/CdF/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/CdF/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/CdF/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/CdF/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -527,11 +524,11 @@ def describe_cdf(): # test for empty bond dict text generation @pytest.fixture def describe_cdf_anbd(): - analyse_cdf_anbd = Analysis( - path_to_poscar=TestDir / "test_data/CdF/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/CdF/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/CdF/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/CdF/CHARGE.lobster.gz", + analyse_cdf_anbd = Analysis.from_files( + structure_path=TestDir / "test_data/CdF/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/CdF/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/CdF/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/CdF/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, start=-4.0, @@ -541,11 +538,11 @@ def describe_cdf_anbd(): @pytest.fixture def describe_csh_all(): - analyse_csh_all = Analysis( - path_to_poscar=TestDir / "test_data/CsH/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/CsH/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/CsH/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/CsH/CHARGE.lobster.gz", + analyse_csh_all = Analysis.from_files( + structure_path=TestDir / "test_data/CsH/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/CsH/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/CsH/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/CsH/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, ) @@ -554,11 +551,11 @@ def describe_csh_all(): @pytest.fixture def describe_nacl_spin(): - analyse_nacl_spin = Analysis( - path_to_poscar=TestDir / "test_data/NaCl_spin/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_spin/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_spin/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_spin/CHARGE.lobster.gz", + analyse_nacl_spin = Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_spin/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_spin/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_spin/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_spin/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, summed_spins=False, @@ -568,11 +565,11 @@ def describe_nacl_spin(): @pytest.fixture def describe_nasbf6_orb(): - analyse_nasbf6_orb = Analysis( - path_to_poscar=TestDir / "test_data/NaSbF6/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaSbF6/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaSbF6/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaSbF6/CHARGE.lobster.gz", + analyse_nasbf6_orb = Analysis.from_files( + structure_path=TestDir / "test_data/NaSbF6/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaSbF6/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaSbF6/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaSbF6/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, summed_spins=False, @@ -622,11 +619,11 @@ def bwdf_cdf_coop(): @pytest.fixture def plot_analyse_nacl(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, summed_spins=False, @@ -635,11 +632,11 @@ def plot_analyse_nacl(): @pytest.fixture def plot_analyse_cdf_orb(): - return Analysis( - path_to_poscar=TestDir / "test_data/CdF_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/CdF_comp_range/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/CdF_comp_range/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/CdF_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/CdF_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/CdF_comp_range/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/CdF_comp_range/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/CdF_comp_range/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, orbital_cutoff=0.10, @@ -650,11 +647,11 @@ def plot_analyse_cdf_orb(): @pytest.fixture def plot_analyse_nacl_cobi(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, summed_spins=False, @@ -665,11 +662,11 @@ def plot_analyse_nacl_cobi(): @pytest.fixture def plot_analyse_nacl_cobi_orb(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaCl_comp_range/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaCl_comp_range/COBICAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaCl_comp_range/ICOBILIST.lobster.gz", + charge_path=TestDir / "test_data/NaCl_comp_range/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, summed_spins=False, @@ -681,11 +678,11 @@ def plot_analyse_nacl_cobi_orb(): @pytest.fixture def plot_analyse_nasi(): - return Analysis( - path_to_poscar=TestDir / "test_data/NaSi/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/NaSi/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/NaSi/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/NaSi/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/NaSi/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/NaSi/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/NaSi/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/NaSi/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, summed_spins=True, @@ -694,11 +691,11 @@ def plot_analyse_nasi(): @pytest.fixture def plot_analyse_batio3_orb(): - return Analysis( - path_to_poscar=TestDir / "test_data/BaTiO3/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/BaTiO3/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTiO3/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTiO3/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTiO3/CHARGE.lobster.gz", which_bonds="all", summed_spins=False, orbital_cutoff=0.10, @@ -708,11 +705,11 @@ def plot_analyse_batio3_orb(): @pytest.fixture def plot_analyse_k3sb(): - return Analysis( - path_to_poscar=TestDir / "test_data/K3Sb/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/K3Sb/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/K3Sb/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/K3Sb/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/K3Sb/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/K3Sb/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, summed_spins=False, @@ -771,11 +768,11 @@ def k3sb_dos(): @pytest.fixture def analyse_aln_v51(): - return Analysis( - path_to_poscar=TestDir / "test_data/AlN_v51/POSCAR.lobster.vasp.gz", - path_to_cohpcar=TestDir / "test_data/AlN_v51/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/AlN_v51/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/AlN_v51/CHARGE.lobster.gz", + return Analysis.from_files( + structure_path=TestDir / "test_data/AlN_v51/POSCAR.lobster.vasp.gz", + coxxcar_path=TestDir / "test_data/AlN_v51/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/AlN_v51/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/AlN_v51/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) diff --git a/tests/cohp/__init__.py b/tests/coxx/__init__.py similarity index 100% rename from tests/cohp/__init__.py rename to tests/coxx/__init__.py diff --git a/tests/cohp/test_analyze.py b/tests/coxx/test_analyze.py similarity index 95% rename from tests/cohp/test_analyze.py rename to tests/coxx/test_analyze.py index 9b2a7ee6..1238deba 100644 --- a/tests/cohp/test_analyze.py +++ b/tests/coxx/test_analyze.py @@ -11,7 +11,7 @@ from pymatgen.electronic_structure.cohp import CompleteCohp from pymatgen.io.lobster import Icohplist -from lobsterpy.cohp.analyze import Analysis +from lobsterpy.coxx.analyze import Analysis CurrentDir = Path(__file__).absolute().parent TestDir = CurrentDir / "../" @@ -952,20 +952,20 @@ def test_analyse_aln_v51(self, analyse_aln_v51): def test_exception(self): with pytest.raises(ValueError): # noqa: PT011 - self.analyse_batao2n1 = Analysis( - path_to_poscar=TestDir / "test_data/BaTaO2N1/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/BaTaO2N1/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTaO2N1/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTaO2N1/CHARGE.lobster.gz", + self.analyse_batao2n1 = Analysis.from_files( + structure_path=TestDir / "test_data/BaTaO2N1/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/BaTaO2N1/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTaO2N1/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTaO2N1/CHARGE.lobster.gz", which_bonds="cation_cation", cutoff_icohp=0.1, ) with pytest.raises(ValueError) as err: # noqa: PT011 - self.analyse_c = Analysis( - path_to_poscar=TestDir / "test_data/C/CONTCAR.gz", - path_to_cohpcar=TestDir / "test_data/C/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/C/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/C/CHARGE.lobster.gz", + self.analyse_c = Analysis.from_files( + structure_path=TestDir / "test_data/C/CONTCAR.gz", + coxxcar_path=TestDir / "test_data/C/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/C/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/C/CHARGE.lobster.gz", which_bonds="cation-anion", cutoff_icohp=0.1, ) @@ -979,27 +979,18 @@ def test_analysis_init_warnings(self, tmp_path): source_file = TestDir / "test_data/C/CONTCAR.gz" temp_poscar_path = tmp_path / "POSCAR.gz" # copy CONTCAR as POSCAR shutil.copy(source_file, temp_poscar_path) - self.analyse_c = Analysis( - path_to_poscar=temp_poscar_path, - path_to_cohpcar=TestDir / "test_data/C/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/C/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/C/CHARGE.lobster.gz", + self.analyse_c = Analysis.from_files( + structure_path=temp_poscar_path, + coxxcar_path=TestDir / "test_data/C/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/C/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/C/CHARGE.lobster.gz", which_bonds="all", cutoff_icohp=0.1, ) - assert len(w) == 4 + assert len(w) == 2 assert ( - str(w[0].message) == "Analysis is deprecated, and will be removed on 2026-06-30\n\n" - "use `lobsterpy.coxx.analyze.Analysis` instead." - ) - assert ( - str(w[1].message) == "Initialization via path_to_* arguments is being deprecated and will be " - "removed on 30-06-2026. Please use Analysis.from_files() or " - "Analysis.from_directory() instead." - ) - assert ( - str(w[2].message) == "Falling back to POSCAR, translations between individual " + str(w[0].message) == "Falling back to POSCAR, translations between individual " "atoms may differ from LOBSTER outputs. Please note that " "translations in the LOBSTER outputs are consistent with " "CONTCAR (also with POSCAR.lobster.vasp or POSCAR.vasp : " @@ -1010,17 +1001,17 @@ def test_analysis_init_warnings(self, tmp_path): with warnings.catch_warnings(record=True) as w2: warnings.simplefilter("once") warnings.filterwarnings("ignore", module="spglib") - self.analyse_batio3_w = Analysis( - path_to_poscar=TestDir / "test_data/BaTe_low_quality/POSCAR.lobster.vasp.gz", - path_to_cohpcar=TestDir / "test_data/BaTe_low_quality/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTe_low_quality/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTe_low_quality/CHARGE.lobster.gz", + self.analyse_batio3_w = Analysis.from_files( + structure_path=TestDir / "test_data/BaTe_low_quality/POSCAR.lobster.vasp.gz", + coxxcar_path=TestDir / "test_data/BaTe_low_quality/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTe_low_quality/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTe_low_quality/CHARGE.lobster.gz", which_bonds="all", type_charge="Valences", cutoff_icohp=0.1, ) assert ( - str(w2[2].message) == "Using Valences for chemical environment analysis. " + str(w2[0].message) == "Using Valences for chemical environment analysis. " "It is recommended to use 'Mulliken' or 'Loewdin' charges." ) @@ -1028,16 +1019,16 @@ def test_analysis_init_warnings(self, tmp_path): with warnings.catch_warnings(record=True) as w3: warnings.simplefilter("once") warnings.filterwarnings("ignore", module="spglib") - self.analyse_batio3_w = Analysis( - path_to_poscar=TestDir / "test_data/BaTe_low_quality/POSCAR.lobster.vasp.gz", - path_to_cohpcar=TestDir / "test_data/BaTe_low_quality/COHPCAR.lobster.gz", - path_to_icohplist=TestDir / "test_data/BaTe_low_quality/ICOHPLIST.lobster.gz", - path_to_charge=TestDir / "test_data/BaTe_low_quality/CHARGE.lobster.gz", + self.analyse_batio3_w = Analysis.from_files( + structure_path=TestDir / "test_data/BaTe_low_quality/POSCAR.lobster.vasp.gz", + coxxcar_path=TestDir / "test_data/BaTe_low_quality/COHPCAR.lobster.gz", + icoxxlist_path=TestDir / "test_data/BaTe_low_quality/ICOHPLIST.lobster.gz", + charge_path=TestDir / "test_data/BaTe_low_quality/CHARGE.lobster.gz", which_bonds="all", type_charge="Loewdin", cutoff_icohp=0.1, ) - assert str(w3[2].message) == "Support for Loewdin charges is currently experimental. Use with caution!" + assert str(w3[0].message) == "Support for Loewdin charges is currently experimental. Use with caution!" def test_msonable(self, analyse_k3sb_all_objs, analyse_nacl_comp_range_orb): msonable_dict = analyse_k3sb_all_objs.as_dict() diff --git a/tests/cohp/test_describe.py b/tests/coxx/test_describe.py similarity index 99% rename from tests/cohp/test_describe.py rename to tests/coxx/test_describe.py index 34e83f98..24b0efe8 100644 --- a/tests/cohp/test_describe.py +++ b/tests/coxx/test_describe.py @@ -3,7 +3,7 @@ import tempfile from pathlib import Path -from lobsterpy.cohp.describe import Description +from lobsterpy.coxx.describe import Description CurrentDir = Path(__file__).absolute().parent TestDir = CurrentDir / "../" diff --git a/tests/plotting/test_plotting.py b/tests/plotting/test_plotting.py index 442f25eb..0dc0e591 100644 --- a/tests/plotting/test_plotting.py +++ b/tests/plotting/test_plotting.py @@ -9,7 +9,7 @@ from pymatgen.electronic_structure.cohp import Cohp from pymatgen.electronic_structure.core import Spin -from lobsterpy.cohp.describe import Description +from lobsterpy.coxx.describe import Description from lobsterpy.plotting import ( BWDFPlotter, IcohpDistancePlotter, diff --git a/tests/quality/test_analyze.py b/tests/quality/test_analyze.py index 43487353..000867c0 100644 --- a/tests/quality/test_analyze.py +++ b/tests/quality/test_analyze.py @@ -6,8 +6,6 @@ from pymatgen.io.lobster import Bandoverlaps, Charge, Doscar, Lobsterin, Lobsterout from pymatgen.io.vasp import Vasprun -from lobsterpy.cohp.analyze import Analysis -from lobsterpy.cohp.describe import Description from lobsterpy.quality import LobsterCalcQuality CurrentDir = Path(__file__).absolute().parent @@ -15,7 +13,7 @@ class TestLobsterCalcQuality: - def test_calc_quality_summary_with_objs(self): + def test_calc_quality_summary_consistency(self): charge_obj = Charge(filename=TestDir / "test_data" / "K3Sb" / "CHARGE.lobster.gz") bandoverlaps_obj = Bandoverlaps(filename=TestDir / "test_data" / "K3Sb" / "bandOverlaps.lobster.gz") structure_obj = Structure.from_file(filename=TestDir / "test_data" / "K3Sb" / "CONTCAR.gz") @@ -30,41 +28,44 @@ def test_calc_quality_summary_with_objs(self): lobsterin_obj = Lobsterin.from_file(TestDir / "test_data" / "K3Sb" / "lobsterin.gz") lobsterout_obj = Lobsterout(filename=TestDir / "test_data" / "K3Sb" / "lobsterout.gz") - calc_des_with_objs = Analysis.get_lobster_calc_quality_summary( - structure_obj=structure_obj, - lobster_completedos_obj=doscar.completedos, - charge_obj=charge_obj, - bandoverlaps_obj=bandoverlaps_obj, - vasprun_obj=vasprun_obj, - lobsterin_obj=lobsterin_obj, - lobsterout_obj=lobsterout_obj, - dos_comparison=True, - bva_comp=True, - n_bins=256, + calc_quality_with_objs = LobsterCalcQuality( + structure=structure_obj, + lobster_dos=doscar.completedos, + charge=charge_obj, + potcar_symbols=["K_sv", "Sb"], + bandoverlaps=bandoverlaps_obj, + vasp_dos=vasprun_obj.complete_dos, + lobsterin=lobsterin_obj, + lobsterout=lobsterout_obj, + ) + + calc_quality_dict_with_objs = calc_quality_with_objs.get_calculation_quality_summary( + dos_comparison=True, bva_comp=True, n_bins=256 ) - calc_des_with_paths = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=TestDir / "test_data" / "K3Sb" / "CONTCAR.gz", + calc_quality_from_paths = LobsterCalcQuality.from_files( + poscar=TestDir / "test_data" / "K3Sb" / "CONTCAR.gz", potcar_symbols=["K_sv", "Sb"], - path_to_charge=TestDir / "test_data" / "K3Sb" / "CHARGE.lobster.gz", - path_to_doscar=TestDir / "test_data" / "K3Sb" / "DOSCAR.LSO.lobster.gz", - path_to_vasprun=TestDir / "test_data" / "K3Sb" / "vasprun.xml.gz", - path_to_bandoverlaps=TestDir / "test_data" / "K3Sb" / "bandOverlaps.lobster.gz", - path_to_lobsterout=TestDir / "test_data" / "K3Sb" / "lobsterout.gz", - path_to_lobsterin=TestDir / "test_data" / "K3Sb" / "lobsterin.gz", - dos_comparison=True, - bva_comp=True, - n_bins=256, + charge=TestDir / "test_data" / "K3Sb" / "CHARGE.lobster.gz", + doscar=TestDir / "test_data" / "K3Sb" / "DOSCAR.LSO.lobster.gz", + vasprun=TestDir / "test_data" / "K3Sb" / "vasprun.xml.gz", + bandoverlaps=TestDir / "test_data" / "K3Sb" / "bandOverlaps.lobster.gz", + lobsterout=TestDir / "test_data" / "K3Sb" / "lobsterout.gz", + lobsterin=TestDir / "test_data" / "K3Sb" / "lobsterin.gz", ) - assert calc_des_with_objs == calc_des_with_paths + calc_quality_dict_from_paths = calc_quality_from_paths.get_calculation_quality_summary( + dos_comparison=True, bva_comp=True, n_bins=256 + ) + + assert calc_quality_dict_with_objs == calc_quality_dict_from_paths # Test new LobsterCalcQuality class method - calc_des_from_dir = LobsterCalcQuality.from_directory( + calc_quality_dict_from_dir = LobsterCalcQuality.from_directory( path_to_lobster_calc=TestDir / "test_data" / "K3Sb" ).get_calculation_quality_summary(dos_comparison=True, bva_comp=True, n_bins=256) - assert calc_des_with_objs == calc_des_from_dir + assert calc_quality_dict_with_objs == calc_quality_dict_from_dir def test_calc_quality_summary_exceptions(self): charge_obj = Charge(filename=TestDir / "test_data" / "K3Sb" / "CHARGE.lobster.gz") @@ -81,133 +82,83 @@ def test_calc_quality_summary_exceptions(self): lobsterin_obj = Lobsterin.from_file(TestDir / "test_data" / "K3Sb" / "lobsterin.gz") lobsterout_obj = Lobsterout(filename=TestDir / "test_data" / "K3Sb" / "lobsterout.gz") - with pytest.raises(ValueError) as err_poscar: # noqa: PT011 - self.calc_des = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=None, - structure_obj=None, - lobster_completedos_obj=doscar.completedos, - charge_obj=charge_obj, - bandoverlaps_obj=bandoverlaps_obj, - vasprun_obj=vasprun_obj, - lobsterin_obj=lobsterin_obj, - lobsterout_obj=lobsterout_obj, - ) - - assert str(err_poscar.value) == "Please provide path_to_poscar or structure_obj" - with pytest.raises(ValueError) as err_potcar: # noqa: PT011 - self.calc_des = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=None, - path_to_potcar=None, + self.calc_des = LobsterCalcQuality.from_files( + poscar=TestDir / "test_data" / "K3Sb" / "CONTCAR.gz", + potcar=None, potcar_symbols=None, - structure_obj=structure_obj, - lobster_completedos_obj=doscar.completedos, - charge_obj=charge_obj, - bandoverlaps_obj=bandoverlaps_obj, - vasprun_obj=None, - lobsterin_obj=lobsterin_obj, - lobsterout_obj=lobsterout_obj, + doscar=TestDir / "test_data" / "K3Sb" / "DOSCAR.LSO.lobster.gz", + charge=TestDir / "test_data" / "K3Sb" / "CHARGE.lobster.gz", + bandoverlaps=TestDir / "test_data" / "K3Sb" / "bandOverlaps.lobster.gz", + vasprun=None, + lobsterin=TestDir / "test_data" / "K3Sb" / "lobsterin.gz", + lobsterout=TestDir / "test_data" / "K3Sb" / "lobsterout.gz", ) assert ( - str(err_potcar.value) == "Please provide either path_to_potcar or list of " - "potcar_symbols or path to vasprun.xml or vasprun object. " - "Crucial to identify basis used for projections" + str(err_potcar.value) == "Provide potcar, potcar_symbols, or vasprun.xml to " + "identify basis set used for projections" ) - with pytest.raises(ValueError) as err_lobsterout: # noqa: PT011 - self.calc_des = Analysis.get_lobster_calc_quality_summary( - structure_obj=structure_obj, - lobster_completedos_obj=doscar.completedos, - charge_obj=charge_obj, - bandoverlaps_obj=bandoverlaps_obj, - vasprun_obj=vasprun_obj, - lobsterin_obj=lobsterin_obj, - lobsterout_obj=None, - ) - - assert str(err_lobsterout.value) == "Please provide path_to_lobsterout or lobsterout_obj" - - with pytest.raises(ValueError) as err_lobsterin: # noqa: PT011 - self.calc_des = Analysis.get_lobster_calc_quality_summary( - structure_obj=structure_obj, - lobster_completedos_obj=doscar.completedos, - charge_obj=charge_obj, - bandoverlaps_obj=bandoverlaps_obj, - vasprun_obj=vasprun_obj, - lobsterin_obj=None, - lobsterout_obj=lobsterout_obj, - ) - - assert str(err_lobsterin.value) == "Please provide path_to_lobsterin or lobsterin_obj" - with pytest.raises(Exception) as err_charge: # noqa: PT011 - self.calc_des = Analysis.get_lobster_calc_quality_summary( - structure_obj=structure_obj, - lobster_completedos_obj=doscar.completedos, - charge_obj=None, - path_to_charge=None, - bandoverlaps_obj=bandoverlaps_obj, - vasprun_obj=vasprun_obj, - lobsterin_obj=lobsterin_obj, - lobsterout_obj=lobsterout_obj, - bva_comp=True, - ) + self.calc_des = LobsterCalcQuality( + structure=structure_obj, + lobster_dos=doscar.completedos, + charge=None, + potcar_symbols=["K_sv", "Sb"], + bandoverlaps=bandoverlaps_obj, + vasp_dos=vasprun_obj.complete_dos, + lobsterin=lobsterin_obj, + lobsterout=lobsterout_obj, + ).get_calculation_quality_summary(bva_comp=True) - assert str(err_charge.value) == "BVA comparison is requested, thus please provide path_to_charge or charge_obj" + assert str(err_charge.value) == "BVA comparison requested but CHARGE.lobster not provided" with pytest.raises(ValueError) as err_doscar: # noqa: PT011 - self.calc_des = Analysis.get_lobster_calc_quality_summary( - structure_obj=structure_obj, - lobster_completedos_obj=None, - charge_obj=charge_obj, + self.calc_des = LobsterCalcQuality( + structure=structure_obj, + lobster_dos=None, + charge=charge_obj, potcar_symbols=["K_sv", "Sb"], - bandoverlaps_obj=bandoverlaps_obj, - vasprun_obj=None, - lobsterin_obj=lobsterin_obj, - lobsterout_obj=lobsterout_obj, - bva_comp=True, - dos_comparison=True, - ) + bandoverlaps=bandoverlaps_obj, + vasp_dos=None, + lobsterin=lobsterin_obj, + lobsterout=lobsterout_obj, + ).get_calculation_quality_summary(dos_comparison=True, n_bins=256) - assert ( - str(err_doscar.value) - == "Dos comparison is requested, so please provide either path_to_doscar or lobster_completedos_obj" - ) + assert str(err_doscar.value) == "DOS comparison requested but DOS data missing" class TestCalcQualityDescribe: def test_calc_quality_description_text(self): - calc_quality_K3Sb = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=TestDir / "test_data/K3Sb/CONTCAR.gz", - path_to_charge=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", - path_to_lobsterout=TestDir / "test_data/K3Sb/lobsterout.gz", - path_to_lobsterin=TestDir / "test_data/K3Sb/lobsterin.gz", + calc_quality_K3Sb = LobsterCalcQuality.from_files( + poscar=TestDir / "test_data/K3Sb/CONTCAR.gz", + charge=TestDir / "test_data/K3Sb/CHARGE.lobster.gz", + lobsterout=TestDir / "test_data/K3Sb/lobsterout.gz", + lobsterin=TestDir / "test_data/K3Sb/lobsterin.gz", potcar_symbols=["K_sv", "Sb"], - path_to_bandoverlaps=TestDir / "test_data/K3Sb/bandOverlaps.lobster.gz", - dos_comparison=True, - bva_comp=True, - path_to_doscar=TestDir / "test_data/K3Sb/DOSCAR.LSO.lobster.gz", - e_range=[-20, 0], - path_to_vasprun=TestDir / "test_data/K3Sb/vasprun.xml.gz", - n_bins=256, + bandoverlaps=TestDir / "test_data/K3Sb/bandOverlaps.lobster.gz", + doscar=TestDir / "test_data/K3Sb/DOSCAR.LSO.lobster.gz", + vasprun=TestDir / "test_data/K3Sb/vasprun.xml.gz", ) - calc_quality_CsH = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=TestDir / "test_data/CsH/CONTCAR.gz", - path_to_charge=TestDir / "test_data/CsH/CHARGE.lobster.gz", - path_to_lobsterout=TestDir / "test_data/CsH/lobsterout.gz", - path_to_lobsterin=TestDir / "test_data/CsH/lobsterin.gz", + calc_quality_K3Sb_dict = calc_quality_K3Sb.get_calculation_quality_summary( + dos_comparison=True, bva_comp=True, n_bins=256, e_range=[-20, 0] + ) + + calc_quality_CsH = LobsterCalcQuality.from_files( + poscar=TestDir / "test_data/CsH/CONTCAR.gz", + charge=TestDir / "test_data/CsH/CHARGE.lobster.gz", + lobsterout=TestDir / "test_data/CsH/lobsterout.gz", + lobsterin=TestDir / "test_data/CsH/lobsterin.gz", potcar_symbols=["Cs_sv", "H"], - path_to_bandoverlaps=TestDir / "test_data/CsH/bandOverlaps.lobster.gz", - dos_comparison=False, - bva_comp=True, + bandoverlaps=TestDir / "test_data/CsH/bandOverlaps.lobster.gz", ) - calc_quality_k3sb_des = Description.get_calc_quality_description(calc_quality_K3Sb) - calc_quality_k3sb_des_class = LobsterCalcQuality.describe(calc_quality_K3Sb) - assert calc_quality_k3sb_des == calc_quality_k3sb_des_class - assert calc_quality_k3sb_des == [ + calc_quality_CsH_dict = calc_quality_CsH.get_calculation_quality_summary(dos_comparison=False, bva_comp=True) + + calc_quality_k3sb_des_text = LobsterCalcQuality.describe(calc_quality_K3Sb_dict) + assert calc_quality_k3sb_des_text == [ "The LOBSTER calculation used minimal basis.", "The absolute and total charge spilling for the calculation is 0.83 and 6.36 %, respectively.", ( @@ -223,44 +174,44 @@ def test_calc_quality_description_text(self): ), ] - calc_quality_csh_des = Description.get_calc_quality_description(calc_quality_CsH) - calc_quality_csh_des_class = LobsterCalcQuality.describe(calc_quality_CsH) - assert ( - calc_quality_csh_des - == calc_quality_csh_des_class - == [ - "The LOBSTER calculation used minimal basis.", - "The absolute and total charge spilling for the calculation is 3.01 and 13.73 %, respectively.", - ( - "The bandOverlaps.lobster file is generated during the LOBSTER run. This indicates that the " - "projected wave function is not completely orthonormalized. " - "The maximal deviation value from the identity matrix is 0.4285, and there are 0.1822 percent " - "k-points above the deviation threshold of 0.1. Please check the results of other quality checks " - "like dos comparisons, charges, charge spillings before using the results for further analysis." - ), - "The atomic charge signs from Mulliken population analysis agree with the bond valence analysis.", - "The atomic charge signs from Loewdin population analysis agree with the bond valence analysis.", - ] - ) + calc_quality_csh_des_text = LobsterCalcQuality.describe(calc_quality_CsH_dict) + assert calc_quality_csh_des_text == [ + "The LOBSTER calculation used minimal basis.", + "The absolute and total charge spilling for the calculation is 3.01 and 13.73 %, respectively.", + ( + "The bandOverlaps.lobster file is generated during the LOBSTER run. This indicates that the " + "projected wave function is not completely orthonormalized. " + "The maximal deviation value from the identity matrix is 0.4285, and there are 0.1822 percent " + "k-points above the deviation threshold of 0.1. Please check the results of other quality checks " + "like dos comparisons, charges, charge spillings before using the results for further analysis." + ), + "The atomic charge signs from Mulliken population analysis agree with the bond valence analysis.", + "The atomic charge signs from Loewdin population analysis agree with the bond valence analysis.", + ] class TestCalcQualityDescribeWarnings: def test_warnings(self): with warnings.catch_warnings(record=True) as w: warnings.simplefilter("once") - calc_quality_warnings = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=TestDir / "test_data/BaTe_low_quality/POSCAR.lobster.vasp.gz", - path_to_charge=TestDir / "test_data/BaTe_low_quality/CHARGE.lobster.gz", - path_to_lobsterout=TestDir / "test_data/BaTe_low_quality/lobsterout.gz", - path_to_lobsterin=TestDir / "test_data/BaTe_low_quality/lobsterin.gz", + calc_quality_obj = LobsterCalcQuality.from_files( + poscar=TestDir / "test_data/BaTe_low_quality/POSCAR.lobster.vasp.gz", + charge=TestDir / "test_data/BaTe_low_quality/CHARGE.lobster.gz", + lobsterout=TestDir / "test_data/BaTe_low_quality/lobsterout.gz", + lobsterin=TestDir / "test_data/BaTe_low_quality/lobsterin.gz", potcar_symbols=["Ba_sv", "Te"], - path_to_doscar=TestDir / "test_data/BaTe_low_quality/DOSCAR.lobster.gz", - path_to_vasprun=TestDir / "test_data/BaTe_low_quality/vasprun.xml.gz", - e_range=[-50, 60], - dos_comparison=True, - bva_comp=False, - n_bins=500, + doscar=TestDir / "test_data/BaTe_low_quality/DOSCAR.lobster.gz", + vasprun=TestDir / "test_data/BaTe_low_quality/vasprun.xml.gz", + # e_range=[-50, 60], + # dos_comparison=True, + # bva_comp=False, + # n_bins=500, + ) + + calc_quality_warnings = calc_quality_obj.get_calculation_quality_summary( + dos_comparison=True, bva_comp=False, n_bins=500, e_range=[-50, 60] ) + # messages = [] actual_warnings = [str(warning.message) for warning in w] @@ -293,7 +244,7 @@ def test_warnings(self): for actual, expected in zip(actual_warnings, expected_warnings): assert actual == expected - calc_des = Description.get_calc_quality_description(calc_quality_warnings) + calc_des = LobsterCalcQuality.describe(calc_quality_warnings) assert calc_des == [ "The LOBSTER calculation used minimal basis.", @@ -310,17 +261,18 @@ def test_warnings(self): with warnings.catch_warnings(record=True) as w2: warnings.simplefilter("once") - calc_quality_warnings2 = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=TestDir / "test_data/C/CONTCAR.gz", - path_to_charge=TestDir / "test_data/C/CHARGE.lobster.gz", - path_to_lobsterout=TestDir / "test_data/C/lobsterout.gz", - path_to_lobsterin=TestDir / "test_data/C/lobsterin.gz", + calc_quality_warnings2_obj = LobsterCalcQuality.from_files( + poscar=TestDir / "test_data/C/CONTCAR.gz", + charge=TestDir / "test_data/C/CHARGE.lobster.gz", + lobsterout=TestDir / "test_data/C/lobsterout.gz", + lobsterin=TestDir / "test_data/C/lobsterin.gz", potcar_symbols=["C"], - bva_comp=True, ) + calc_quality_warnings2 = calc_quality_warnings2_obj.get_calculation_quality_summary(bva_comp=True) + assert "Oxidation states from BVA analyzer cannot" in str(w2[-1].message) - calc_des2 = Description.get_calc_quality_description(calc_quality_warnings2) + calc_des2 = LobsterCalcQuality.describe(calc_quality_warnings2) assert calc_des2 == [ "The LOBSTER calculation used minimal basis.", @@ -335,20 +287,22 @@ def test_warnings(self): with warnings.catch_warnings(record=True) as w3: warnings.simplefilter("once") warnings.filterwarnings("ignore", module="pymatgen") - calc_quality_warnings3 = Analysis.get_lobster_calc_quality_summary( - path_to_poscar=TestDir / "test_data/BeTe/CONTCAR.gz", - path_to_charge=TestDir / "test_data/BeTe/CHARGE.lobster.gz", - path_to_lobsterout=TestDir / "test_data/BeTe/lobsterout.gz", - path_to_lobsterin=TestDir / "test_data/BeTe/lobsterin.gz", + warnings.filterwarnings("ignore", module="spglib") + calc_quality_warnings3_obj = LobsterCalcQuality.from_files( + poscar=TestDir / "test_data/BeTe/CONTCAR.gz", + charge=TestDir / "test_data/BeTe/CHARGE.lobster.gz", + lobsterout=TestDir / "test_data/BeTe/lobsterout.gz", + lobsterin=TestDir / "test_data/BeTe/lobsterin.gz", potcar_symbols=["Be_sv", "Te"], - bva_comp=True, ) + + calc_quality_warnings3 = calc_quality_warnings3_obj.get_calculation_quality_summary(bva_comp=True) assert ( - str(w3[1].message) == "Consider rerunning the calc with the minimum basis as well. " - "Choosing is larger basis set is recommended if you see a significant " - "improvement of the charge spilling and material has non-zero band gap." + str(w3[0].message) == "Consider rerunning the calc with the minimum basis as well. " + "Choosing a larger basis set is recommended if charge " + "spilling significantly improves." ) - calc_des3 = Description.get_calc_quality_description(calc_quality_warnings3) + calc_des3 = LobsterCalcQuality.describe(calc_quality_warnings3) assert calc_des3 == [ ( From 5fe6115ad692873ec5d3663314e225da2fff6f70 Mon Sep 17 00:00:00 2001 From: naik-aakash Date: Wed, 5 Aug 2026 15:07:22 +0200 Subject: [PATCH 2/7] update examples and tutorial doc --- docs/tutorial/tutorial.ipynb | 13117 +++++++++++++++- examples/example_script_NaCl.py | 17 +- .../example_script_NaCl_Structure_graph.py | 3 + examples/example_script_NaCl_all.py | 16 +- examples/example_script_NaCl_orbitalwise.py | 17 +- 5 files changed, 13037 insertions(+), 133 deletions(-) diff --git a/docs/tutorial/tutorial.ipynb b/docs/tutorial/tutorial.ipynb index 08abfd0c..bc92e408 100644 --- a/docs/tutorial/tutorial.ipynb +++ b/docs/tutorial/tutorial.ipynb @@ -43,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "1ed178c0", "metadata": { "ExecuteTime": { @@ -58,15 +58,16 @@ "\n", "from pexpect.replwrap import python\n", "\n", - "from lobsterpy.cohp.analyze import Analysis\n", - "from lobsterpy.cohp.describe import Description\n", + "from lobsterpy.coxx.analyze import Analysis\n", + "from lobsterpy.coxx.describe import Description\n", + "from lobsterpy.quality import LobsterCalcQuality\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "b26e3796", "metadata": { "ExecuteTime": { @@ -96,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "a0ebf615", "metadata": { "ExecuteTime": { @@ -107,18 +108,18 @@ "outputs": [], "source": [ "# Initialize Analysis object\n", - "analyse = Analysis(\n", - " path_to_poscar=directory / \"CONTCAR.gz\",\n", - " path_to_icohplist=directory / \"ICOHPLIST.lobster.gz\",\n", - " path_to_cohpcar=directory / \"COHPCAR.lobster.gz\",\n", - " path_to_charge=directory / \"CHARGE.lobster.gz\",\n", + "analyse = Analysis.from_files(\n", + " structure_path=directory / \"CONTCAR.gz\",\n", + " icoxxlist_path=directory / \"ICOHPLIST.lobster.gz\",\n", + " coxxcar_path=directory / \"COHPCAR.lobster.gz\",\n", + " charge_path=directory / \"CHARGE.lobster.gz\",\n", " which_bonds=\"cation-anion\",\n", ")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "9db2ca46", "metadata": { "ExecuteTime": { @@ -126,7 +127,16 @@ "start_time": "2025-01-10T10:18:10.827549Z" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The compound CdF2 has 1 symmetry-independent cation(s) with relevant cation-anion interactions: Cd1.\n", + "Cd1 has a cubic (CN=8) coordination environment. It has 8 Cd-F (mean ICOHP: -0.62 eV, 26.944 percent antibonding interaction below EFermi) bonds.\n" + ] + } + ], "source": [ "# Initialize Description object and to get text description of the analysis\n", "describe = Description(analysis_object=analyse)\n", @@ -135,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "c7244804", "metadata": { "ExecuteTime": { @@ -143,7 +153,18 @@ "start_time": "2025-01-10T10:18:10.904890Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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RESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BEREREisdARERERIrHQERERESKx0BERIohy3K8SyCiboqBiIiIiBSPgYiIiIgUj4GIiIiIFC/hApHH48Ff/vIXTJ8+HWPHjsW1116Lr776Kt5lERERUTemjncBsfbggw9i2bJleOWVV3DGGWdg1apVuPzyy/Hll19i+vTp8S6PiIiIuqGEC0QrV67EHXfcgeuvvx4AMHbsWHz88cdYtWoVAxERERFFlXCXzCZNmoR169bB6XQCAPbt24eioiKcd955ca6MiIiIuquEO0O0ZMkS3HrrrejTpw8yMjJQXl6Ol19+Gddcc02L27jdbrjd7tCyzWbrilKJiIiom+j2gejxxx/HihUrWu3z5ZdfIicnBwBQWFiItWvX4o033sCgQYPw9ddfY86cOTjrrLMwceLEqNsXFhZi/vz5sS6diIiIeghB7ua3bi0tLUVNTU2rffLy8qDVamGz2ZCWloYlS5bg17/+dWj91VdfDafT2eK3zaKdIcrJyYHVaoXZbI7NgRBR3L21oQhPfbYbZ6dL+OiBS6HRaOJdEhHFkM1mg8Vi6dDnd7c/Q9S3b1/07du3TX2dTif8fj969eoV0d67d2/s3Lmzxe10Oh10Ot1p1UlEREQ9V0INqu7Tpw+GDh2KRYsWwW63AwD27t2LZcuWYdq0aXGujoiIiLqrhApEAPDRRx+hpqYGffr0wcCBAzFy5EhcddVV+OMf/xjv0oiIiKib6vaXzNpr2LBh2LhxI2pra1FVVYV+/frxchgRERG1KuECUYOUlBSkpKTEuwwiIiLqARLukhkRERFRezEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4vXIQHT8+HGsX78eVqu1xT4lJSX46aefYLPZurAyIiIi6ol6VCD66aefcN1112HkyJGYPHkytm7d2qyPy+XCtddei/z8fNx8883IzMzEokWL4lAtERER9RQ9KhDt3LkTN954IzZu3Nhin/nz52PTpk04dOgQ9uzZg3/84x+47777Wt2GiIiIlE0d7wLa49ZbbwUAHDt2rMU+S5cuxW9/+1tkZWUBAK6++moUFBRg6dKlGD9+fFeUSURERD1MjwpEp1JWVoYTJ05g9OjREe3jxo2LenmtgdvthtvtDi03jE3i+COixOK010FyO+B1SbDZbNBoNPEuiYhiqOFzW5bldm8b10B04MABnDhxotU+Y8aMgV6vb9P+qqurAQDp6ekR7enp6aF10RQWFmL+/PnN2nNyctr0ukTUs5QA6PVEvKsgos5SVVUFi8XSrm3iGog+/vhjrFy5stU+H374Ifr27dum/TX8a8/lckW0O51OaLXaFrebN28e5syZE1qura1F//79cfTo0Xb/gfZkNpsNOTk5KCkpgdlsjnc5XYbHzeNWAh43j1sJrFYrcnNzkZaW1u5t4xqIHnvsMTz22GMx219OTg5EUURpaWlEe2lpKXJzc1vcTqfTQafTNWu3WCyK+h+pgdls5nErCI9bWXjcyqLU4xbF9n9nrEd9y+xUjEYjJk6ciE8//TTUZrfbsXr1alx88cVxrIyIiIi6sx41qPrkyZPYv38/KioqAAA7duyAWq1Gbm5u6AzQ008/jYsvvhjz5s3DhAkTsGjRImRkZOCOO+6IZ+lERETUjfWoM0SbN2/G3LlzsXDhQkyaNAkffvgh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tE3Hl5OTAwB4/fXXm62TZRkLFy7EWWedBUEQcMYZZ2Dy5Ml49dVX27RvIooxmYgoDiRJkkeOHClPmDBB9nq9zdbb7XZZlmV53759skajkZ9++ulmfR566CE5KSlJPnHihCzLsrxu3ToZgHzgwIFmffPz8+WHHnootDx69Gj5nnvuiegzevRo+dprr22x5osuukieO3dus/YNGzbIs2bNkidNmiTPmjVL3rBhQ2jda6+9JhsMBrm2tjZim9WrV8sA5J07d4ba3nrrLTkrK6vF1yeizsMzREQUF99//z22b9+OJ598Emq1utl6o9EIAFi6dCkMBgMefPDBZn0ee+wxuN1uvPfeezGpqU+fPqipqYm6zuv1YsOGDRg/fnxE+6effoqrrroK48aNQ2FhIcaPH49LLrkE3377LQBg1qxZEAQB//u//xux3ZIlS3DuuedGPHV+woQJOH78OPbs2ROT4yGitmv+LkRE1AW2b98OAKd84vy2bduQl5cXCkjh0tLSkJubG9pXg5kzZ0Kn00W0FRcXt/o6u3fvxr///W/MmTMn6vry8nI4nU7069cvov2BBx5AYWEhfvOb3wAAJk+ejIqKCjzzzDO48MILYTabcf3112PJkiW48847AQC1tbVYvnx5s8tjDZfYDh06hLPOOqvVeokothiIiChmli1bhmeeeabVPgsWLMBll10WGjSdnJzcan+3242kpKQW1ycnJzcbM7RgwYJmweW6665rtu1HH32EH3/8ES6XCwcOHMDVV1+NefPmtVgHAGi12lBbcXExioqK8Morr2DJkiWQZRmyLKOysjJiUPjtt9+OKVOmYOfOnSgoKMD7778PtVodMU4qfN/RxkARUediICKimJk8eXLUAcThBg4cCKDxbEhRUREKCgpa7J+bm4t//etfLa4vKirCRRddFNFWUFCAM888M6JNr9c32/aCCy7AI488Ar1ej9zcXJjN5hZfJyMjAwBQWVkZarPb7QCAuXPnIj8/P6K/RqMJzU+ePBn5+fl488038eKLL2LJkiW48cYbmwW9qqoqAEBmZmaLdRBR52AgIqKY6d27N3r37t2mvhdeeCFMJhOWLl2KhQsXtthvxowZePvtt/Gvf/0L559/fsS6ZcuWwWq14qqrrupwvWPGjGlTX7PZjPz8fGzbtg3Tpk0DAPTv3x8ajQZ1dXWn3M9tt92G559/HjfeeCO2bt2KxYsXN+uzdetWaLVanHPOOe0/GCI6LRxUTURxkZqaimeeeQavvvoq3nrrLUiSFFq3a9cuPP/88wAC44Euuugi3HHHHRGDjbdu3Yr7778fv/rVrzB58uQuqXnmzJn4+uuvQ8smkwm33347/vSnP+Hnn38OtW/btg1LliyJ2PbXv/41rFYrbrnlFgwdOhQTJkxotv/Vq1dj+vTpUcdLEVHn4hkiIoqb++67D2lpaXjqqacwZ84c9OvXD6WlpcjJycHTTz8NABBFEf/85z/xyCOPYMyYMcjJyYHf78eJEydwzz33YMGCBV1W79133428vDyUlJSELvm99NJLAIBx48ahX79+qK+vR9++ffHKK69EbNunTx9ceeWVWL58OV588cVm+/Z6vXj//ffx9ttvd/6BEFEzgizLcryLICI6duwYampqkJubC4vFErWPy+XC4cOHIQgCBg0aFDHAGQDq6+uxd+9eDB8+vNm3zHbt2gWLxRIabL1nzx6YTCbk5ua2q85HH30UNput2Vip+vp6FBUVISsrC7169Yq67YkTJ1BSUoKhQ4c2Owv02muvYcWKFfjqq6/aVQ8RxQYDERFROzidTuzfv/+UtwtorwMHDiAtLQ3p6ekx3S8RtQ0DERERESkeB1UTERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeL9f1ev3WYNtjJgAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Get static plots for detected relevant bonds\n", "describe.plot_cohps(ylim=[-10, 2], xlim=[-4, 4])" @@ -151,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "b2b1f822", "metadata": { "ExecuteTime": { @@ -162,7 +183,3936 @@ "remove-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Get interactive plots of relevant bonds, \n", "\n", @@ -183,7 +4133,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "0dff40f8", "metadata": { "ExecuteTime": { @@ -191,7 +4141,33 @@ "start_time": "2025-01-10T10:18:13.157983Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'formula': 'CdF2',\n", + " 'max_considered_bond_length': 5.98538,\n", + " 'limit_icohp': (-inf, -0.1),\n", + " 'number_of_considered_ions': 1,\n", + " 'sites': {0: {'env': 'C:8',\n", + " 'bonds': {'F': {'ICOHP_mean': '-0.62',\n", + " 'ICOHP_sum': '-4.97',\n", + " 'has_antibdg_states_below_Efermi': True,\n", + " 'number_of_bonds': 8,\n", + " 'bonding': {'integral': np.float64(7.89), 'perc': np.float64(0.73056)},\n", + " 'antibonding': {'integral': np.float64(2.91),\n", + " 'perc': np.float64(0.26944)}}},\n", + " 'ion': 'Cd',\n", + " 'charge': 1.57,\n", + " 'relevant_bonds': ['40', '33', '63', '30', '60', '53', '29', '64']}},\n", + " 'type_charges': 'Mulliken'}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Dict summarizing the automatic analysis results\n", "analyse.condensed_bonding_analysis" @@ -199,7 +4175,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "f243f239", "metadata": { "ExecuteTime": { @@ -207,7 +4183,18 @@ "start_time": "2025-01-10T10:18:14.144514Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'Cd-F': {'ICOHP_mean': -0.62125, 'has_antbdg': True}}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Dict with bonds identified\n", "analyse.final_dict_bonds" @@ -215,7 +4202,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "0e9cd6e6", "metadata": { "ExecuteTime": { @@ -223,7 +4210,18 @@ "start_time": "2025-01-10T10:18:14.811460Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'Cd': {'C:8': 1}}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Dict with ions and their co-ordination environments\n", "analyse.final_dict_ions" @@ -239,11 +4237,11 @@ ":::\n", "\n", "```python\n", - "analyse = Analysis(\n", - " path_to_poscar=directory / \"CONTCAR.gz\",\n", - " path_to_icohplist=directory / \"ICOBILIST.lobster.gz\",\n", - " path_to_cohpcar=directory / \"COBICAR.lobster.gz\",\n", - " path_to_charge=directory / \"CHARGE.lobster.gz\",\n", + "analyse = Analysis.from_files(\n", + " structure_path=directory / \"CONTCAR.gz\",\n", + " icoxxlist_path=directory / \"ICOBILIST.lobster.gz\",\n", + " coxxcar_path=directory / \"COBICAR.lobster.gz\",\n", + " charge_path=directory / \"CHARGE.lobster.gz\",\n", " which_bonds=\"cation-anion\",\n", " are_cobis=True,\n", " noise_cutoff=0.001,\n", @@ -271,7 +4269,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "77f40ef2", "metadata": { "ExecuteTime": { @@ -281,11 +4279,11 @@ }, "outputs": [], "source": [ - "analyse = Analysis(\n", - " path_to_poscar=directory / \"CONTCAR.gz\",\n", - " path_to_icohplist=directory / \"ICOHPLIST.lobster.gz\",\n", - " path_to_cohpcar=directory / \"COHPCAR.lobster.gz\",\n", - " path_to_charge=directory / \"CHARGE.lobster.gz\",\n", + "analyse = Analysis.from_files(\n", + " structure_path=directory / \"CONTCAR.gz\",\n", + " icoxxlist_path=directory / \"ICOHPLIST.lobster.gz\",\n", + " coxxcar_path=directory / \"COHPCAR.lobster.gz\",\n", + " charge_path=directory / \"CHARGE.lobster.gz\",\n", " which_bonds=\"cation-anion\",\n", " orbital_resolved=True,\n", " orbital_cutoff=0.03,\n", @@ -294,7 +4292,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "861da67a", "metadata": { "ExecuteTime": { @@ -302,7 +4300,83 @@ "start_time": "2025-01-10T10:18:21.708670Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'formula': 'CdF2',\n", + " 'max_considered_bond_length': 5.98538,\n", + " 'limit_icohp': (-inf, -0.1),\n", + " 'number_of_considered_ions': 1,\n", + " 'sites': {0: {'env': 'C:8',\n", + " 'bonds': {'F': {'ICOHP_mean': '-0.62',\n", + " 'ICOHP_sum': '-4.97',\n", + " 'has_antibdg_states_below_Efermi': True,\n", + " 'number_of_bonds': 8,\n", + " 'bonding': {'integral': np.float64(7.89), 'perc': np.float64(0.73056)},\n", + " 'antibonding': {'integral': np.float64(2.91),\n", + " 'perc': np.float64(0.26944)},\n", + " 'orbital_data': {'2s-5s': {'ICOHP_mean': np.float64(-0.2775),\n", + " 'ICOHP_sum': np.float64(-2.2202),\n", + " 'orb_contribution_perc_bonding': np.float64(0.31),\n", + " 'bonding': {'integral': np.float64(2.8), 'perc': np.float64(0.8284)},\n", + " 'relevant_sub_orbitals': ['2s-5s'],\n", + " 'orb_contribution_perc_antibonding': np.float64(0.14),\n", + " 'antibonding': {'integral': np.float64(0.58),\n", + " 'perc': np.float64(0.1716)}},\n", + " '2p-5s': {'ICOHP_mean': np.float64(-0.1147),\n", + " 'ICOHP_sum': np.float64(-2.7518),\n", + " 'orb_contribution_perc_bonding': np.float64(0.3),\n", + " 'bonding': {'integral': np.float64(2.75), 'perc': np.float64(1.0)},\n", + " 'relevant_sub_orbitals': ['2py-5s', '2pz-5s', '2px-5s']},\n", + " '2s-4d': {'ICOHP_mean': np.float64(0.0003),\n", + " 'ICOHP_sum': np.float64(0.0106),\n", + " 'orb_contribution_perc_bonding': np.float64(0.04),\n", + " 'bonding': {'integral': np.float64(0.38), 'perc': np.float64(0.49351)},\n", + " 'relevant_sub_orbitals': ['2s-4dxy',\n", + " '2s-4dyz',\n", + " '2s-4dz2',\n", + " '2s-4dxz',\n", + " '2s-4dx2'],\n", + " 'orb_contribution_perc_antibonding': np.float64(0.09),\n", + " 'antibonding': {'integral': np.float64(0.39),\n", + " 'perc': np.float64(0.50649)}},\n", + " '2p-4d': {'ICOHP_mean': np.float64(-0.0001),\n", + " 'ICOHP_sum': np.float64(-0.012),\n", + " 'orb_contribution_perc_bonding': np.float64(0.35),\n", + " 'bonding': {'integral': np.float64(3.2), 'perc': np.float64(0.50157)},\n", + " 'relevant_sub_orbitals': ['2py-4dxy',\n", + " '2pz-4dxy',\n", + " '2px-4dxy',\n", + " '2py-4dyz',\n", + " '2pz-4dyz',\n", + " '2px-4dyz',\n", + " '2py-4dz2',\n", + " '2pz-4dz2',\n", + " '2px-4dz2',\n", + " '2py-4dxz',\n", + " '2pz-4dxz',\n", + " '2px-4dxz',\n", + " '2py-4dx2',\n", + " '2pz-4dx2',\n", + " '2px-4dx2'],\n", + " 'orb_contribution_perc_antibonding': np.float64(0.77),\n", + " 'antibonding': {'integral': np.float64(3.18),\n", + " 'perc': np.float64(0.49843)}},\n", + " 'relevant_bonds': ['40', '33', '63', '30', '60', '53', '29', '64'],\n", + " 'orbital_summary_stats': {'max_bonding_contribution': {'2p-4d': np.float64(0.35)},\n", + " 'max_antibonding_contribution': {'2p-4d': np.float64(0.77)}}}}},\n", + " 'ion': 'Cd',\n", + " 'charge': 1.57,\n", + " 'relevant_bonds': ['40', '33', '63', '30', '60', '53', '29', '64']}},\n", + " 'type_charges': 'Mulliken'}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Access the dict summarizing the results including orbital-wise analysis data \n", "analyse.condensed_bonding_analysis" @@ -328,7 +4402,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "17190525", "metadata": { "ExecuteTime": { @@ -336,7 +4410,17 @@ "start_time": "2025-01-10T10:18:23.541339Z" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The compound CdF2 has 1 symmetry-independent cation(s) with relevant cation-anion interactions: Cd1.\n", + "Cd1 has a cubic (CN=8) coordination environment. It has 8 Cd-F (mean ICOHP: -0.62 eV, 26.944 percent antibonding interaction below EFermi) bonds.\n", + "In the 8 Cd-F bonds, relative to the summed ICOHPs, the maximum bonding contribution is from the Cd(4d)-F(2p) orbital, contributing 35.0 percent, whereas the maximum antibonding contribution is from the Cd(4d)-F(2p) orbital, contributing 77.0 percent.\n" + ] + } + ], "source": [ "# Initialize the Description object\n", "describe = Description(analysis_object=analyse)\n", @@ -345,7 +4429,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "84f26141", "metadata": { "ExecuteTime": { @@ -356,7 +4440,3936 @@ "remove-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Automatic interactive plots\n", "fig = describe.plot_interactive_cohps(orbital_resolved=True, ylim=[-15,5], hide=True)\n", @@ -389,7 +8402,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "051a9998", "metadata": { "ExecuteTime": { @@ -419,7 +8432,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "f67b4bc6", "metadata": { "ExecuteTime": { @@ -427,29 +8440,51 @@ "start_time": "2025-01-10T10:18:27.763103Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'minimal_basis': True,\n", + " 'charge_spilling': {'abs_charge_spilling': 0.83, 'abs_total_spilling': 6.36},\n", + " 'band_overlaps_analysis': {'file_exists': True,\n", + " 'limit_maxDeviation': 0.1,\n", + " 'has_good_quality_maxDeviation': True,\n", + " 'max_deviation': 0.0583,\n", + " 'percent_kpoints_abv_limit': 0.0},\n", + " 'charge_comparisons': {'bva_mulliken_agree': True, 'bva_loewdin_agree': True},\n", + " 'dos_comparisons': {'tanimoto_orb_s': np.float64(0.8532),\n", + " 'tanimoto_orb_p': np.float64(0.9481),\n", + " 'tanimoto_summed': np.float64(0.9275),\n", + " 'e_range': [-20, 0],\n", + " 'n_bins': 256}}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Get calculation quality summary dict\n", - "calc_quality_K3Sb = Analysis.get_lobster_calc_quality_summary(\n", - " path_to_poscar=directory / \"CONTCAR.gz\",\n", - " path_to_charge=directory / \"CHARGE.lobster.gz\",\n", - " path_to_lobsterin=directory / \"lobsterin.gz\",\n", - " path_to_lobsterout=directory / \"lobsterout.gz\",\n", + "calc_quality_K3Sb_obj = LobsterCalcQuality.from_files(\n", + " poscar=directory / \"CONTCAR.gz\",\n", + " charge=directory / \"CHARGE.lobster.gz\",\n", + " lobsterin=directory / \"lobsterin.gz\",\n", + " lobsterout=directory / \"lobsterout.gz\",\n", " potcar_symbols=[\"K_sv\", \"Sb\"], # if POTCAR exists, then provide path_to_potcar and set this to None \n", - " path_to_bandoverlaps=directory / \"bandOverlaps.lobster.gz\",\n", - " dos_comparison=True, # set to false to disable DOS comparisons \n", - " bva_comp=True, # set to false to disable LOBSTER charge classification comparisons with BVA method\n", - " path_to_doscar=directory / \"DOSCAR.LSO.lobster.gz\",\n", - " e_range=[-20, 0],\n", - " path_to_vasprun=directory / \"vasprun.xml.gz\",\n", - " n_bins=256,\n", + " bandoverlaps=directory / \"bandOverlaps.lobster.gz\",\n", + " doscar=directory / \"DOSCAR.LSO.lobster.gz\",\n", + " vasprun=directory / \"vasprun.xml.gz\",\n", " )\n", - "calc_quality_K3Sb" + "\n", + "calc_quality_K3Sb_dict = calc_quality_K3Sb_obj.get_calculation_quality_summary(dos_comparison=True, bva_comp=True, e_range=[-20, 0], n_bins=256)\n", + "\n", + "calc_quality_K3Sb_dict" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "0f11cac6", "metadata": { "ExecuteTime": { @@ -457,13 +8492,21 @@ "start_time": "2025-01-10T10:18:31.531979Z" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The LOBSTER calculation used minimal basis. The absolute and total charge spilling for the calculation is 0.83 and 6.36 %, respectively. The bandOverlaps.lobster file is generated during the LOBSTER run. This indicates that the projected wave function is not completely orthonormalized; however, the maximal deviation values observed compared to the identity matrix is below the threshold of 0.1. The atomic charge signs from Mulliken population analysis agree with the bond valence analysis. The atomic charge signs from Loewdin population analysis agree with the bond valence analysis. The Tanimoto index from DOS comparisons in the energy range between -20, 0 eV for s, p, summed orbitals are: 0.8532, 0.9481, 0.9275.\n" + ] + } + ], "source": [ "# Get a text description from calculation quality summary dictionary\n", - "calc_quality_k3sb_des = Description.get_calc_quality_description(\n", - " calc_quality_K3Sb\n", + "calc_quality_k3sb_des = calc_quality_K3Sb_obj.describe(\n", + " calc_quality_K3Sb_dict\n", " )\n", - "Description.write_calc_quality_description(calc_quality_k3sb_des)" + "calc_quality_K3Sb_obj.print_description(calc_quality_k3sb_des)" ] }, { @@ -476,7 +8519,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "f6687ef3", "metadata": { "ExecuteTime": { @@ -512,7 +8555,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "5eca8c7c", "metadata": { "ExecuteTime": { @@ -520,7 +8563,18 @@ "start_time": "2025-01-10T10:18:35.341151Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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Jzc3V5MnT9b06dN19tln68wzz5TH44llWQAAAAAAAN1CTIKa5cuXa8GCBXrhhRdUWlrarnMrKyv19ttv6+2339avfvUrpaen6/Of/7yuv/56fe5zn5PTGfdBPwAAAIgB5/ARCm7cFGkbQ4cmsBoAALqnDq9REwgE9MQTT2jSpEmaPn26Hn744XaHNEdTX1+v559/Xl/4whc0aNAg/fKXv1RlZWWnrwsAAID4cuT3imqbeXkJqgQAgO6r3cNVQqGQHn/8cd19990qLi4+4fF5eXnq37+/srOzlZqaKtM01djYqLq6Ou3bt09lZWWyLOuo5+7fv18//vGP9ctf/lI33XSTfvjDHyonJ6e9JQMAAAAAAHQL7QpqXn31Vd1yyy3avHnzUd8fOHCgzj77bJ1xxhmaOHGixo0bp/T09ONeMxAIaPPmzVq9erU+/vhjvfPOO1q3bp1s244cU19fr1/96lf64x//qJ/85Ce66aabmBIFAAAAAABOOm1KO/bv36/58+dr0aJFR7w3atQoXXnllbriiis0duzYdhfgcrk0btw4jRs3TldffbUk6cCBA3rxxRf13HPP6f3334+ENpWVlbr55pv1+OOP689//rM+85nPtPt+AAAAAAAAyapNa9S88cYbUSGN0+nUV7/6Vb333nvauHGjfv7zn3copDmWwsJCzZ8/X++++662bNmiH/zgB8rNzY28v3btWj3yyCMxux8AAAAAAEAyaNdiwh6PR9/85je1detWPf3005o1a1a86ooYPny4/ud//ke7d+/W/fffr969e8f9ngAAAAAAAInQpqDGNE1dddVV2rx5sx5++GEVFRXFuawjZWZm6rbbbtP27dv105/+VBkZGV1eAwAAAI7Nt2xZVDv0yScJqgQAgO7LsFuu2nsMoVBIDoejK+pps2SsCd1bTU2NsrOzVV1draysrESXAwBAt1N63vkKbtwUaZvDhqrv++8lsCIAAJJDe37fbNOImmQMRJKxJgAAAAAAgM5o1xo1AAAAAAAAiJ82BzW7du1SaWlpPGsBAAAAAADo0doc1Lz77rsaMGCAvvCFL+jFF1+U3++PZ10AAAAAAAA9TrumPgWDQb3yyiu67LLL1K9fP333u9/VypUr41UbAAAAAABAj9LhNWrKy8v1+9//XlOmTNHEiRP1u9/9TgcPHoxlbQAAAAAAAD1Km4Oa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AADERk/+TrWqq1X/1yfkX7EiPBqnslJWVfg5mbc5d40fr6zbfqCUc85OdCkAcFJqz3djh4OaPXv26IknntDChQu1devW4x7rdrv1hS98QXPnztXnP/95ORyOjtwSMXDvvfeqtra2w+d/5Stf0aRJk2JX0HFUV1frF7/4hf70pz+ppqbmqMf07dtX3//+9/W9731PLperU/fryT9UAgAQS3ynHsmyLFmlpQrt3q1gSYlC+/bLKitV6OAhWRUVsqqqZdc2LaTc2BjeaSoUOrwDVRcw0tJUuHqlzLS0LrsnAPQUcQtq6uvr9cILL2jhwoV65513dKJTJ0+erHnz5umqq65Sr1692nobxFFhYaFKS9s4XPYonnjiCV1zzTUxrOjoVqxYoUsuuUR79+5t0/FTpkzR4sWLNWDAgA7fkx8qAQCIDb5TY8cKBmXtLQmvidPQGBmdY1VWyiovV7CkRL533wuvm+PzhbcU74TMW2+R5/TT5Ro7RmZGRow+BQAgLrs+vfHGG7r88stVV1d33ON69+6tq666SvPmzdOECRPaenkgYt26dTr33HNVVVUV6XM6nZozZ47GjBkjv9+vVatW6e23346EhStWrNA555yjpUuXKj8/P0GVAwAAxJbpdMosavuaOVYwqNDOnQpu2arAzh0K7S5W6MB++d5+p03n1/7vA6rVA003N2V4PDIyM2X26qWUs8+Sa8xoeU4/XY4+fTrwaQAAbdHmoGb//v3HDGlcLpcuvPBCzZ07V3PmzOn0FBR0jaysLN1xxx3tOmfy5MlxqibM5/Pp8ssvjwppTj31VD3//PMa3Gphv1WrVunSSy/V7t27JUlbt27VvHnz9PLLL8e1RgAAgGRlOp0yR4yQa8QIpbboL//mt+R96aX2XcyywtOwGhtllZWpbuPGcL/brbyHHlTqhZ+PWd0AgMM6tevThAkTNHfuXF1zzTUqKCiIVU3oIpmZmbr99tsTXUaURx55RJs3b460TznlFL399tvKzMw84thJkyZpyZIlmjBhQiTYeeWVV/T222/rnHPO6aqSAQAAkl7ur36p0qVLZR061PmL+f2qe/SPBDUAECftDmp69eqlr371q5o3b56mTJkSj5rQQ9XX1+u+++6L6nv00UePGtI0GzhwoO6//37deOONkb4f//jH+s9//hO3OgEAALobMztbfVevVHDXLvnX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3v14+fKl5Nrnz5/neG1CQoJO8xtDYXzeiIiIiMj4WKghIjJDZcqUwYYNGxAeHo6FCxeic+fO8PDwyPZae3t7tGjRApMmTcLVq1dx9epV9O3bFzKZLM95/Pz8cOHCBaxduxYtW7aEXC79seDh4YGRI0fi2rVrmD17tkZjFmV83oiIiIgov2SCIAimToLIHCQmJsLZ2RkJCQlwcnLSy5gpKSl4+PAhypUrB1tbW72MSUWbUqnE8+fPkZycDDs7O7i5ucHFxUVvb8TT0tLw9OlTpKamwtPTEw4ODlmuef78uXjbDQCUL18+z9dMfHw8Hj16lO/8NJnr8ePHiI2NFWNnZ2eUK1cu33PnR0F93nT18uVLREZGirGTkxPKly9vkLk0we/FxvOs/XvIuHNXjOXly6PU2SATZkRERGQetHm/yT1qiIgKEEdHRzg6OhpsfGtra5QpUybXa4oXL47ixYtrNa6Liwtq1aqVj8w0V7p0aZQuXdooc2mqoD5vuipWrBiKFStmlLmIiIiIChve+kREREREREREZCZYqCEiIiIivbAsW1YSy8qY1+o2IiKigoCFGiIiIiLSC4uSJSWx3Ei32xERERUmLNQQEREREREREZkJFmqIiIiIiIiIiMwECzVERERERERERGaChRoiIiIiIiIiIjPBQg0RERERERERkZlgoYaIiIiI9CLtyhVJnPnPddMkQkREVICxUENEREREeiFkZEgb1GMiIiLKEws1RERERERERERmgoUaIiIiIiIiIiIzwUINEREREREREZGZYKGGiIiIiIiIiMhMsFBDRERERERERGQmWKghIiIiIiIiIjITLNQQEREREREREZkJFmqIjEAQBFOnQERUZPF7MBERERUkLNQQGZBc/uYlplKpTJwJEVHR9fZ78NvvyURERETmjL+xEBmQpaUlACAtLc3EmRARFV1vvwe//Z5MREREZM5YqCEyILlcDoVCAaVSaepUiIiKLKVSCYVCwRU1REREVCDwNxYiA3N0dERSUhIyMjJMnQoRUZGTkZGBpKQkODo6mjoVIiIiIo2wUENkYI6OjpDJZHj69Cn3qiEiMiKVSoWnT59CJpOxUENEREQFBgs1RAZmaWkJHx8fJCUlISoqiitriIiMICMjA1FRUUhKSoKPjw/3pzESCy9vSSzz9DRRJkRERAUXf2shMgKFQgEfHx9ERETg/v37UCgUcHR0hLW1NeRyOWQymalTJCIq0ARBgEqlQlpaGpRKJZKSkiCTyeDj4wOFQmHq9IoMSx9vpL4Ty71YqCEiItIWCzVERqJQKODn5welUgmlUono6GhTp0REVCgpFAqULFkSjo6OXElDREREBQ5/eyEyIktLS7i6usLV1RUqlQoZGRnct4aISE/kcjksLS15uhMREREVaCzUEJmIXC6HtbW1qdMgIiIiIiIiM8I/ORERERERERERmQmuqKECISkpCffu3UNMTAzkcjlKlCiBihUrckUKERERERERFSos1Jip1NRUPHz4EOHh4UhPTxfbvb29UatWLZ3HPX78OFJSUnTuX7t2bXh5eencX1v79u3D4sWLERQUlOVYa3t7e3Tq1AlffvklmjRpYrSciIiIKHtpN25I4szbwSbKhIiIqOBiocYMHDp0CDdu3EBYWJj4ERkZCUEQslzbr18/bNq0See5+vfvj2fPnuncf+PGjejfv7/O/TUVGxuLfv364ciRIzle8/r1a+zatQu7du3C8OHDsXDhQq6wISIiMiEhOVnakJKc/YVERESUIxZqzMDXX3+N4GD+xemt2NhYtGzZErdv35a0Fy9eHJUqVUJaWhpCQkKQkJAgPrZixQpERERg7969PIqViIiIiIiICiy+ozVTNjY2KFu2LDIzMxEaGmqQOWxtbdG2bVut+nh7exskl3f169dPUqRxd3fH0qVL0atXL/HI1ZSUFKxZswbjxo0Tb+U6ePAgvvnmG8yZM8fgORIREREREREZAgs1ZqBLly4ICAiAr68vypcvD19fX3h7e0Mul2PevHkYP368QeZ1d3fHH3/8YZCxdbV3717J7U4uLi44d+4cKleuLLnO1tYWI0eORJUqVfDee++J+9f88ssvCAwMRKVKlYyaNxEREREREZE+sFBjBn766SdTp2AWVCoVvvvuO0nbnDlzshRp3tW6dWuMHTsWc+fOBQBkZmZi6tSp2LZtm0FzJSIiIiIiIjIEuakTIHrrxIkTkluevL29ERgYmGe/iRMnwsbGRoy3b9+Op0+fGiRHIiIiIiIiIkNioYbMxr59+yTx4MGDxT1pcuPm5oZu3bqJsSAI2L9/v97zIyIiIiIiIjI0FmrIbKgXV9577z2N+6pfq170ISIiIiIiIioIWKghs/D06VNERESIsaWlJerVq6dx/yZNmkjiS5cu6S03IiIiIiIiImNhoYbMwt27dyWxr68v7OzsNO5fqVIlWFlZiXFMTAxevHiht/yIiIiIiIiIjIGnPhGioqIQERGBhIQEODk5wc3NDeXKlYO1tbXRclAv1Pj4+GjVXy6Xw9PTE+Hh4WJbSEgIPDw89JIfERERERERkTGwUFOEvXjxAl5eXnjy5EmWx2xtbdGgQQP07NkTgYGBcHBwMGguUVFRkljbQg3w5pSodws1kZGR+c6LiIiIiIiIyJh461MRlpaWlm2RBgBSUlJw5swZjBkzBt7e3li1apVBc3n16pUk1qUw5OjomOuYREREREREROaOK2qKOAcHB1SqVAlubm5ISUlBdHQ0QkNDIQiCeE1CQgKGDRuGoKAgbNiwQaMjs7WlXlTRZn+at2xtbXMdk4iIiIiIiMjcsVBTBBUrVgyDBg1C3759UbNmTVhYWEgej42NxZYtW/DTTz9Jbh/avHkznJycsGzZMr3n9Pr1a0lsY2Oj9RjqxZ2kpKRcr09NTUVqaqoYJyQkAAASExO1npuIiIiA126uSFWpxNjCxZU/V4mIiPDf+8x3F0XkhIWaImby5MkYPHhwrrcWubm5YdSoUejfvz/69u2Lw4cPi48tX74cPXv2RLt27fSa17snNgFARkaG1mOkp6dL4rw2Q541axamT5+epV2X/XGIiIgoGwf2Ac7Ops6CiIjIbCiVSjjn8bOxyBZqDh06BNU7f/ExlAYNGqB48eIGn0dTo0aN0vhaFxcX7Nq1C82bN8fVq1fF9kmTJum9UKNeOEpJSdF6DPU+ee1zM2nSJHz55ZdirFKpEBsbC3d3d8hkMq3nLwgSExPh4+ODiIgIODk5mTodogKBrxsi7fF1Q6QdvmaItFfQXjeCIECpVMLT0zPPa4tsoSYgIACZmZkGn+fAgQN4//33DT6PodjZ2WHx4sVo0qSJ2HblyhU8evQIZcuW1ds8CoVCEicnJ2s9hnqfvAo1NjY2WW6xcnFx0XregsjJyalAfDMjMid83RBpj68bIu3wNUOkvYL0uslrJc1bPPWJ8tS4cWP4+flJ2o4fP67XOdzc3CTxs2fPtB4jOjo61zGJiIiIiIiIzF2RXVHTpUsXo6yoKVGihMHnMIZGjRohNDRUjCMiIvQ6fqVKlSTx48ePtR5DPaeKFSvmKyciIiIiIiIiYyuyhZp9+/aZOoUCxcPDQxK/fPlSr+P7+/tL4gcPHmjVPyYmRnKqhLW1NcqXL6+X3AoTGxsbTJ06VadTtYiKKr5uiLTH1w2RdviaIdJeYX7d8NYn0sirV68ksfqeMvlVoUIFyQssLi4O9+/f17j/xYsXJXHlypVhaVlk65A5srGxwbRp0wrlNzMiQ+Hrhkh7fN0QaYevGSLtFebXDQs1pJF3b3sC9H9Ll5WVFdq2bStpO3v2rMb9z507J4k7deqkl7yIiIiIiIiIjImFGspTXFwc/vrrL0lb3bp19T5Pt27dJPHmzZs16icIArZu3ZrrWEREREREREQFAe8NoTzNmDEDaWlpYuzk5ISmTZvqfZ4ePXpg7NixeP36NQDg1KlTCA4ORtWqVXPtd+DAAYSHh4uxr68vGjZsqPf8iIg0kZmZiZCQENy4cQMPHz5EXFwcLCws4ObmhrJly6Jp06bw9vY2dZpEenf9+nVcvHgR4eHhSE5OhpOTEypUqIBWrVrBx8fH1OkRmY2EhARcv34dt27dwvPnz6FUKuHk5AR3d3fUqlUL9evXh52dnanTJCITYqGmiHj16hXkcjns7e216rdjxw7Mnz9f0jZ69GhYWVnl2ffIkSPIyMgQ41q1auX65sTDwwOjRo3CnDlzALxZKTN8+HAEBQVBLs9+8derV6/wxRdfSNqmT5+e4/WkP48fP0azZs3EwtpbM2bMwKeffmqirIhMIzExEbt378bBgwdx4sQJxMXF5Xp9rVq1MGbMGPTv3x8WFhZGypLIMLZt24bp06cjJCQkx2vat2+P2bNno06dOkbMjMh83L59G9u3b8fRo0dx5coVqFSqHK+1sbFBnz59MG7cOFSvXt2IWRIVPMuWLcOUKVOytP/7779wc3MzQUZ6IpBZmzt3rgBA/OjXr59O41y+fFkoVqyYMG3aNCE0NDTP6+Pj44UJEyYIcrlcMn+ZMmUEpVKp0ZwKhULSd926dXn2iYmJEdzd3SX9evXqJSQnJ2d7bdOmTSXX1qpVS8jMzNQoP8qf9u3bS772bz/mz59v6tSIjGrChAmCra1ttq+HvD4aN24sPHjwwNSfApFOUlJShN69e2v8/93CwkJYsGCBqdMmMqqoqCihRo0aOv2MsLS0FL7//nv+bkuUg7CwsCzvOd9+vHjxwtTp5QtX1JiB7PaAeevu3buSOCoqCn/88Ue219aoUQOlS5fOcZ6XL19i2rRpmDZtGqpVq4Z69eqhWrVq8PDwgJOTE1JSUhAdHY2LFy/i0KFDUCqVkv4eHh44evQoHBwctPwMNefm5oaNGzeia9euyMzMBPBmVc+5c+cwdOhQVKlSBenp6bh+/TrWrVuHhIQEsa+Liwu2bt3K1TRG8Ouvv+LYsWOmToPILFy8eBEpKSmSNltbWzRt2hTVqlVDqVKlAACPHj3Cn3/+iQcPHojXXbhwAU2bNsX58+dRtmxZY6ZNlC+CIKB3797Yv3+/pL1u3bpo06YNPDw88PjxY+zduxeRkZEA3twWOGbMGMhkMowePdoUaRMZXWxsLG7evJml3dvbGy1btkTp0qVRrFgxJCYm4p9//sGxY8eQnJwMAMjIyMCUKVMQERGBX3/91dipE5k1QRAwdOhQJCUlmToVwzB1pYgE4ezZszpV2dU/li9fnuMcly9fztfYzZo102glzrt0WVHz1vbt27X6C3Xx4sWFixcvapUf6SY8PFxwdHQUv/Y2NjZcUUNFWsuWLcX//23atBF27dqV7SpAQRCEzMxMYe3atVm+P1apUkVIT083cuZEups3b57k/7Ctra2wbdu2LNelpaUJEydOzLJK4PLlyybImsj4bt26Jf7fd3Z2Fr744gvh9u3bOV7/9OlT4cMPP8zyu+7ChQuNmDWR+Vu0aFGO70dQCFbUcOlBEeHs7IwqVarA0lK7RVSNGzfGxo0bERQUBF9fXwNll1WvXr1w9epVvPfee7leZ2lpif79++P69evcQNhIAgMDxdVW9evXR/v27U2cEZHptW/fHtevX8eJEyfQs2dP2NraZnudXC7HkCFDcOTIEVhbW4vtd+7cwbJly4yVLlG+xMXF4YcffpC0bd68GX369MlyrZWVFWbNmoUxY8aIbRkZGZg4caKh0yQyGw4ODpg2bRqioqKwYMGCXA/KKFmyJHbs2IFBgwZJ2qdOnYrY2FhDp0pUIISFhUl+jnz77bcmzMYwZIIgCKZOoqi7c+cOvv7663yPM3LkSHTq1CnXa1JTUxEcHIybN2/i8ePHiI+PFz8sLS3h4uICDw8P1K5dGw0bNszXKQ29evUSl24CwNixY9G2bVutx/n3339x+PBh3L59GzExMZDJZChRogRq166NLl26wNPTU+ccSTsrV67E8OHDAbwpkl25cgVTp07Fvn37xGvmz58v+YWcqLC7e/cu/P39te43adIkzJ49W4yrV6+e7fJ4InPzzTffYNasWWLcvXt37NmzJ9c+r1+/hr+/Px4/fiy2nTx5Eq1btzZYnkTmID4+HikpKShZsqRW/ZKSkuDn54fo6GixbeXKlRg2bJi+UyQqUARBQKtWrXDmzBkAQL169XD8+HG4uLhIrnvx4gWKFStmggz1g4UaItJIeHg4qlevLq6mmTRpEmbOnInu3buzUEOkg0ePHqFcuXKStqioKBafyawJggAvLy88ffpUbDtz5gyaN2+eZ98ZM2Zg8uTJYjxgwABs2LDBIHkSFQbjxo3Dzz//LMY9evTA7t27TZgRkektWrRIPPX37R+OfX194ejoKLmuoBdqeOsTEeVJEATJLU8VKlTI9hg8ItJc2bJls/wC8ejRI9MkQ6ShS5cuSYo0ZcuW1ahIAwADBw6UxAcPHkRGRoZe8yMqTOrXry+J+TOCirqwsDBMmjRJjMeNG4eaNWuaMCPDYaGGiPK0cuVKnDhxQox//fXXHPfgICLNKRQKSRwTE2OiTIg0c/DgQUncokULjfv6+PhITjeLjY3FhQsX9JUaUaHDnxFE/xEEAUOGDMHr168BAH5+fpg6daqJszIcFmqIKFfh4eEYP368GAcGBqJVq1amS4iokFCpVHjy5ImkTf3+aiJzc+PGDUncqFEjrfo3adIk1/GI6D9vj7Z/iz8jqChbtGgRzp49K8aF/Q/HLNQQUY4EQcDQoUPx6tUrAECJEiUwd+5cE2dFVDicP38e6enpkrbSpUubKBsizYSEhEjiChUqaNXfz88v1/GI6D+nT5+WxPwZQUVVaGgovvnmGzEODAws9JvRs1BDRDlasWIFTp48KcaLFy+Gq6urCTMiKjzWr18viStUqIAyZcqYKBuivKWnp+PBgweSNm3fOKqfJslCDVH24uLisH//fklb+/btTZQNkemoVCrJLU9F5Q/HLNQQUbYePXokOTa+a9eu6NWrlwkzIio87t+/n6VQw9cXmbu4uLgsm/+WKlVKqzHUTzV7+fJlvvMiKoxmzpyJ5ORkMba0tESPHj1MmBGRaSxatAjnzp2TxEXhD8cs1BBRFuq3PDk6OmLZsmUmzoqocFCpVBg2bJjktidHR0eMHj3ahFkR5e3tz4R32dvbazWGnZ1dnmMSFXXXrl3DggULJG0DBgzIsiKNqLC7f/++5Janrl27onfv3ibMyHhYqCGiLJYvX45Tp06J8axZs+Dt7W3CjIgKj9mzZ2fZd2Dq1KkoUaKEaRIi0lBSUpIktrS0hIWFhVZjsFBDlDulUomPP/5YsnrN1dUVM2fONGFWRManUqkwdOhQcWVZUfvDMQs1RCTx8OFDyS1PjRs3xogRI0yYEVHhcezYMUyZMkXS1rRpU4wZM8Y0CRFpISUlRRJbW1trPYZ6H/UxiYoyQRAwePBg/Pvvv5L2xYsXo2TJkibKisg0Fi5cKLnlqaj94ZiFGiISCYKAwMBA8a+m1tbWWL16NeRyfqsgyq87d+6gd+/eyMzMFNs8PDywdetWrVclEJmC+mqY1NRUrcdQ76M+JlFR9u2332L37t2Stk8++QT9+vUzUUZEpnH//n18++23YlwU/3BsaeoEiAh4+vQpqlevbpS5zp07h8qVK2f72LJlyyS3PE2cOBFVqlQxSl5E2tqxYweCgoIMPk+1atUwfPjwfI3x5MkTdOrUCfHx8WKbQqHAwYMHuecAFRgODg6SODMzExkZGbC01PzXyXc3R81uTKKiasWKFZg1a5akrUOHDkXqVg8i4L9Tnt7+vLC2tsaqVauK3B+OWaghMgOZmZmIiYkxylzqJ3a89fDhQ0yYMEGM/f39JZVsInMTFBSEpUuXGnyeLl265KtQEx8fjw4dOuDx48dim5WVFXbt2oX69evrI0Uio8iuqJKUlARnZ2eNx1Df54aFGiJg9+7dGDlypKStQYMG2LVrF6ysrEyUFZFpLFiwAH/99ZcYT5w4EVWrVjVhRqZRtMpSRJSjdevWib9Ay2Qy/PrrrzrtP0BE/0lOTkZAQABu374ttslkMqxfvx4dOnQwYWZE2nN1dc3ycyEyMlKrMaKioiQx992goi4oKAh9+/aFSqUS2ypXroxDhw5BoVCYMDMi01iyZIn478qVK0tOfSpKuKKGyAx4enrixYsXRpnL1dU12/Z3f0GQyWTo3r27RuMplUpJPHnyZPz4449iXKtWLRw/flz7RIny0Lt37xxv49OncuXK6dQvIyMDffr0wdmzZyXtixcvxscff6yP1IiMysLCAhUqVEBwcLDYFhERodVfOiMiIiSxv7+/3vIjKmj++ecfBAQESPZu8vHxwZ9//gl3d3cTZkZkOu++JwkPD4eXl5dO41SqVAkymUyMZ8yYgU8//TTf+RkLCzVEZkAul6NYsWKmTkOkUql0vhUrKSlJsrT93T05iPSpRYsWaNGihanTyJYgCPjkk09w4MABSfv333+fZXk7UUHi7+8vKdSEhISgY8eOGvcPCQmRxMYothKZo9DQUHTs2BGJiYlim4eHB44dO8a9y4j+X3Jycpa9zTQVGxubZayChLc+ERER6dm4ceOwfv16SduYMWPw3XffmSgjIv2oW7euJD5//rxW/dWvr1OnTr5zIiponjx5gvbt2+P58+dim5OTE44ePYpKlSqZMDMiMhcyQRAEUydBRKb3+vVrvH79Wut+AwcOxOHDh8X4xx9/lCwrtLKy0mqjSaKCbvbs2Zg0aZKkbfDgwVi7dq1kCS5RQRQcHIxq1aqJcYkSJRAVFaXREfN3796VnCTo6emJyMhIvi6oSImLi0OLFi0ke5fZ2dnhyJEjZrtKlMiY4uLikJmZqVWfpKQklC1bVtJ27949uLm5ibGDgwNsbW31kaJR8NYnIgIA2Nvbw97eXut+6htLKhQKs7qNi8iYVq9enaVI06NHD6xevZpvRqlQqFq1Knx9fREWFgYAePbsGQ4fPoz3338/z77r1q2TxAEBAXxdUJGSnJyMrl27Soo0VlZW2LFjB4s0RP8vp/00c5NdAcbNza1AvyfhrU9ERER6sGfPnizHeLdt2xZbt27VaLUBUUGh/v989uzZyGuB9osXL7BmzRoxlslkGDZsmEHyIzJHGRkZ6NWrl+TYYblcjvXr16NLly4mzIyIzBELNURERPl05swZ9O3bV7JUt1GjRti3bx9sbGxMmBmR/o0cORKenp5i/Ndff2HBggU5Xq9SqfDZZ59JNnbs1asXateubcg0icyGIAgIDAzEwYMHJe1Lly7lKYBElC0WaoiIiPLh5s2bCAgIQEpKithWvXp1HDp0CAqFwoSZERmGnZ0dfvrpJ0nbV199henTp2c5VSM6Ohq9e/fGzp07xTYHBwfMmDHDKLkSmYOvv/4aGzZskLTNmjUry+o0IqK3uEcNERFRPnTr1g0JCQmStooVK+p0wlPXrl3RoUMHfaVGZDD9+/fH33//jSVLlgB4s2Jg2rRpWLJkCZo0aQIPDw+Eh4fj7NmzSE1NFftZWFhgw4YN8PPzM1XqREZ18OBBzJs3T9JWrFgxREZGYtSoUVqPN3fuXNjZ2ekrPSIyUyzUEBER5cOLFy+ytO3atUunsUqWLMlCDRUYixYtgouLC2bOnAmVSgUAePnyJfbv35/t9c7OztiwYQMCAgKMmSaRSWX3M+Lly5dYunSpTuP9+OOPLNQQFQG89YmIiIiItCaTyfDDDz/g77//RkBAAKysrLK9ztnZGSNHjkRISAiLNERERBqQCXlt009ElAulUilZ1u7g4JDtEXlEhdWvv/6KtLQ0vYzVqFEj1KtXTy9jERlbYmIirly5gsePHyMlJQWOjo6oUKECateunWMRh6iwCwkJwfHjx/U23rBhw2Btba238YgKi5cvX0pid3d3yGQyE2WTfyzUEBERERERERGZCd76RERERERERERkJlioISIiIiIiIiIyEyzUEBERERERERGZCRZqiIiIiIiIiIjMBAs1RERERERERERmgoUaIiIiIiIiIiIzwUINEREREREREZGZYKGGiIiIiIiIiMhMsFBDRERERERERGQmWKghIiIiIiIiIjITLNQQEREREREREZkJFmqIiIiIiIiIiMwECzVERERERERERGbC0tQJEBEREZlSWloa/v33X4SHhyMhIQHp6elwcXGBm5sb/Pz8UKpUKb3P+fLlS9y7dw9PnjxBUlISrK2t4ebmhvLly6NChQqQyWR6n5Oyd/ToUURERAAAqlatisaNG5s4I+O6desW/v77bwCAq6srPvjgAxNnREREMkEQBFMnQURERGRM8fHx2LhxI3bt2oW///4bKSkpOV5btmxZtGjRAoMGDULr1q11LqI8evQIq1evxu7du3H37t0cr3N1dUWHDh0waNAgdOzYUae5Nm3aJPmcunXrBg8PD53GOnz4MKKiosS4WbNmqFy5co7XX7hwAcHBwbmOKZPJoFAo4OzsDG9vb1SpUgUWFhY65ZcfISEhqFGjBtLT0yGTyXD58mXUrVvXqDlkZGRg/fr1ePdX8g4dOsDHx0cv4wcHB+PChQti7OjoiD59+ohxZGQkKlasiOTkZADAiRMn0KZNG73MTUREOhKIiIiIiojXr18LU6ZMERwcHAQAWn/4+fkJW7Zs0WrO+Ph44bPPPhMsLS21nq9u3brCpUuXtP483d3dJeNcuHBB6zHeatu2rWSs5cuX53r9yJEjtf487ezshA4dOgg7d+4UMjIydM5VW61btxZz6Nevn9HmVde4cWPJ1+Orr77S29gB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8eGHH2rc/4svvkDlypUxYMAAcTWWIAga/x/Kj8GDB2dbqLG0tET//v3zPf4///wj2bdH/XYrIiIyDt76REREREVGpUqVcPz4cQQFBeHjjz+W7DmSG39/f8yePRsRERH45ZdfNCrSvFW3bl1cu3YNv//+O1q1aqXRRsBlypTBlClT8ODBA3z++ecs0uhR79694eXlJcZr167VeowOHTrgwYMHmDNnjmSz6rxYW1ujRo0aaNiwodZzAm9u4/P398/S3qlTJ5QoUUKnMd/17vH16hsoExGR8cgEQRBMnQQRERGRKaSlpeGff/7BzZs3ER4ejvj4eGRkZMDFxQVubm6oVKkSGjdurNdTb2JiYnD+/HmEhITgyZMneP36NaytreHq6gpfX1/Ur18fVapUydccY8eOhVKpFONvvvkG5cuX12msX375RXI71oABA9CyZcscr9+yZYtkk9727dujT58+Os1tKHPmzMGECRMAvDkNKiwsDGXLltV5vNDQUJw9exZRUVGIiYlBamoqnJyc4OzsDGdnZ7i7u6NKlSqoXLmyZJNpXezatQuHDx+WtA0aNEhyopUuXr9+DU9PT/FEtM8++wxLly7N15hERKQbFmqIiIiIqEh59eoVfH19xVO4xowZg/nz55s4K9NavHgxRo8eDQCwsbHB/fv34ePjY+KsiIiKJt76RERERERFioODg+RUrVWrVuHly5cmzMi00tPTMXfuXDEeOXIkizRERCbEQg0RERERFTnDhw9HhQoVALzZVPjnn382cUams3btWkRERAAA3N3d8c0335g4IyKioo23PhERERFRkXTs2DG89957AAA7Ozv8+++/8Pb2NnFWxpWUlAQ/Pz9ER0cDeLO66JNPPjFxVkRERRuP5yYiIiKiIql9+/aYOXMmwsLCAACXL18ucoWaa9euoUuXLgAAV1dXBAYGmjgjIiLiihoiIiIiIiIiIjPBPWqIiIiIiIiIiMwECzVERERERERERGaChRoiIiIiIiIiIjPBQg0RERERERERkZlgoYaIiIiIiIiIyEywUENEREREREREZCZYqCEiIiIiIiIiMhMs1BARERERERERmQkWaoiIiIiIiIiIzAQLNUREREREREREZoKFGiIiIiIiIiIiM8FCDRERERERERGRmWChhoiIiIiIiIjITLBQQ0RERERERERkJv4PK9FMnzappPsAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Using PlainCohpPlotter to get static plots of relevant bonds from Analysis object\n", "\n", @@ -545,7 +8599,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "a7a454c5", "metadata": { "ExecuteTime": { @@ -553,14 +8607,25 @@ "start_time": "2025-01-10T10:18:37.476816Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['40', '33', '63', '30', '60', '53', '29', '64']" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "label_list" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "750935ed", "metadata": { "ExecuteTime": { @@ -568,7 +8633,18 @@ "start_time": "2025-01-10T10:18:38.345650Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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DytXruToo48mJyeH999/ny+//BK/319nnycih4+8VPs9tVu/2BYiIlFT6xYe0zT53e9+x9VXX81ZZ51V40zLCxYs4LHHHsPpdPL73//+oAubNWsWOTk51e4bM2YMRUVF5ObmMnHiRLp06cIvv/xCKBTijTfeIDMzs9rzgsEgwWCw2n2x6HAtIg2UYb853Ye0vrKINCC1/r/5xhtvpE+fPjz44IPcc889HHvssbRv35709HRKS0vZtm0b3333HaWlpVxxxRWMGzfukJaf2LhxI+vWrat2n2maJCUlsX79eqZPn47H4yEcDnPeeefx7LPPctNNN1V73rRp05gyZUqNn1mfj+REpOHTP4NE4scB/fNl2LBhnHrqqXzzzTd88803rF27lqKiIpKSkmjVqhV/+ctfOO2006IyUuuyyy7b5/6WLVsSiUQqh6G7XC4GDRrE2rVrazxnwoQJNV531KhRB1+siMSV5DL73bdxVWwLEZGoOeD2WqfTycknn8zJJ59cF/XU2mmnncZNN91EIBAgISEBgBUrVtCjR48az/F4PDXO02MYRp3UKSKNT2LIfo8UF8a2EBGJmkb7gHrQoEF06dKFiy66iBEjRvDzzz+zYsUK7r///liXJiIiIg3MQU082FA8+eSTjB07lm3bttG7d28+/PBD2rRpE+uyREREpIE56BaemTNncvzxx1dZRb2+ud1uxo4dG7PPFxERkcbhoFt4XnjhhcpRVLfddhsbN26MWlEiIiIi0XTQgWfYsGHce++9vPjii8yfP7/GIeQiIiIisXbQgWfcuHHcfvvtBAIBSktLeeCBBzjttNP485//zIsvvkhxcXE06xQRERE5aIc0SqtXr1706tWLJk2aMHjwYDIyMvjpp5/44YcfKCwsJDU1NVp1iojUm50p0KIIkrr2inUpIhIltQ48DzzwAFdddVW1sxHv3nF40KBBlauoi4g0RlZ527fbkxjbQkQkamr9SOuTTz6hqKio8vuHHnpor8dW4XA4epWJiIiIRMlB9+GZMWMGhYVVZyEdOXJkna6QLiJSHyqXlti8JraFiEjURHXiwVAoRCgUiuYlRUTqXcXSEuHCnbEtRESiplHPtCwiIiJSGwcUeObMmcP69euxLKuu6hERaTD0k04kftR6lFbHjh25//77CYVCpKSkEAgE+O9//0u/fv3o3r07nTt3rss6RURERA5arQPPM888QzAYZMWKFSxdupRly5bx008/8dZbbxEKhXC73ZimWZe1ioiIiByUA5p40OPx0Lt3b3r37l25LRgMsmrVKpYuXcrSpUvxer1RL1JERETkUBzSTMtgh6CePXvSs2fPaNQjIiIiEnUapSUisof8FPs9ufORsS1ERKJGgUdEZA9mxdISiSmxLUREokaBR0REROLeIQWeK6+8UktJiEjcSfLb78XZa2NbiIhEzSEFnjVr1mgpCRGJO96g/R4pyIttISISNXqkJSIiInFPgUdERETingKPiIiIxD0FHhEREYl7CjwiIiIS9xR4RERqYMW6ABGJmkMKPF6vF4dDmUlE4ktBsv2e1LFHbAsRkag5pMVDZ8yYEa06REQajIjTfvckaWkJkXih5hkRERGJewo8IiJ78Abs99KtG2JbiIhEjQKPiMgeksoDT3DnjtgWIiJRU+vAc9VVV7Fz5866rEVERESkTtQ68KxcuZLS0tLK76+55pq9AtCGDRuwLA3kFBERkYbloB9pLVu2rEoAArjsssvIzs4+5KJq680332Ts2LGccsopXHDBBXz88cf19tkiIiLSeBzSsPRY+uijj/jHP/7Bww8/TPfu3VmwYAE333wzLVu2pH///rEuT0RERBqQRttpedGiRRxzzDEMGTKEVq1a8dvf/pZOnTrx448/xro0ERERaWAOKPA8//zzfPbZZ/X62Komxx57LEuWLGH9+vUArFixgk2bNjFw4MDYFiYiIiINTq0faZ122mnMmzePV155BdM0Afj73/9Or1696N69O927d6/cXh9OP/101qxZwxlnnEFiYiLhcJhJkybRp0+fGs8JBoMEg8Fq96mztYhUKEyGpsXg7dA11qWISJTUOvBMmjQJgNLSUpYtW8ayZctYunQpX375Jc8++yyRSCSqhV111VUsWrSo2n2zZs1i0aJFvPTSS0yZMoUjjzySRYsWcc8999C1a1cGDBhQ7XnTpk1jypQpNX5mWlpaVGoXkcYtXL60REJKemwLEZGoOeBOy0lJSQwcOLDKo6OysjKWL1/OsmXLSE1NjUph//znPwmFQtXuS05O5vnnn+ecc85h2LBhAGRlZfHdd9/x+uuv1xh4JkyYwGWXXVbtvlGjRkWlbhEREWl4ojJKy+v10r9//6iOjtpfcCorK8Pj8VTZZhhGjSEJwOPx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xF//+lcGDx5Mq1ataryeiIhIrCnwHATDMHhz4vGN4pHWCy+8wNNPP82zzz5Lz549K7cbhsGrr77K119/zdy5c7n11lsxTZMnn3wSy7J4/fXXK4/t0qULKSkpjB07tsq1f/Ob3/DXv/6VlStX0rp16xqv17lz50O7cRERkUOkwHOQDMMgydOw//hmzpzJU089xSuvvMIRRxxRZV9xcTFbt27llFNO4ZRTTsGyLCZMmMDLL7/MHXfcwbRp06ocv2XLFu6//37uuusuMjIyAFi3bh2hUIjWrVvv93oiIiKx1LB/Y8tBKysr47777mP48OGsW7eOdevWVe4bMGAAmzdv5sILL+TKK6+ka9eu5Ofns3LlSoYPH17t9Vq2bMn27duZMGECF154IYFAgGeeeYbTTz+d7t27s2zZsgO6noiISH1S4IlThYWFHHnkkWzZsqXK4ymADh06cNRRR/Hss8/y/vvvs3TpUlJTU7n11lsZMWJEtddzOp08//zzvP7668yZMwePx8O4ceM455xzAA74eiINWWn5TMvuzOaxLkVEokSBJ061atVqr8dSe+rbty99+/at9TWTkpK4/PLLo3Y9kYZq19ISHWJdiohEiYbQiIiISNxT4BER2UPl0hKlxbEtRESiRoFHRGQPFUtL+NZpaQmReKHAIyIiInGvwQeer7/+mkGDBvH5559X2R6JRJg6dSpnnXUWxx13HOeeey4zZ86MUZUiIiLSkDXoUVrz58/n7bffxjRNwuFwlX3PPPMMb7/9Nv/617/o0KEDs2fP5sYbb6R9+/YcddRRMapYREREGqIG28JTXFzMggULePjhh3G59s5l48eP5+OPP6Zfv35kZmZy7rnn0qlTJ77//vsYVCsiIiINWYNt4UlNTeW6667b5zEej6fya9M0KSwspGnTpnVdmoiIiDQyDTbwHKjHHnuMpKSkfc7sGwwGCQaD1e6zLKuuSoupwsJCVq1ahWVZ9OjRg7S0tEO63o8//kheXl6Vbenp6QwaNOiQrisiIlKXYhZ4rrjiCn744Ydq93311VekpqbW+lqPPPII06dP54UXXqjS6rOnadOmMWXKlBr3H2oYaGhefvllHn74YY466ijC4TCrV6/mH//4B6effvpBX/Phhx+mqKiIrKysym0dO3ZU4JG4UuaBVD+4m6jFWCRexCzwTJkyhUgkUu2+5OTkWl0jEonwf//3f6xcuZLXX3+dli1b7vP4CRMmcNlll1W7b9SoUbX6zMYiEonw888/M3XqVI477jgAnnrqKSZPnnxIgcfn83HJJZdUrqElEo/KEu3Ak5J1RKxLEZEoiVngSUxMPORr3HrrrWRnZ/Pqq6+SkpKy3+M9Hk+NLUCGYRxyPQ2J0+nkgQceqLJt0KBBPPTQQwQCARISEvjiiy/o168fgUCAVatW0aFDB9q3b7/P6/p8vv0G0tWrV7N161aaNGlCz549cTgabN94ERE5TDTaPjyfffYZ8+bNY8aMGbUKO1FnWRAqrd/PdCfBIQSzefPmcdRRR5GQkADA3/72N84++2zmz59PZmYmixcv5pJLLuHGG2+s8Ro+nw+v18uyZcsoKiqie/fuZGRkAHY/qIkTJ7J69Wq6dOlCdnY2lmXx8ssvk5mZedB1i9Q3h2m/h/z1/P+4iNSZBht4pk+fzh133AFAaWkpf/3rX7nlllsYNmwYDz74IK+//jo7d+5kyJAhVc4788wzuffee+u2OMuCZ0fApu/q9nP21O44uHzmQYWer776imeeeYZnn322cpthGKxbt47p06fjcDj4/PPPue6667jwwgtrfDzo8/n4+9//TocOHQiHw6xYsYK//vWvXHDBBWzfvp0vv/ySr776ipYtW2JZFo888gjr1q1T4JFGpYnPfvetWRbbQkQkahps4DnzzDMZOnToXtsr5uSZOnXqXpMRArjd7jqvzdZ4HoG98847/OMf/+Dxxx+nb9++VfaNHDmy8pHTkCFDME2TVatWkZCQwMKFCyuPO/bYY0lNTeWuu+6id+/edO7cGYCZM2dy4403csopp9C6dWv69+/PpZdeysiRIznmmGP485//jNPprLd7FRERqU6DDTwul6vaCQcrJCQkVD6aqXeGYbe0NIJHWs8++yzPPvsszz//fLUzUO/ep8nlcuF0OgkGg+Tl5fHOO+9U7uvevTupqamMHj26yvkjRozgpptuYtWqVbRp04ZXXnmFb775hrlz53LnnXfi9/t56qmn6NKlywHerIiISPQ02MDT4BkGeGo3mixWPvroI5599lleffXVGjsjr1q1ipEjRwKwfv16wuEwWVlZdO7cmalTp1Y5Njs7m3vuuYd777238hHV2rVrCYVCtGnThsLCQrZu3crgwYMZPHgwt9xyCxMmTODll1/mzjvvrNN7FRER2RcFnjhVVlbGfffdx9ChQ1m1ahWrVq2q3Ddo0CDS09MB+Oabb/B6vbRq1YrXXnuNXr160aNHj2qv2bp1a/Lz87nyyiu58MIL8fv9PP/884wYMYJu3bqxYsUKLrjgAi6//HK6dOlCfn4+y5cv54wzzqiXexYREamJAk+cKioqonfv3uTm5lZ5NAXQuXPnysBzxRVXsHXrVr788kv69+/PxIkTa7ymw+Hgueee43//+x/z58/H4/EwYcIEfve73wHQo0cPXnjhBd5//30+/vhj0tLSuP322xk2bFid3aeIiEhtKPDEqZYtW+71SKo6LperxskYq+P1ernkkktq3N+rVy969epV6+uJiIjUB80IJyKyB3/5YE9nuqZTEIkXCjyHsSFDhtC8efNYlyHS4JR67fe0tp1jW4iIRI0eaR3G/vnPf8a6BBERkXqhFh4RkT0YFUtLBPyxLUREokaBR0RkDxkVS0v8+nNsCxGRqFHgERGpUeNZQkZE9k2BR0REROKeAo+IiIjEPQWeOFdWVsbSpUv55Zdf8Puj1wHT5/Mxb948ysrKajymsLCQ+fPnR+0zRUREDpYCTxx76623OPnkk7ntttu49dZbGTJkCHPmzInKte+//34uu+wytmzZUuMxK1asYNy4cVH5PJFYsLBiXYKIRInm4YlTkUiEr776in/9618MGTIEgMcff5zbb7/9kEPPggULWLlyZTTKFBERqRdq4YlTTqeTxx57rDLsAJx00kls27aNQCBQuS07O5uFCxfy66+/1uq6wWCQ22+/nZtvvrna/Tt37mTRokXs3Lnz0G5AJIYCFUtLpDWJaR0iEj1q4TlIlmVRFq65/0pd8Lq8GMbBD5NduHAh3bp1IyEhAYAbbriB77//no4dO7JlyxaaNGnCc889V7mSenWeeOIJevXqxbHHHrvXvjfffJPJkyfTo0cPfD4fJ5988kHXKhJLJV5IDkBqu66xLkVEokSB5yBYlsXFH1/M4tzF9fq5/Vr044UzXjio0PP999/zxBNP8OSTTwKwbds2PvroI7766itatmxJJBLh/vvvZ9WqVQwaNKjaa6xZs4b//e9/TJ8+fa99ZWVlPPDAA9xyyy388Y9/xDRNrrvuugOuU0REpC4o8BykQ2lpqW8ff/wxt99+Ow8++CDHHHMMAC1atODoo49m4sSJjBo1ikGDBvH3v/8dwzAoLi7m5593zTDbp08fkpKSmDRpEtdeey1Nmzbd6zM2bNhAcXExZ5xxBgAOh4ORI0cye/bs+rlJkWgq76scCYViW4eIRI0Cz0EwDIMXznihUTzSeu2113jsscd46qmn6NevX+V2h8PBG2+8wezZs5k7dy4vvvgiXq+XqVOnEgwGeeqppyqPveuuu/jkk0/Ytm0b7dq1Y968eZX7Fi9ejNvtpqSkBICkpKTKfbt/LdKYZBbb78WrFse0DhGJHgWeg2QYBknuhv0L/fPPP+exxx7jpZdeokuXLlX2lZSUkJuby4gRIxgxYgSmaXLllVfy4osvcvvtt/P8889XOf67776jQ4cOPP3001W2v/nmmxiGUdlytHHjRrp37w7Yw9JFREQaAgWeOOX3+7n33nsZOXIkOTk55OTkVO7r3bs369at45JLLuGaa66hS5cu5Ofns27dOoYPH17t9caOHcvYsWOrbOvevTv33nsvnTt3BqBfv35MnjyZyy67jJycHGbNmlV3NygiInIAFHjiVH5+Ph06dODXX3/da8j5bbfdRq9evZg2bRrvvvsu8+fPJy0tjeuvv55Ro0bV+jOOP/74Ko+tnnjiCaZNm8bbb79N586dmTx5Mg8++GDU7kmk/jWevnoism+GZVmaShQYOnQogFolRISfjzoSlwkrRnZm9EMfxrocEdmH2v7+1sSDIiIiEvcUeERERCTuKfCIiOwhWN670UhOi20hIhI1CjwiInvwlffFTzuie2wLEZGoUeAREamRxnSIxAsFHhEREYl7CjwiInvILLLfC5YujG0hIhI1DT7w+P1+nn32WdauXbvP49544w2++eabeqpKRA4HeqAlEj8adOAJBoPccMMNPPzww6xatarG4z7//HNuv/12TRpYDZ/Px08//cSSJUsoLS2N6rWLi4v56quv9nndgoIC5s6dG9XPFREROVANNvCEw2HuvPNOJkyYQHJyco3H+Xw+7rvvPk4++eR6rK5x+N///scpp5zC3XffzeTJkznllFP44osvonb9++67jyuvvJKtW7fWeMzKlSsZP3581D5TRETkYDTYtbSCwSBXX301WVlZ+zzuoYceYsSIEQQCgXqqrHGIRCLMnz+fRx55hMGDBwPwn//8hzvuuINTTz31kK//7bff7rVGl4iISEPVYFt4kpKS9ht2Fi9ezJw5c7j22mtrdc1gMIjP56v2ZVkW8bSsmNPprBJ2AE444QS2b99eGQ7nzZtHUVERO3fu5Pvvv2f79u21unYgEOCOO+7gb3/7W7X7c3NzWbBgAbm5uYd+IyIiIlEQsxaeDz74oMZHIZdeeikej2ef54dCIW677TZuvfXWKit278u0adOYMmVKjfvT0mo/q6plWVhlZbU+PhoMrxfDOPjVmxcsWED37t1JSEgA4Prrr2fMmDF88cUXNGnShF9++YUJEybsN0BOnTqV/v37M3DgwL32vf7669xzzz307NmToqIiTjjhhIOuV0REJFpiFnhKS0spKiqqdl9tWlr++9//kpWVxbBhw2r9mRMmTOCyyy6rdt+oUaNqfR3LsthwwR8p+/HHWp8TDd7+/enwyssHFXq+/fZbnnzySZ566qnKbYZhsGLFCj788ENcLhcfffQRN998M+effz4tWrSo9jqrV6/m7bffZvr06XvtKy0t5cEHH2TSpEn8/ve/xzRNrr/++gOuVSTWQi5wBcGZlBLrUkQkSmIWeM4///yDPreoqIgnnniCsWPHVv4CX7ZsGQDPP/88l156abXneTyeGluODjhEHEJLS32bMWMGkydP5uGHH96rVea3v/0tLpf9n8GwYcOIRCKsWrWKxMREFi9eXHlc//79SU5O5rbbbuPPf/4zmZmZe33Ohg0b8Pl8DB8+HACHw8GZZ57J559/Xnc3J1IHipPAG4S0jj1iXYqIREmD7bS8Lw6Hg4svvhigspUoGAwC9qitumYYBh1eeblRPNJ6+eWXmTp1Kv/973/p3bv3XvsTExMrv/Z4PLhcLvx+P9u3b+eFF16o3NexY0c++eQTtm/fTosWLfjqq68q9y1atAin01k5PN3r9VZ7fRERkVhpsIFn5cqVzJkzB7A7yX7++eds3LiRTp06MWzYMG666aYqx991110AXHPNNfVSn2EYGLXsOxQrn332GVOnTuWll16ic+fO1R6zatUqzjzzTAA2btxIKBQiKyuLrl278swzz1Q59vvvv6dTp068+OKLVba/++67uN1uBg0aBNgtPT162P8yXr58ebRvS0RE5IA12MATCoUqW28uvPBCwG7NqWmSuxNPPLHeamsM/H4/99xzD2eccQbZ2dlkZ2dX7uvXrx+pqakAfP3116Snp9OyZUteeeUVjjrqKI488shqrzlm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2JimSSAQqHbf7veekpLCX/7yFwDee+89/vznPzNnzhySk5Prpc5DFQqFarxP0zQrv96+fTtXXnkl3bt35/7776/yiKsxqPjhuafd7zHeeL1eTNMkGAxWGcnj9/vxer0xrEwOxdKlS5kwYQIXXHABf/rTn2JdTp255JJLADvcjRgxgl69enHcccfFuKroyM3N5bHHHuPFF188pOso8NSDa665psZ93377LfPmzaNnz55MnToVsP9yZ82ahdPpbDQtA+3bt+eGG244oHOOO+44iouL2bx5c6PpqH3yySdz8skn7/OYrVu38sc//pGzzjqrMtw1NhU/PA8n7dq1A2DTpk2Vj3wCgQDbt2+Py86fh4MlS5Zw5ZVXcssttzB69OhYl1MvsrKyaNu2LStWrIibwDN16lSaNWvGp59+yqefflrZ0f6pp55i2LBhtW61U6flGGvatCmXX3454XCYQCBAIBDAsizC4XBc9Y9YtWoV//znP6u09vz888+4XK5G3bK1p0gkwoQJE/jtb3/baMPO4SozM5PevXszc+bMym2fffYZGRkZ9OrVK4aVycHYuXMn48eP5/bbb4/bsOP3+3nggQeqjFjKy8tj69atHHHEEbErLMoGDRrEqaeeWvk7suLpSDAYJBKJ1Po6Wjy0ATrnnHO45JJLOPvss2NdStQUFhZy/vnnk5SUxEknnYTP5+O9995j4sSJcdUn5M0332Ty5MlMnDgRh2PXvycq+mvFi0WLFvHtt99imiaPP/445513Hq1bt6ZXr14MHjw41uUdtB9++IHx48czfPhwEhMT+fDDD7nrrrv4zW9+E+vSoiYUCvH0008DMHv2bAKBQOX9xdMjn3vvvZePP/6YCy64oMr2zp07M2LEiBhVFX033ngj33//Pb/5zW/weDx88skntG/fnqeffrrKz6B4snnzZoYOHcpPP/1EQkJCrc/TI60G6Nxzz200j3hqKz09nenTpzNr1izWrl1LZmYmL730EkcffXSsS4uq1q1bM27cuL36bFX8iyRe7N5na+LEiQCVHSYbswEDBvDee+/x9ddfEw6Hee211+JupmXLsir/7k488USAGvulNWY9e/YkKSlpr3tr7P+N7umhhx5iwYIFlYMp/v73vzNkyJBG12/wQKSlpTFx4sQDmmUZ1MIjIiIih4H4bO8SERER2Y0Cj4iIiMQ9BR4RERGJewo8IiIiEvcUeERERCTuKfCIiIhI3FPgERERkbiniQdFJCbC4TBvvPEGH3zwAZs2bSIlJYXevXtz5ZVX0q1bt72OmzFjBhs3bsTlcnHUUUdx0UUXcfzxx1ced+edd1JWVsYDDzxQ5XO2bNnCqFGjeOWVVyoXc3377bcr97tcLtq0acPpp5/OuHHjqiwcuqf77rsPgFtvvbXGY3w+H2eccQa33XZbtTP6Pv7448ydO5dBgwbh8/m488479/tnJSKHTi08IlLvTNPkmmuu4YknnuDyyy/nvffe47HHHsPr9XL++eezZMkSwF6b7E9/+hPTpk3jkksu4d133+Wll16qDEa7r57s9/spKyur9rOKi4srV3ovKyujT58+zJ49m9mzZzNjxgxuvvlm3nzzTf7973/XWPOnn37Kl19+ud9FclNSUjj++ON56623qq3lrbfe4owzzuC6665jwYIFfPDBB7X5IxORQ6QWHhGpd9OnT2fu3Ll89NFHtG/fHoDmzZtz11134fP5+OCDD+jTpw/vvPMO8+fP55NPPqFNmzaV50+cOJFmzZpxxx13MHToULKysg7o810uF2lpaZXfH3/88Zx11lnMnz+/2uMjkQgPPfQQf/rTn/B6vfu9/nnnnccll1xCTk4OLVq0qNz+zTffkJeXx9lnn43H4+Hqq6/mX//6FyNGjNhny5KIHDq18IhIvfv44485/fTTK8PO7h566CEmTZoEwIwZMzjjjDOqhJ0Ko0ePJj09nU8++eSQ69m8eTNffPEFffr0qXb/t99+S25uLiNHjqzctmnTJv7yl79w2mmncdppp3HfffdVrpk2aNAg2rVrx/vvv1/lOu+++y7Dhg0jMzMTgDPOOIOSkhK++uqrQ74HEdk3BR4RqXfr1q2jc+fO1e7bfdHDdevW1bh4p9PppGPHjqxbt65y2+zZsxk4cGCV16hRo/Y6d+7cuZX7+/bty+jRo+nXrx833nhjtZ81b948jjnmGNxuN2A/PrvoootwOBy88MILPPnkk/z000/cc889leeMHTuWd999t/L7oqIiPv/8c84777zKbQ6Hg2OPPZZ58+ZV+7kiEj16pCUiUXHFFVewePHifR6zcOHCyq8djtr9e2tfqz7veY3BgwdX22n57LPPrrLtuOOO45FHHgHs4JScnLzPGjZt2kTbtm0rv//222/Jyclh8uTJlefeeOONjBs3jttuuw23283o0aP597//zZIlS+jTpw8zZsygefPmVTpaA7Rv354VK1bs8/NF5NAp8IhIVDz66KNEIpFaHduuXTvWrFmz3+Pat2/P2rVrq91nWRYbNmxgyJAhldvcbneVvjlgt6zsac8+PPtTXFxM165dK7/Py8vDNM0qn21ZFoFAgJycHLKysmjatCmnnXYa77zzDn369OHdd99l7NixewW4Jk2aUFxcXOtaROTg6JGWiERFcnIyaWlp+3xVGD58OJ9++inZ2dl7Xeedd97h7rvvBuw+Lh9//DG5ubl7HTdr1ix27NhR7dDvaEtOTsbn81V+36pVK7xeL7Nmzaoc7fXFF1+wYMECWrduXXnceeedx8yZM1mzZg1Lly5l9OjRe127uLiYlJSUOr8HkcOdAo+I1LsxY8Zw9NFHc/HFF7NgwQLA7hfz2muvcdddd3HssccCdmA48sgjufjiiyuHqofDYWbMmMHf/vY3rr76atq1a1fn9bZu3ZqtW7dWft+vXz9SU1N59dVX8Xq9eL1eXn31Ve6+++4qj9lOPPFEkpOTufvuuzn55JNp2bLlXtfOzs6mVatWdX4PIoc7BR4RqXcul4tnn32WESNGcMMNN9CrVy+OO+44ZsyYwRNPPMHw4cMB+xHVs88+y2mnnca1115Lr1696Nu3L08//TR33HEHV199db3Ue+yxx/L9999jWRYASUlJPPHEE3z55ZeVnZ/nzJnDFVdcUeU8wzAYM2YM8+fPr9JZeXffffcdxx13XJ3fg8jhzrAq/g8WEYmRQCCAx+PZZwfliuNcLhdOp3OvfRWTDu45T45pmvh8PpKTk3E6nfj9fkzTJCkp6YDqGzZsGJMnT+a0006rsq+i31J1NYHdIlVaWkpqaupe9/fNN99w4403MmvWrP12nBaRQ6PAIyJSC2+88QZvvPEGb775Zo3h5kCYpskf/vAHRo4cycUXXxyFCkVkX/RIS0SkFs4//3zatm3Lo48+GpXrTZ06lYyMDC666KKoXE9E9k0tPCIitRQOh/H7/VEZVeXz+UhMTMTl0uwgIvVBgUdERETinh5piYiISNxT4BEREZG4p8AjIiIicU+BR0REROKeAo+IiIjEPQUeERERiXsKPCIiIhL3FHhEREQk7inwiIiISNz7f8OSqKrfQxSdAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Using PlainCohpPlotter to get static plots of relevant orbitals COHPs from Analysis object\n", "\n", @@ -590,7 +8666,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "80462ffb", "metadata": { "ExecuteTime": { @@ -606,7 +8682,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "819090a7", "metadata": { "ExecuteTime": { @@ -621,7 +8697,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "id": "aa76b7ff", "metadata": { "ExecuteTime": { @@ -632,7 +8708,3936 @@ "remove-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = interactive_cohp_plot.get_plot()\n", "fig.show(renderer='notebook')" @@ -658,7 +12663,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "25fa1eff-a3de-4126-8349-bc932cb23efb", "metadata": { "ExecuteTime": { @@ -694,7 +12699,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "3fa696e7-55b7-4537-9cf8-c7511b4a5447", "metadata": { "ExecuteTime": { @@ -702,7 +12707,18 @@ "start_time": "2025-01-10T10:18:47.093206Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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oNbm6OiIV69e6W0MmUwGmUymcZkgCHobh4iIiEoWkwUcIH/IEAQBZmZmetv+mjVrsHz5cq3L/x2wiIiISBxMFnBcXFzw4sULtbaUlBSUL19eb2OMHTsWI0eO1Lisd+/eehuHiIiIShaTBZymTZsiPj5ere3SpUvo3r273saQSCSQSCQal+nzTBERERGVLCabZDxkyBDExMTgr7/+QnJyMjZt2oSHDx+iX79+AF5frsrKykJeXh4AQKFQICsrC1lZWQAAqVSKrKwsSKVSU+0CERERlVAmCzi1atXCsmXLsG3bNnzwwQeIiorC+vXr4ezsDAB48OAB/Pz8cP/+fQBAaGgo/Pz84OfnB5lMhu+++w5+fn6YNWuWqXaBiIiISigz4T29nSggIAAAEBkZaeJKiIiISFe6fn/ziXlEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOERE75n0deuQMnwEMtavN3UpRAZjaeoCiIjIOHLPnUPqBwOAvDwAgDQiEunfzYfLvj0o07y5iasj0i+ewSEiek+8HW5U8vKQ2re/aQoiMiAGHCKi90D6unX5w80beXm8XEWiw4BDRMX2qLoHHrm541GNmqYuhQohO3mqwOXS6BgjVUJkHAw4RFRkjwID8cjNHVAoXjfI5a+DTo8g0xZGWkn82ha43Nq/nZEqITIOBhwiKrprNwAAwlt/AAB/XzZRQVQYh88+A8y1/JVvbg770aONWxCRgTHgEFGRPKruoR5q/udNGy9XlVwu+/bkDznm5q/biUSGt4kTUdG8uSyljVxunDqoyMo0bw63xIfIWL8e0ugYWPu345kbEi0GHCIqEqk5INFyMw4A5PK8cIlnP3o0gw2Jnsn/KkpOTsaFCxeQkpJikP5EpF9TlnkVuHxqIcuJiIzBZGdwBEHAzJkzERERgdq1a+P27dsYOnQopkyZopf+RGQYrmXdcN39Khom5r8Udd3dCm52VU1QlTi0nXsESgCWZsDJ77oabJz0desgO3mKl6jIYIz1u1wQkwWcsLAwxMTE4OjRo3B2dkZSUhJ69eqFDh06oLmGR4YXtT8RGcbKLqvQO+v17eCLJlyGJA+QmQOTlzUFAPzVeaUpyyuVhi2Pxu3nOarPCgHwnXsE9SuXxcbP/fQ2Dl/VYBpXWzeDXVIqMqqVR5NTl0xdjkEZ63dZFya7RHX48GEEBQXB2dkZAFC1alX4+/vjyJEjeulPRfPim2/xtENHvJw929SlUCnQr+aHAF6HmvErmqrCzZt2Kpq3vxDedvNpll7H4asajOvvqZ8hyc0dTgmpsMwDyj1IQZKbO67MGG/q0gzGWL/LujBZwLl//z5q1Kih1ubh4YG7d+/qpT/pJvPgQTxyc0fOpj+gvH0H2b9vxCM3d2SFhZm6NCrBRjYdib/6HkI1u+qwgAWq2VXHX30PYWTTkaYurdRpO7fgf6T5faeff8TxVQ3G5xKi+e/Rcpv3G7kS4zDW77KuTHaJKisrC7a2tmptZcuWRWZmpl76A4BMJoNMJtO4TBD+/RSP91Pa2M81tr8a/RnKPko0cjVU2izn5ah3pixkuUJPf1Xp8qoGzsfRn6utm8GpgOVX2nqJ7nKVsX6XdWWygGNpaQn5v56XIZfLYWVlpZf+ALBmzRosX75c63IHB4ciVCw+L775tsDlL2fPRrkFC4xUDdH7yQIFfzFYmulnHIlfW0gjIrUu56sa9MsuKbXA5fYJ4rsT2Fi/y7oy2SWqypUrIzk5Wa3tyZMncHV11Ut/ABg7diwuXryo8Y+bmxvs7e3ffUdKMdnp0wUul8acNFIlRO+vU/MKvsNEX3eg8FUNxpVZ1aXA5RnVyhupEuMx1u+yrkwWcFq1aoVTp/7/KVOlUonTp0+jdevWeukPABKJBHZ2dhr/mJmZwczMyHGyhJG0aVPgcut2xp3xTvS+ql+5bJHai4uvajCexmfiC1wutstTbxjrd1kXZoKJJqO8ePECvXv3RkBAAFq1aoXw8HDcvn0be/bsgUQiQXZ2Ni5cuIDmzZujbNmyhfYvqoCAAABAZKT2U7bvg0du7lqXuXEODpFR+X13BArB8M8O4asajOPKjPEaJxS/HNYHTX7UPn1CDAz5u6zr97fJAg4APHr0CNu2bUNiYiLq1KmDjz/+GOXKlQMAPH36FN9++y3mz58PNze3QvsXFQPOa1lhYXg1+rN87U7r16Fst24mqIiISFyutPWCfULKe/EcHGMoFQHHlBhw1L2cPRvSmJOwbufHicVERFRi6fr9zZdtEgAw1BARkaiY/GWbRERERPrGgENERESiw4BDREREosOAQ0RERKLDgENERESiw4BDREREosOAQ0RERKLDgENERESiw4BDREREosOAQ0RERKLz3r6q4dmzZ1Aqlap3WhAREVHJ9+TJE1hYWBTa7709g2NtbQ1Ly5KX7wRBQHp6Ot63d6C+r/sNvL/7/r7uN/D+7vv7ut/A+7vvhthvS0tLWFtbF9rvvX2beEmVmZmJ5s2b4+LFi7CzszN1OUbzvu438P7u+/u638D7u+/v634D7+++m3K/39szOERERCReDDhEREQkOgw4REREJDoMOERERCQ6DDhEREQkOgw4REREJDoMOCWMRCLB+PHjIZFITF2KUb2v+w28v/v+vu438P7u+/u638D7u++m3G8+B4eIiIhEh2dwiIiISHQYcIiIiEh0GHCIiIhIdEre2yZFLjU1FTExMXj58iWqVauGDh06aH0r6j///IOIiIh87R999BEcHR0NXapeKZVKnDlzBnfu3IGtrS18fHxQs2bNAte5efMmLl26BGtra7Rp0waVK1c2UrX6lZycjJMnTyItLQ3u7u5o37691gl3d+7cwdGjR/O1DxkyBOXKlTN0qQZz7do1nDhxAmPHji3wLcC3bt1CXFwcJBIJ2rRpA1dXVyNWaRibNm1CvXr14Ovrq3G5mI75jh07kJqaqtZWq1YtdO3aVes6t2/fxsWLF2FlZYXWrVujSpUqhi5T7+7evYsjR47kax88eDCcnZ3fuX9Jl5aWhvDwcGRmZsLb2xtNmzYtsL+xjjnP4BhRbGwsOnfujGPHjiE5ORm//vorhgwZArlcrrH/pUuXsGPHDkilUrU/pW1euFwux0cffYSffvoJT58+xcWLF9G/f3/s2bNH6zo7duzAxx9/jKtXr+LkyZPo2bMnLl++bMSq9ePYsWPo1q0bzpw5g+fPn2P58uXo378/srKyNPaPj49HSEhIqT/mb5PJZJg6dSqWLl0KhUKhtd/u3bsxdOhQXL16FadPn0bPnj0RHx9vvEINYM+ePfjhhx9w8uRJrX3EdMzX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3Lx5M1/fNm3a4Ny5c4iNjUVOTg4OHDiA+/fva9zurFmzMGfOHLx48QKCIMDV1RXA69up/71/hf083mUfCjs+BdX5b25ubsjIyEB6erqqbefOnejYsWO+kNewYUPUqlULe/fuVbU9evQIbm5uhe4PUWnBgEMkItWrV4eXlxd69+6NDRs2oE6dOvjtt98QHByM1q1bY9CgQXBzc8OgQYO0bmPEiBFQKBRo06YNhg4dijp16mDUqFEICQnBihUr8o1Rv359LF68GKtWrULLli0xfvx49O/fHyNHjnzn/WnQoAEWLVqExYsXw9fXF/Pnz8ecOXNQv379fH39/f0xatQoTJkyBW3atMH58+fRo0cPjSHkyy+/RHJyMgIDA+Ht7Y05c+bghx9+QNWqVfPtX2E/j3fZh8KOT0F1/lvdunXh4uKCs2fPAgAyMjJUd7dp0q9fP/z5558QBAF37txBSkoKfH19C90fotLCTNDlnyBERFTiLV68GDdv3sSaNWuKtN6PP/6IxMREnQIbUWnBMzhERCIxcuRIXLlyJd+cqII8efIEe/bswcSJEw1XGJEJMOAQEYmEk5MTfv31V0yfPl3tXVTaKBQKTJo0CZMnT9Z6Sz1RacVLVERERCQ6PINDREREosOAQ0RERKLDgENERESiw4BDREREosOAQ0RERKLDgENERESiw4BDREREosOAQ0RERKLDgENERESi8/8Ap13A5tzHGDUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Plotting ICOHPs against distance\n", "\n", @@ -716,7 +12732,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "id": "a2aebbe1-00bd-45e6-a2fc-76b6f77cb757", "metadata": { "ExecuteTime": { @@ -743,7 +12759,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "id": "86d0b3c8-aaf5-463e-8078-867ed6ae730e", "metadata": { "ExecuteTime": { @@ -751,7 +12767,18 @@ "start_time": "2025-01-10T10:19:00.920286Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAG0CAYAAADacZikAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcvVJREFUeJzt3Xl8FPX9P/DX7L3J5r4vkhBuBOQQBOVGRPAWqrX2Z5GqeLRi1fr1KF6tWiv1woNW64EtyiFVC4KCKHiBgsilyBFIyH0nm71n5vfHbAIh127I7uwmr+fjsWZ35rMz793I5r2f+XzeH0GWZRlEREREvYhG7QCIiIiIgo0JEBEREfU6TICIiIio12ECRERERL0OEyAiIiLqdZgAERERUa/DBIiIiIh6HSZARERE1Ovo1A4gVI0ZMwYulwtJSUlqh0JEREQ+qqiogMFgwHfffddhOyZA7XA6nRBFUe0wiIiIyA8ejwe+LHLBBKgdycnJAIDNmzerHAkRERH5avr06T614xggIiIi6nWYABEREVGvwwSIiIiIeh0mQERERNTrMAEiIiKiXocJEBEREfU6TICIiIio12ECRERERL0OEyAiIiLqdZgAERERUa/DpTCIiIg6IMsyNm/ejE8++QSlpaWIjY3FuHHjcMUVV8BsNrf5nLKyMixatAgvv/wyYmNj8dprr2HTpk1ttn344YcxcOBAOBwOrFixAjt37oTT6cSwYcNw/fXXIyYmJqixqnFsNTABIiIiaockSVi0aBG2b9+OW2+9FZdffjmKiorw5ptvYtWqVXjjjTfaTFAcDgd27doFt9sNADh+/DhkWcbdd9/dqm1GRgYA4J577kFJSQluuukmGAwGvPLKK/j666+xYsWKoMYa7GOrhQkQERFRO1asWIGtW7fiww8/RFZWVvP2WbNm4YorrsDy5ctx++23+3SsmJgYjBkzpt39t912G1JSUhAXFwcASE9PxyWXXIKysjKkpKQENdZgHlstTICIyGdb9hSjpt6JK87LgSAIaodDYU6WZch2e1DPKZjNfv2/u3r1asydO7fFH30AsFgseOeddxAfHw8AsNvtePnll7F//35kZGTgsssu8zu2QYMGtXis0SjDdHU65U/1Bx98gC1btuCZZ54JeqzBfB+ChQkQEflElGR888RWmFwivo01YexZaWqHRGFMlmVUXn4lXN99F9TzGs45B4lr1/icBB06dAj/7//9vzb3JSQkNN9/8MEH8dNPP+HOO++Ew+HAs88+26r9999/j1/+8pettv/jH/9AVFRUq+3PP/88LrjggubzjB07Fn379g1KrME8tlqYABGRT8oqrIi3eQAAW1btYwJEZy7EexFFUYTH42l3gG8Tl8uFjz76CC+++CKmTp0KQOm92bFjR4t2ffv2xV133dXq+acf3+Px4KGHHkJ+fj7efvvt5u2pqalITU0NSqzBOraamAARkU9OHK9tvq87UIGyWjtSYjv+QCRqjyAISFy7JqQvgWm1WiQlJaGgoKDDdhUVFRBFEdnZ2c3b8vLyWrXrbAwQANhsNtxxxx2w2+14++23fZ4B1l2xVlRU4Pe//33z43vuuQejRo3q1vchVDABIiKflBbVNd+3uCT8d/Ve3PzbsSpGROFOEAQIERFqh9GhSZMm4b333sOCBQug1Wpb7Pvggw+g0WgwYcIEAIDT6Wze19DQ4Pe5nE4nFi5ciJiYGLz44oswGAxBjzUmJqZFL1VTAhPM9yFYWAiRiHxSXWJt8bhs23G4PJJK0RAFxy233ILKykrcfffdsFpP/hvYuHEjHnroIRiNRsTHxyM9PR2ffPIJAGV809q1a/0+10svvQRRFPH3v//d7+Snu2I1GAwYM2ZM862pByqY70OwsAeIiHxirbBCD0DMioamsB4ptU5s3HYUl0ztp3ZoRAGTmZmJt99+Gw899BAmTpyIvn37oqqqCjqdDn/9619xwQUXAAAeeOAB3H333di4cSNcLhcuv/xyv87jcrnwr3/9C+np6a0GGy9atAjjxo3rdBZYIGMN1vsQTIIsy7LaQYSi6dOnAwA2b96sciREoeHpOz5E1LE6mKfkwHG8FnJ+LUpzY/DQs5eoHRpRUJSVlaGsrKy5p6NpmnoTq9WK48ePIzU1FbGxsfj+++8xfPhwGAwGFBQUwOVyoV+/tr8wSJKEXbt2tbkvLy8PcXFxKC0tRWVlJc4666yAxqrmsbuDr3+/mQC1gwkQUUtP3bAaMVUOpF99FnL7xOLLv30Bp1bAtCWzcFZuQucHICIKAl//fnMMEBH5RNuolLJPzozB0AnZ8FgMMIoy1q/cq3JkRET+YwJERJ1yukSYnCIAICMrBoJGQN4MZXaIuLsU1VZnR08nIgo5TICIqFMniuqgkwEZQGpGNABg8pVDIWkExNs8+GDdT+oGSETkJyZARNSpooJaAIDLoIXOoEweNceYYBmuLNB4dNMReEROiSei8MEEiIg6VVFcDwAQI/Uttk+7ZjgAILXChs92FQU9LiKirmICRESdqilVCp9poo0ttmcMToacHAmtDHz53n41QiMi6hImQETUqcYqGwDAFN962YJRlw0GAEQeqsbR0tAte09EdComQETUKVeNsmBlVFIbCdAF/SAatIhyS/jvGk6JJ6LwwKUwiKhzDS4AQEJaVKtdOqMO6ef3Qdmn+ajffgLWBW5YTPpW7YjClSRJ2LBhAz7++GOUlpYiNjYW5557LubOnQuLxdLmc0pLS3HrrbfitddeQ1xcHJYtW4aNGze22fbxxx/HoEGD0NjYiOXLl2Pnzp1wOp0YNmwYFixYgPj4+KDG2hZf4g83TICIqFN6m1IEMSUzps39U38xDCs+zUdanQsffHoE184Ovw9DoraIoojbbrsNP/zwA+644w70798fxcXFeP3117FmzRq89dZbbSYNTqcT+/fvh8fjAQAUFRXBZDLhvvvua9U2KysLAHDXXXehtrYWt9xyCwwGA1566SUsXLgQK1euDGqsbfEl/nDDBIiIOtRgdcHkVqa4Z2W3/e0wJi0ahrx4uI9U49AnhwEmQNRDvP3229i+fTvWrVuH9PR0AMDo0aMxffp0XHHFFfjPf/6D2267zadjRUVFYdiwYe3uv+eee5CUlIToaKXWVlJSEubMmYPS0lKkpqYGNdauxB9umAARUYcKCmogABAFID4pst12A2fkYd+RaphLrZBlGYIgBC9ICkuyLMPhFoN6TpNe69f/m2vXrsW8efOaE4omERERWLlyJWJilF5Rq9WKF154Afv370dGRgauuuoqv2PLy8tr8ViSlC8eTYuIrl27Fps2bcKLL76oeqw9ARMgIupQSWEdAMBl0kHQtP+Ho/+wFOwDEGn3oKrBicRoU5AipHAkyzJuem0H9hbWBvW8w/vEYtkNY31Ogg4fPozf/OY3be5rSigA4IEHHkB+fj7uueceOBwOvPDCC63a79y5E1deeWWr7W+++SaiolqOr5NlGc888wwuuuii5jFA559/PoYOHRqUWNviT/zhgAkQEXWoqQiibDF02C4xPRqSAOhk4NChSiSOzgxGeBTGQr2TUJIkeDwemEwdJ/Mulwsf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ASKiFsR6JwAgtourwJ8uxTuTzOyRcfh4DUYP7n3d+dQ2WZbhcQbuG35bdEatX2Pb3n//ffziF79oTn6aGI1GrFq1CmazGQBQW1uLJUuWYP/+/cjIyMA111zjd2ynr8nlcrkgCELzOVauXImNGzfitddea/P5e/fuxT//+U8UFBQgIiICF1xwAX7zm99AEATceOONuOqqqzBr1iwAyjCThQsXYvXq1bBYLPjd736HOXPm4Ntvv8XOnTuRk5ODhx9+GOvWrcPatWsRGRmJP/zhDxgxYgQA+N3e7Xbj7bffxqeffoqGhgYMHz4c99xzD6Kiorrt/fMXEyAiakFjVYogJqWfWRHEJnqzHm6zDnq7B/kHK5kAEQAl+Xn//z5G2U8VQT1v6uAkXPrETJ+ToKNHj2LBggVt7mtKTADg/vvvR3l5OR544AE4HA784x//aNV+x44dzQnIqVauXNmq7pwkSfjb3/6Gyy67DHFxypeImTNnYvz48W3GIssybrrpJvy///f/cNttt6GyshIPPfQQIiIicPXVV6OwsBANDQ3N7V0uF/Lz8yFJEgCgrKwML730EhYuXIiLL74Y9913H2644QZMnz4dDz/8MF599VUsXry4efkpf9s//PDD+Pbbb/HAAw8gLi4Or776KubPn4/Vq1f7/P51NyZARNTMI0owOZRyEul9YrvtuJoEM3CiAWXHajpvTL1GqFcakSQJoijCaOx4QoDL5cKnn36Kf/7znxg9ejQAwG6345tvvmnR7qyzzmpzDFDTJa8mTqcTd999NxobG/HCCy80b4+NjUVsbGybMciyDEmS4HA4kJaWhoEDB2LNmjUwmXwfyzdhwgTMnj0bADB9+nR89tlnuO222wAA8+bNwy233NKl9jabDf/973/x3HPPYfLkyQCAJ598EmPHjsWePXswaNAgn96/7sYEiIialZQ2QOctuJ6RFdttx41MjYLjRAPqixs6b0y9giAIuPSJmSF9CUyj0SAtLQ35+fkdtisvL4csy8jMzGze1qdPn1btOhsDBCiXghYuXIjY2Fi8/vrrLXqZOov1n//8J5YuXYrJkycjJycHs2bNarfYb1tOvQRnMplaPDYaja1q7fnavqqqCh6PB0888QSefvrp5jayLOPo0aOIj4/36f3rbkyAiKhZkbcIolOvgcms77bjJufEoeC7YohVtm47JoU/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8fXvt2pfheLj4/Huu+/CYrFgw4YN6Nu3L5YvX96crNTX1+PNN99EbW2tT+07209ERETURPWlMEIVe4CIiIjCT8j3ABERERGphQkQERER9TpMgIiIiKjXYQJEREREvQ4TICIiIup1mAARERFRr8MEiIiIiHodJkBERETU6zABIiIiol6HCRARERH1OkyAiIiIqNfRqR1AqCovL4cois1rihAREVHoKykpgVar7bQde4DaYTQaodOdeX4oyzLq6+vBNWd9x/fMP3y//Mf3zD98v/zH98w/3fl+6XQ6GI3GTttxNfgAs1qtGD16NHbu3AmLxaJ2OGGB75l/+H75j++Zf/h++Y/vmX/UeL/YA0RERES9DhMgIiIi6nWYABEREVGvwwSIiIiIeh0mQERERNTrMAEiIiKiXocJUIAZDAbcfvvtMBgMaocSNvie+Yfvl//4nvmH75f/+J75R433i3WAiIiIqNdhDxARERH1OkyAiIiIqNdhAkRERES9DleDD6DGxkZs27YNZWVlGDBgAMaPH692SGFh/fr10Gq1uPDCC9UOJeQdP34cO3bsQGNjIwYPHoxx48apHVJIs1qt2Lp1K0pKSpCYmIhJkyYhLi5O7bDCQnFxMf773//iF7/4BRITE9UOJySdOHECH3zwQavtV1xxBdLS0lSIKDzU1dXhk08+gdVqxahRozB8+PCgnJc9QAFSW1uLK664Am+99RYKCgrw0EMP4d5771U7rJC3fPlyLF68GOvWrVM7lJC3cuVKXH755di1axeKiopw11134Y9//KPaYYWsgoICzJo1C2vWrEFlZSU+/PBDXHDBBTh48KDaoYWFxYsX47nnnkNFRYXaoYSsgwcP4o033oDT6Wxx41yj9hUWFmLOnDn45JNPUFBQgBtuuAErVqwIyrnZAxQgr7/+OpKSkvD2229DEARUVlZixowZuOaaazBy5Ei1wwtJq1evhsPhwKWXXorKykq1wwl5giBg2bJlGDt2LADlW+YVV1yB3/3ud8jKylI5utBTV1eHO+64A/PmzWve9utf/xrvvvsuFi9erGJkoe/DDz+ELMuc0t0Jq9WKlJQU3HnnnWqHEjaeeuopjB07Fn//+98BANOnT8f+/fuDcm72AAXI1q1bcdFFF0EQBABAYmIiRo8eja1bt6ocWegaOXIkbrzxRrXDCBvz5s1rTn4AIDc3F4DS+0itDRs2rEXyAwCSJCEqKkqliMJDbW0tnn76adx3331qhxLyrFYrIiMj1Q4jbDidTmzZsgW//OUvm7edd955uOmmm4JyfvYABciJEyeQnp7eYltmZiYKCgpUiij05eXlqR1CWHv//feRmpqKgQMHqh1KSNu/fz82bdqEPXv2ICkpCQsWLFA7pJD21FNP4dJLL0W/fv3UDiXkWa1WWCwWbN++HT/++COSkpIwZcoUJkXtOH78ONxuN/Ly8rBu3TpUVlZi+PDhQbtKwh6gALHb7TAajS22mUwm2O12lSKinmzbtm14+umn8de//pWXKTohiiKcTifcbjdsNhtsNpvaIYWsHTt24JtvvsGtt96qdihhwWq14uuvv8brr7+O0tJSvPHGG7joootQVFSkdmghqaGhAVqtFvfffz+++eYbHD58GDfccANefPHFoJyfPUABYjab4XA4Wmyz2+0wm80qRUQ91Zo1a/DUU0/hueeew7nnnqt2OCFv+PDhzbNMFi1ahEceeQQvv/yyylGFHpfLhcWLF+NPf/oTP7d8dO211+KKK65A3759AQCyLOPXv/41XnzxRTz++OMqRxd6LBYLRFHEvHnzMH36dADAlClT8Pvf/x7z589HREREQM/PBChAsrKyUFhY2GJbQUEBRo0apVJE1BO99dZb+Mc//oE33ngDgwcPVjucsDNu3Dj84x//UDuMkPTuu+/CarXixx9/xI8//ghAGTO1atUqXHDBBSzr0YbTp7oLgoCRI0di9+7d6gQU4lJTUwEA/fv3b9529tlnw+PxoKSkJODDIngJLECmTJmCjRs3Nj8uLy/Hrl27MHXqVBWjop7kiy++wIsvvoi33nqLyY8P1q9fj3fffbfFtr179yInJ0edgEJcv379cNVVV7Wazu1yueB2u9UOLyQtXrwYTz75ZPNjWZaxY8cODBgwQMWoQldMTAzGjRuHLVu2NG/74YcfYDQakZGREfDzczHUAKmvr8e8efOQlpaGwYMHY/PmzRg3bhwee+wxtUMLSaIoYtmyZQCAzz77DDabDbNnzwYA3HLLLc2z6eikiy++GNHR0Tj//PNbbJ88eTKGDh2qUlSha8eOHbjxxhsxefJk5OXl4fDhw/jqq6/w2muv4eyzz1Y7vLAwbNgwrFy5kgl3O3bu3Inf/va3mDhxInJzc/HNN9+gsrIS77zzDpKSktQOLyTt2rULN954Iy688EJERETgv//9L2699VbccMMNAT83E6AAslqt+PTTT1FWVoahQ4diwoQJaocUsjweD1544YU2991xxx3QaNhZebqlS5e2+U18+vTpQaukGm6qqqrw8ccfo6qqCsnJyZgyZQqSk5PVDitsLF26FFdffTX/mHegoqICmzdvRm1tLbKysjB9+nSYTCa1wwpphYWF2LRpE2RZxpgxY4L2+cUEiIiIiHodfq0mIiKiXocJEBEREfU6TICIiIio12ECRERERL0OEyAiIiLqdZgAERERUa/DBIiIiIh6HSZARES9nCiKuOOOOzBy5Eg88cQTaodDFBRMgIiIern8/Hw4nU58/vnn2LFjBxwOh9ohEQUcEyCiMDdy5EisW7dO7TCCZtOmTRg3bly3HOvuu+/G4sWLu/24oezrr7/GjBkzUFtb27wtJycHW7ZswTnnnIOCgoLmpRvcbjeuueaaVovIEvUETICIeplp06ahsbExbM8xY8YMbN++XdXjBuM9DITa2lrcdddd+Otf/4rY2Njm7RqNBhkZGbjgggtarFyu1+vxzDPPYMmSJTh06JAKERMFDhMgol7EarWiqKgo7M+hpnB+fa+//jqGDh2K0aNHt9j+5ZdforGxEYsXL8bevXtx5MiR5n1paWm4/PLL8eyzzwY5WqLAYgJE1INs2bIFM2bMwMaNGzF9+nScffbZmD9/PmpqauB0Opv/8I0aNQpvv/02AODTTz/FlVdeiREjRuD888/HP//5z+bjffrpp5g5cyZeffVVjBw5EgcPHgQA/Oc//8GFF16I4cOHY+LEiXjmmWcAoN1zbNy4EZdddhnOPvtsTJs2DX/961/hdDpbxLx27Vqcf/75GDVqFJYuXYo9e/bgkksuwdlnn42bbrqpuf3pl6o+/PBDXHTRRRg2bBjmzJmD9evXt/v+vPzyy5g4cSJGjRqFRx55BKeuBX3qca1WK+666y6MGzcOw4cPx+WXX44vv/yy3dfX3vvR2e/El9fQ0e+nvTjbIssyVq9ejblz57bat2rVKlx88cVITk7G+eefjzVr1rTYP2/ePGzevBlVVVXtvrdEYUcmorB29tlny//73/9kWZblzz//XD777LPlxx57TK6trZULCwvlqVOnyi+99JIsy7J84MABecCAAbLVapVlWZZ3794tDxkyRF61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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Plotting\n", "bwdf_plotter = BWDFPlotter(are_cobis=False, are_coops=False) # If reading and plotting ICOBIs or ICOOPs set args accordingly\n", @@ -761,7 +12788,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "id": "2f27305d-e77f-4609-9940-1d36768d5069", "metadata": { "ExecuteTime": { @@ -769,7 +12796,18 @@ "start_time": "2025-01-10T10:19:06.453128Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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r9dDp9MpVBE1VStXrsR7772HOXPm4Oabb1a6HI+XkJBgW2Uybdo0zJw5EwsXLlS4Ks9jNBoxY8YMvP766/y5Zad7770XEydORPv27QEAsizjgQcewPz58/HWW28pXJ3nCQoKgiiKmDx5MpKTkwEAt912G5555hlMmTIFzZo1c+nzMwC5SFxcHNLT06vclpaWhsTERIUqoqbo66+/xr///W8sXrwY3bp1U7ocrzNw4ED8+9//VroMj/Ttt9+iuLgYZ86cwZkzZwBYeqaWL1+OkSNHcluPGty41F0QBPTt2xdHjx5VpiAPFxUVBQDo1KmT7bY+ffrAbDYjKyvL5W0RnAJzkdtuuw2bNm2yfZ6bm4vDhw9j2LBhClZFTcmePXswf/58fP311ww/dkhNTcW3335b5bYTJ06gXbt2yhTk4Tp27Ig//OEP1ZZzG41GmEwmpcvzSDNmzMA777xj+1yWZRw8eBCdO3dWsCrPFRoaioEDB2L79u22244dOwZ/f3/Exsa6/Pl5GKqLFBYWYvLkyYiOjka3bt2wdetWDBw4EG+++abSpXkkURSxaNEiAMCOHTtQWlqKlJQUAMCTTz5pW01HFcaNG4eQkBAMGTKkyu233norevTooVBVnuvgwYN47LHHcOutt6JDhw44f/489u3bh88//xx9+vRRujyv0KtXL3z33XcM3LX4+eef8eijjyIpKQnx8fH48ccfceXKFXzzzTdo1aqV0uV5pMOHD+Oxxx7D7bffjmbNmmH16tV46qmn8PDDD7v8uRmAXKi4uBjbtm1DTk4OevTogUGDBildkscym834+OOPa7zv2WefhUrFwcobzZs3r8bfxJOTk922k6q3yc/Px//+9z/k5+cjIiICt912GyIiIpQuy2vMmzcPd999N/8xr0NeXh62bt2KgoICxMXFITk5GQEBAUqX5dHS09OxZcsWyLKM/v37u+3nFwMQERER+Rz+Wk1EREQ+hwGIiIiIfA4DEBEREfkcBiAiIiLyOQxARERE5HMYgIiIiMjnMAARERGRz2EAIiLycaIo4tlnn0Xfvn3x9ttvK10OkVswABER+bgLFy7AYDBg586dOHjwIMrKypQuicjlGICIvFzfvn2xfv16pctwmy1btmDgwIFOeaznn38eM2bMcPrjerL9+/djxIgRKCgosN3Wrl07bN++HTfddBPS0tJs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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# One can also compute and plot BWDF for a single site of the structure\n", "bwdf = feat_icoxx.calc_site_bwdf(site_index=1)\n", @@ -790,7 +12828,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "id": "a9354732", "metadata": { "ExecuteTime": { @@ -832,7 +12870,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "id": "a271f2f0", "metadata": { "ExecuteTime": { @@ -840,7 +12878,18 @@ "start_time": "2025-01-10T10:19:11.230354Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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MJqZFTVEVEM+3SLIZDKhb9++WLx4MU6dOoU5c+bguuuuczn/l19+waOPPoqkpCQfRklEREREFAL0kjJc+mQ4i+TQnGOihoiq4re9nGNjYzFu3Dhs3boVhw8fxpNPPomUlBTduRUVelvaERERERFR7XHpky+E6W3PzcolIqqC3xI1lV155ZV48cUX8fvvv2PChAn+DoeIiIiIKPjpVtQwgWC0CKfel86e/57nzJmDpUuXYs6cOR5fi4gCi9nfAQDAvn37MH/+fCxcuBCnTp3ydzhERERERCGKiRojOe0VCNdZ+iQa8Hvu37+/x9cgosDkt0RNZmYmPv30U8yfP7/aHZ7Cw8N9FBURERERUahgjxpvq9j9CWy6jzAhRkSu+TRRU15ejtWrV2P+/PlYs2ZNtb1nrrvuOowaNQpDhw71UYRERERERCGCS5+8ypH1J2xrHtB9jM2EiagqPknU7Nq1Cx999BEWLVqErKysKucmJSXhvvvuw6hRo3DllVf6IjwiIiIiohDEZsLedPrLR9HYxWOCAdfftWsXysvLYbVacc011xhwRSIKFF5L1GRkZGDBggWYP38+Dhw4UOXcsLAwDBw4ECNHjsTNN98MUQyIHsdERERERKGFS58Mk396exWJGs8TYgMHDkR6ejqSkpJw4sQJj69HRIHD0ERNaWkpVqxYgY8++gjfffcdHA5t46zKOnbsiFGjRmH48OGIi4szMhQiIiIiIqoKlz55VYVoqeJR/p6JyDVDEjVbt27F/PnzsWTJEuTl5VU5t2HDhrj33nsxatQotGzZ0ojbExERERFRjXHpkzfFOwpdPiYwIUZEVah1oub48eP45JNPMH/+fBw5cqTKuVarFbfddhtGjhyJvn37wmQy1fa2RORF2dnZ2Lp1K9LT05GdnY2LLroIV155Jbp06cIliUREREHG4bRD866cCQRDlPz8IZIqsl0+bkSPGiIKXjVK1BQVFeHzzz/H/PnzsX79ekjVvJC3b98eo0aNwt13342EhASPAiUiz3388cc4evSoPH7iiScQFhaG/fv349lnn8WqVatQXl6ueV6jRo0wYcIETJw4EWazTzeLIyIiIi/JLToLzTt09qgxRNa6qUiu4nHu+kREVanRJ66GDRuisNB1CR8ANGjQAPfccw9GjRqFtm3behQcERnr448/xg8//CCPJ0yYgC+//BL3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duzYgWeeeQZt27bVnX/o0CG88soruP7669GwYUOMGjUKy5cvR1FRkTfDJCIiIiIKfu4sa2KPGreVnVX26cw12WCx2HTn6jUTltxZilaFFi1aIDY2Fi1atPDoOkQUeLyaqKlMEAR06NABzz33HH755RccO3YMM2fORK9evWCxaDPMmZmZ+Oijj3DHHXegfv366NevH959912cPHnSVyETEREREQUPN6plJFa1u82ef1wxLhTCXM7VW/rkdKO5MxGFJp8latQuueQSPPLII/juu+9w9uxZLF68GHfffTfq1aunmVtaWoo1a9bgn//8J5KTk9GpUyc/RExEREREVIe5s6yJS5/cJpScUYxLRG1/zvP0lj6xmTARueK3RE1lMTExGDp0KBYuXIgzZ85g3bp1mDBhAi677DLNXEmSsGPHDj9ESURERERUh7GixlCWilzFuMIU63KuoJOocae5MxGFpoBI1FRmNpvRo0cPzJgxA7///jv279+Pl156CZ07d9bd+puIiIiIiNzgTv8Z9qhxW5ijUHnCmuByrmjS9qhxOvi7JiJ92leMANOqVSu0atUKU6ZMwenTp/HVV19h5cqV/g6LiIiIiKhucWtZE7fndle0s0QxNkVqd7k9TzRZtSdZUUNELtSpEpWLLroIDzzwAFasWOHvUIiIiIiI6hYufTJORQkiJWWiJSz+cpfT9ZsJs6KGiPTVqUQNERERERHVEpsJG6M4G85Ft2tORzdq6/IpeokaSWIzYSLS59dEjd1ux9y5c9G9e3c0aNAAMTExaNWqFSZNmoSMjAx/hkZEREREFFxUSZiVsXobd7DKo1qfDYV49FvFqUxLGOIvucrlU0RRJ1HjZKKGiPQZ1qMmKysLgwcPlsfNmjXDu+++63J+UVERBgwYgHXr1inOp6amIjU1Fe+//z4+//xzdO/e3agQiYiIiIhClypR84ctFvsi49GmKLvSHPaoqVJ5MXD0e83po2Gx6JCY4vJposkEJ1TfknN7biJywbBEzbp167Bx40Z5/PDDD1c5f8KECZokTWXZ2dkYOHAgtm/fjmbNmhkVJhERERFRaFIlapyCAElQTWFFTZWcOX/qLkk4JjbEtaKpyudKEFC5WbPT6dnvesWKFSgvL4fVqtOomIjqNMMSNT///LN8nJycjDvuuMPl3AMHDuD9999XnBNFEfHx8cjJyYHj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JxM1RKSPiZq/2e12zJ07F6+88gqOHTtW7Xyz2Yx///vfeP31170fnJc5nRLyStgo1ltiwy0QxZp/62Kk4uJixTgvL89PkRAREZFfOB2aUxK0C50kZwhW1OhUthTlprtM1MRGJNXqNk7BpDyh2vK7pv7zn/8gJycH9erVw6uvvurRtYgosHg9UXP27Fn8+OOP2LZtG06cOIHs7GwUFRVBkiRs3rzZ27d3y7Fjx3DXXXdhx44dbj/HbrcjPT3di1H5Tl5JBfq+st7fYQStryf1QL1Iq19jqFevHqxWK8rLz70R+fbbb5GWloaUlBS/xkVEREQ+oldRIwiQNEt4QrCiRjRpTpWW5bicbotMrNVt1BU1cHj2RemiRYuQnp6OpKQkJmqIgozXEjWpqal4+eWXsXjx4hpv63vrrbciNTVVHu/Zswf16tWuxLA6Bw8exE033YSMjAz5XFRUFPr06YOePXuicePGiImJQVZWFvbt24fvv/8eW7du9UosRN5iNptx/fXXY926dQCA7OxsdO/eHdOnT8egQYNqtAyKiIiI6iAXS5/cmRfs7OXlmg9FJsn1siRrZINa3UeCsRU1RBS8vJKomTlzJiZNmoSysrJaPX/AgAH4+uuv5fH+/ftxww03GBWe7OzZs+jTp48iSfOPf/wDL730Eho00L4A33nnnZg2bRp+++03vPrqqygpKTE8JiJvmTRpkpyoAc7t6DR06FDUq1cPffv2xU033YQuXbqgWbNmtWqQR0RERAFMt5mwTrImBLfn/vPITlyhOpdccdblfEt0zXd8AgBJUFXUMFFDRC4YvuvTU089hfHjx9c6SQOc2zbYZrPJ43379hkRmsaECRNw/PhxefzKK69g7ty5ukmayq688krMnTsX77zzjlfiIvKGW265BS+++KLmfE5ODj799FM88MADaNGiBS666CLcddddWLx4saa3DREREdVRuttza7+YkUJw6VOus2bvd8Ljm9TqPuoeNYKTPSKJSJ+hFTWLFy/GSy+9pDh3ww034P7770eXLl3QuHFjxMXFVXudqKgo9OzZU66q8Uai5ptvvsHChQvl8V133YX//Oc/NbpGdVsb1xWx4RZ8PamHv8MIWrHhgbOs6Mknn0SHDh0wefJk7N27V3dOZmYmli1bhmXLlqF+/fqYMmUKJkyYAFE0PK9LREREvqLbo0anI00I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X3xRTnpXJggCEhISUFFRoamucTqdWLRoEVatWoW3334b9913X43uvXHjRgwcOFBzXQCKJU9nz55FRUWF4vHi4mIsWLAA27Ztw++//16j+xIR1UVSRYliXCGKsIRHauZZ/k7U2EIgUQO7ssrIYfxHIrdYorSfP8oLziKCiRqikGf4q5Ioivjggw9w/fXXY8KECSgoKKjR86OjozFjxgw88MADRocG4NzW4a+99po87tOnD+655x6v3Os8m80W8stCyD8SExNxySXu/bHPyMhAefmFN2T169dHZKT2jZyesDCdbT7J6yIjI1G/fn3FOUmSUFBQgLy8PDh11rqfOXMGb7zxBt566y089thjmDp1ao1fnxwOB+655x4sWbJEcb5+/foYNWoUhg0bhtatW8NqtQI41zdm+/btWLx4MebPny9XSBUWFmLEiBH466+/FL3JqvLLL7+gf//+iiVOERER+Oc//4khQ4agXbt28v8fJUnCiRMn8P333+Orr77CypUrYbfba/SzEhHVeapETblggjVML1FjgV1QVawGaaJGVCVqnILVL3FYo+przpUXZLn9/ObNm+PkyZNo3LgxDh06ZGRoRORnXksfjx49GoMHD8acOXPw4Ycf4vDhw1XOv/jii3Hfffdh4sSJiI/XlgEaQb3kKTIyEu+8845X7kUUCN5++22353bo0AG7du2SxzNmzMC9997rjbDIILfffjsWLFig+5gkScjJycHu3buxbds2rFy5Ejt37pQfLy8vx/Tp0/HDDz9g5cqVuOiii9y+78MPP6xJ0gwdOhRvvfWWJnEEAOHh4bjxxhtx44034rHHHsPo0aPx448/yo8/88wzSExMxNixY6u8ryRJGDdunCJJ06JFC3z99de6CUlBEJCSkoJRo0Zh1KhROHHiBGbOnIlZs2a5/bMSEdV5DmVD4AqIMJm1jYPNJivsogBULpIM1kSNU/k7ccA/X6iGxSRqzlWodqSqSmFhIQoKCjT92Yio7vNqnV9sbCwmT56MyZMn49SpU9i2bRsyMjKQnZ2NiooKxMfHIzExER07dsTll1/uzVAAAEuXLlX0wnn++efRpEkTr9+XiMjXBEFAfHw8evXqhV69euGZZ57Bpk2b8OSTT2LLli3yvO3bt+Omm27C5s2b3VpS9uWXX2LOnDmKcw8++KDbScHLL78c3333Hfr376/o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7SQNAKxYsQJfffUV7r///hpttX7eNddcg6VLl+Kbb75BTExMjZ9PRFTnlBUohiWiCdYqEjVwmqDpkBJES58qck8oxnkmK6LiG/kpmnMskdpdp8oKMv0QCREFEkMrar744gs89dRTimVKZrMZV111FRo2bKjYknfgwIEoLCxEZmYmDh48KC9NOK9bt27sHUDkQ40bN1b0g1LvmlSVYcOG4Y477sCGDRvw9ddfY//+/cjMzERJSQnq16+P5ORk9OjRA/3793e5/XNVoqOj8cUXX2D37t1Yvnw5fvnlF5w4cQKFhYUoLy+X51Ve9lTZ7bffjltuuQWLFi3C999/j99++w15eXmIi4tDo0aNcNVVV+Guu+5SJI9iY2NxySWXyOPqqi8SExMV86tb0lUbcXFxinvoMZlMsNlsiI6ORmJiIi6++GI0a9YMHTp0QIcOHXSrUjwRGxuLqVOn4qmnnsL69euxYcMG7Nu3D2lpaSgsLIQgCIiJiUGTJk3Qvn179OrVC9dee22t7mWxWNCvXz/069cPwLmS782bNyM1NRWHDx9GZmam3IMoOjoacXFxuPLKK9G2bVvcdNNNblVwEREFFXVFjckMW3iki8mAWTChTDQjwllpJ8fy4KmosRcrEyAVTnONlv56gyWqvuZcRYF2dyoiCi2CZFDzF7vdjssvvxx//fXXuQsLAh577DE8+eSTcsKl8vrJyrctKSnBt99+i9dffx0//vgjAODiiy/GV199VaNv3euK/Px8xMbGIi8vz7BvdUtLS/Hnn3+iadOmCAtz3SSOiIi8g6/DRBRonPOug3jiwlLe2cmt0e+6OWjSqqvu/CffGYjHs75BvP3CDnm471vgst7eDtUnTr/WDBcVXmhEvzLmSgyYeNiPEQEluacQ/qayqufUbcvR8Jrbq33uG2+8gfz8fMTExGDixIleipCIjFKTPIBhKeQvvvhCTtIAwIwZM/Dqq6+6VRUTHh6OgQMHYtOmTZg1axZMJhOOHz+OHj164OjRo0aFSEREREQUMqRS5dKnUtEEq811RY1FElEmqprYBlFFjVBRqDrj/6S6NSoB6n2eKopz3HruG2+8gWnTpml24iSius+wRM33338vH1933XUYP358ra7z8MMP45133gEAZGVlYeTIkUaER0REREQUWsryFcNzS59cN6A1w6RN1ARRjxrRUaIYC4L/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gB49esiej46Oxi233IItW7bg008/hdlsdj43b948n+OaMmUKFi5cKOubOXMmbr/9dp/nIiIiIiIKhdLCU7K2XRDQsLH7QzpqSxTc1Lyx+Fd+4Kw95ni0astyA+6YkxqjUpB/ZCs9tdvDaCKKFAHd+vT333/jvffewxdffOE2MQOcqQVzxRVX4I477sDAgQO9nvuGG25AdnY27r//fgDA1q1ba7hCbvr06Xj33XdlfQ899BD+85//+DQPEREREVEoleadREyVtgMCUpqqm6jRidGunZYSwBTv17w2CMi2RSOpSWu/5olUokaDIo0eKbZzpz1V5h8OYUREFAyqJ2qKi4vx+eef47333sPGjRs9jmvSpAkmTZqEW2+9FWlpabW619VXX+1M1BQUFHh93VtvvYWnn35a1jd58mS88MILtYqDiIiIiChUJFulvA0BGq3Ow+ja0WtiXDut/q+o2WeOQ8NSMwRB8HuuSFUmGACcS9RYS06ELhgiCgpVEzWTJk3C/PnzXQr+niWKIi655BLccccdGDFiBETRv51XjRo1cj52eFn9fPXq1bjrrrtkfUlJSWjRogVeeukln2O48847YTKpW6yNiIiIiMhbkuLIZjvUT3qY9DGwCgJ0knSuU4WtT+vi0tBKw0LC1SkXjQDOHYculWeHLhgiCgpVEzXvv/++2/7U1FTccsstmDx5Mpo2bara/WqTeT948KBLUic3NxcPP/xwrWKYMGECEzVEREREFDKSoqivIwCJmih9NCpELXRV76XCEd3r4tIwIf58v+eJZFbRLGsL1gIAwNy5c1FZWQmDwRCCqIgokAJao6Z///644447cOWVV0Kv19d8QS089thjAZmXiIiIiKguUCZqpAAkamJM8agQNYipei8/tz6d0Jtx3BiNtl2H+BldZLMptp1p7WcSZL7U9ySiukX1RE1cXBxuvPFG3H777WjXrp3a07t49tlnfRrfrl07Z10bNVQ9eYqIiIiIKOgcQVhRY05ApaiRd/q59enP+HQ0yLYjNq2xX/NEPG2UrKlRbHUjosijaqJmzpw5GDt2bFgnL84//3ycfz6XVxIRERFRZBCtZbK2Hf7VgXQnJjYJFS6JmtpvfbJDwG8JDdG1IMPPyOoBUb4zQYQ9RIEQUbComqi59dZb1ZyOiIiIiIhqoK84JWvnatSvnxgTm4piUf7RwVqW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TX0QvqETcOYD8tNPP40JEybgf//7H9566y1YLBbs2LEDO3bscBkfHR2Ne+65B3feeSfS09NDEDHVVQUFBR6fmz17Nu688063z7Vp0wbLly9Hz549sX//fgBn3gMfeughHkFKXtuyZQuee+45Z/vqq6/GqFGjQhgR0Tn5+fkYN24cHA6Hsy81NRX//e9/QxcUBQ1/rqe6oLy8HGPGjEFlZaWzLyoqCrNmzQphVJGDW58iREVFhaxdmyKIymuUc1L9cfDgQbz44ov48MMPYbFYqh1bUlKCd955By+99BJOnToVpAgpEng6KrRv374ekzRnJSUl4c0335T1ff/99/jnn39Ui48il3LLU3x8PP73v/+FOCqiM+x2O8aOHYvDhw/L+t99910kJiaGKCoKJv5cT3XBbbfd5nI62csvv8xDHlTCFTURQpk1r5rZ9JbyGl+LEVNk+PTTTzFlyhTZh+jExEQMGTIE7du3R3R0NAoLC7F161YsX74cxcXFyMnJwcsvv4yPP/4Yn332GYYPHx7CPwHVFZ6Wck+bNs2r64cNG4a2bdti165dAM5snfr2229x3333qRYjRabnnntO9sPlrFmzuCKQwsa9996LJUuWyPruueceXH755aEJiIKOP9dTuJsxY4ZLfcDrr78et912W4giijwRm6h59dVXnUviA+mSSy7BpZdeGvD71ERZCb42WfPy8vJq56TA+OWXX/B///d/Ab9PgwYN8Oijj1Y75tNPP8WECROcR22fPcHpP//5j9sP1QUFBXjyySedv4nOzc3F5Zdfjh9//BEXX3yx+n8IUs1HH33ksUi0mnr16oXx48e7fc7de4woij4l+i677DJnogYAVq1axURNGLvggguqPc1LLS+88AJuueUWt89t3rwZM2bMcLYHDhzocSzVfRaLJWjvCffddx+aN2/u1xwvvfSSy+quyy+/HC+99JJf81Ldwp/rKZx99tlnLifF9uvXDx999FGIIopMEZuoWbRoEVavXh3w+8THx4dlosbTloLqKK/hG3pwbNq0yWULRyC0b9++2kTN0aNHMWXKFGeSBjhTWLO6zHh8fDxmz56NpKQk5755i8WCG2+8EXv37kVUVJRq8ZO6li5dii+//DLg9ykpKfEpUdOqVSufvm+6dOkia+/Zs8en+Ci48vLykJubG/D7KD+gnGW1WjFhwgTnliej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SEpKClauXMmq8PVYYWEhBgwYgC1btsj6RVFE586d0a5dO0RHR6OwsBBbtmyR/TBw1tChQ/H999+zGDX57J133nH5gdJgMGDAgAFo3LgxSkpKsGHDBvzzzz+yMQ0bNsQvv/zC9y4KmNdeew333nuvsz169GiX+khE1fnyyy9x/fXXy/oaNGjg8gsSb82ePVu20oIiV0VFBYYMGeKykqZ58+bo1q0bzGYz9uzZg3Xr1sl+KZuUlISVK1eibdu2wQ6Z6qjff/8dAwcOlPXFx8dj3LhxtZrv2WefRXx8vP+B1VNM1ASBzWZT5UPrTTfdhI8//tirscXFxRg/fjy+/fZbr8afd955+Oabb/hmTsjLy8OUKVPw5Zdf+nSdIAiYOnUqXnjhBZhMpgBFR5Fu3rx5uP32270+3r179+74v//7P2RmZgY4MqrPmKghf73xxhu46667VJvParXKViFSZCspKcGNN97odbH9li1b4ptvvkH79u0DHBlFkoULF6pag+bo0aP8+cwPTMVHqJiYGCxevBhfffUVLrjgAo/jGjdujOeffx5btmxhkoYAAImJiZg/fz7++OMPjBkzpsaaH8nJyZg8eTI2bdqE2bNnM0lDfhk3bhx2796NO++80+NvYQRBQPfu3fHpp59i3bp1/CGAiIgiWnR0NL7++mssWrQIPXv29DiuUaNGmDFjBrZu3cokDVEdxxU1QSBJEt58802/52nbtm2tT9I5ceIENm3ahKysLNjtdiQmJqJ9+/Zo166d33FRZJMkCbt27cI///yDgoIClJWVITo6GgkJCWjTpg1atGgR6hApQtlsNmzevBn79u1DYWEhoqOjkZaWhs6dOyM1NTXU4VE9UlFRIVvlZTAYEBMTE8KIqK7Ztm0bfv/9d9Xmu/POOyEIgmrzUd2SlZWFjRs3On+uT0hIQPv27ZmcIb/s378fP/30k2rzTZw4kQfU+IGJGiIiIiIiIiKiMMGtT0REREREREREYYKJGiIiIiIiIiKiMMFEDRERERERERFRmGCihoiIiIiIiIgoTDBRQ0REREREREQUJpioISIiIiIiIiIKE0zUEBERERERERGFCSZqiIiIiIiIiIjCBBM1RERERERERERhgokaIiIiIiIiIqIwwUQNEREREREREVGYYKKGiIiIiIiIiChMMFFDRERERERERBQmtKEOgIiIiKiu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F110kddj161bJ2sPHz7c62sBYOTIkT6N94W/ryEA9OrVy/m4oKDA7WqLqokMSZJw5513+lzAWU0nT56UtVNSUry+NlivWVVjx46VndS0c+dObNiwweN4u93usvLN1yLCVSkTi1VXSBERUf3CRA0REVGA9OzZEzabrVZfY8eO9elevmwriY2NlbWLioo8jq16vLHZbEbTpk1lz0tn6t1BkiQ4HA7nl91ud35VPQHq5MmTshU61ama4KnJ1q1bZe1OnTp5fW1txvtCeUR0u3btZG1Pr2HV17HqawgAx44dc7nPFVdcIWt/8cUX6NixI/73v//hxIkTKv1pvFdSUiJr+3K6VLBes6oSEhIwatQoWV91q2qWLFkiS0YlJia6XO8L5etT0/HyREQUubxfu0xERERhKy4uzuuxyq1LnlZdFBUVyY56Lisr83mlj5IkScjPz0dycnKNY32psZKTkyNrN2rUyKe4MjMzfRrvC+XKiKpbcmrL3SqooUOHYsSIEbKjnXfv3o27774bd999Nzp06IC+ffviwgsvxMCBAwP6ZwaAyspKWVuv13t9bbBeM6UJEybIajJ98cUXePnll93GrkzijB071qc/o1LV1TwAUF5eXuu5iIiobuOKGiIioghQtT6JWrz5YFsb3q4UiImJ8XrOwsLCWl8LuK4yUlMgXkdPr+H8+fNlxaKr2r59O9555x3ccMMNaNSoETp37oxZs2ZVu6LKH0ajUda2WCxeXxvM16yqYcOGoUGDBs52bm4uvv/+e5dx+fn5+Pbbb2V9/mx7AiCrsQT4tgKJiIgiCxM1RERE5JbVanXpq23Nnapf3hIEweuxNRWKDSXl66jGa+jptYmJicE333yDH374AYMHD652BdTWrVvx0EMPoWnTpj6fMuaN6OhoWbvq6qyaBPM1U95n/Pjxsj5325/mz58vWzHUsWNH2alRtaFcQaN8/YiIqP7g1iciIiJyS7n1qH379ti+fXuIoqlefHw8jhw54mwXFxf7tHUqUKtKgDOvY9XYjh07VuuTgbw1YsQIjBgxAjk5OVixYgV+//13rFq1Ctu2bYPD4ZCNzc/Px/jx41FeXo5bb71VtRiUNWJOnz7t9bWheM3OmjhxIl588UVn+6effkJ2drasGLIyeePvahrA9fWpurKHiIjqF66oISIiIrcSEhJk9WwOHjwYtitXlDVv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+5NPPsGNN94Ywogiy6lTp9CiRQuUlpYCAJ566ik8+eSTIY4q9B544AG8/PLLAIDExEQcPHiwxpVgREQU+bj1iYiIiOo9ZQ2b7t27hyiSyJSWliY7Bn327NnOpE19lZeXh3fffdfZfuSRR5ikISIiAEzUEBERUT2Xl5eHr7/+2tlOTk5GmzZtQhhRZHrooYecpxnl5ubKkhT10euvv+48japRo0aYOnVqiCMiIqJwwUQNERER1WvTpk1DeXm5sz1hwoRq6wNR7cTFxeH55593tmfOnOlSG6i+OHXqFF555RVn+7XXXoPRaAxhREREFE74UwgRERFFjMOHD+Oqq67Crl27ahxrsVgwdepUzJ0719lnNBoxZcqUQIZYr91yyy248MILodFokJ+fj1mzZoU6pJB45plnUF5eDo1GgxEjRuDKK68MdUhERBRGWEyYiIiIIsahQ4fQrFkzCIKA/v374+qrr0avXr3QpEkTxMTEoLCwEAcPHsSKFSvw9ttv4+jRo7LrZ8+ejbvuuitE0RMRERExUUNEREQR5GyipjYefPBBvPDCC34dC05ERETkL259IiIioohRmyRLixYt8MUXX+DFF19kkoaIiIhCjitqiIiIKKLs2bMHv/76KzZu3Ig9e/YgLy8PBQUFKCgogCAISEhIQHp6Onr16oWLL74YI0eOhFarDXXYRERERACYqCEiIiIiIiIiChvc+kREREREREREFCaYqCEiIiIiIiIiChNM1BARERERERERhQkmaoiIiIiIiIiIwgQTNUREREREREREYYKJGiIiIiIiIiKiMMFEDRERERERERFRmGCihoiIiIiIiIgoTDBRQ0REREREREQUJpioISIiIiIiIiIKE/8Pc1WyVSNm3ewAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "style.use('default') # Complete reset the matplotlib figure style\n", "style.use(get_style_list()[0]) # Use the LobsterPy style sheet for the generated plots\n", @@ -862,7 +12911,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "id": "dbd469bc", "metadata": { "ExecuteTime": { @@ -870,7 +12919,18 @@ "start_time": "2025-01-10T10:19:12.233244Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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xPT0dM2YMUM33HCDGjRooAkTJig1NTUQseEik5GRIafTqVq1atGUE0C5FRISolq1asnpdCojIyPY4QBAqSjyeO4cKmoAwEp+/bS8a9cuPf7447rkkkvUrVs3zZs3T1nsUUUhMjIyFBUVRSUNgHIvNDRUUVFRJGoAVBhF9qjJyS7FSADg4udToqZq1aoe7zscDi1fvlwDBgxQrVq19Je//EXr16+3JEBcHBwOhzIzMxUTExPsUADAEjExMcrMzJTD4Qh2KAAQcM7swpMx9Kgp2xo2bKjY2Fg1bNgw2KEA8JJPiZq0tDR9+OGHuvnmmwutijh16pSmTp2qtm3bqnHjxnrxxReVlpZmSbAovy70cQgLCwtyJABgjQtfz+hTA6AiKHJ7Ez1qyrQzZ84oIyNDZ86cCXYoALzkU6ImLCxMffr00eLFi5WamqpXX31VV199daHzt2/frjFjxqhOnTrq2bOnFixYoOwisvG4eF34jTO9aQBcLC58PaOiBkCFUESihh41AGCtEv/UnJCQoL/97W/asmWLNm/erFGjRikhIcHj3Pz8fC1dulR33nmnateurREjRmjjxo0lDhrll81mC3YIAGAJvp4BqEiKSsYUtS0KAOA7S7q6Nm/eXM2bN9dLL72kpUuXavbs2frss8+U4+EL+okTJzR58mRNnjxZTZs21eDBgzVo0CDVrFnTilD88t1332np0qXaunWrjh8/rpCQENWsWVMtWrRQr1691KhRo2CHCAAAAJQqp8MhFbXNk4oaALCUzel0OgOx8PHjxzV37lzNnj272OqZ0NBQde/eXYMHD9bNN99c6n1MvvvuOz3wwAPFxtmjRw9NnDhR9erVK6XIipaTk6O+ffvq8OHDLvf79++vUaNGlXjd9PR0xcXF6fTp04qNjfUzyvOysrK0d+9e1a1bVxEREZasCQDBxNc1ABWF89w5/X5F/UI/jxoyWFWefaYUI4IvkpOTlZqaqqSkJB08eDDY4QAVli8/ZwesYUi1atU0YsQIff/999q6daseeeQR1apVy+PcvLw8LV68WH369FFSUpJGjhypzZs3Byo0FzNnzlS7du282oq1dOlStWzZUitWrCiFyIr3zDPP6NNPP9X69etd/uzbty/YoQEAAOAiUVwPGnrUAIC1SqWza5MmTfTiiy/qwIEDWrp0qfr161fobx+PHTumiRMn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+fr++++9Plp37dq1LuO2bdtaHiOAwrVu3Vq33nqr0Rj29OnTeuGFF9y22fjL6XRq79692rp1q9LS0pSRkWF87Srohx9+cBkfO3bM0jjKq4iICD311FPG2Ol06vTp09q/f7++++47ozJx+/bteuSRRzR58mTNnz+/yO1JYWFhatmypb7//ntJ0sGDB9WjRw/9+9//Lra3DQCg5Jw5rsdve9z6lMcR3QBglYAlalJSUvT8889r3rx5ys317Qt3jx49XI6n3rx5s6W/Le/du7fLSSOff/6514ka8xai3r17WxpX06ZNfX7u9ddfd9ki1a9fP40aNcoYl+Xj0oGSePbZZ/Xpp58alRWTJk3SqFGjlJiY6Pfa+/bt0+uvv64PPvjAbZujN06dOuV3DBeDiIgI/fOf//T4mcPh0LJlyzR69Gjt3LlT0vl/7507d9aqVavUvHnzQtd94IEHdM899xjjNWvW6Oqrr1arVq3Uq1cv/d///Z9atmxJ02AAsFKO6/Z8j1ufqKgBAMsEJFEzceJEPfroo249V7zVq1cvff7558Z469atateunVXh6dZbb3VJ1Lzzzjt67rnnFFpMA7QjR44Yx/FK508TueWWWyyLq0aNGiU6Qcv8w2liYiKVPrioNWnSRHfddZfee+89SdLZs2f17LPP6o033vBr3VdffVVPPPGEsrKySryGP89WFCEhIerRo4c6dOigHj16aOXKlZLOn6g3cOBA/fzzz4WeunX33Xfryy+/1DvvvONyf+PGjdq4caP+8Y9/KCwsTG3atFHHjh11++23F5n4AQAUz/14bipqypNXX33V2Co8evToYIcDwAuWJ2qeeOIJPffcc36tMWjQII0aNcpI9Pz888+WJmrat2+vli1batOmTZKkw4cPa+LEicV+4Xrqqadc+tMMGjSoXB1NXl6FxMcr8actwQ7johUSpN4u/ho3bpzmz59vVOzNmDFDDz/8cIlPSnvuuef0xBNPuN2/7LLL1KRJEyUnJysmJkaRkZEuSYQffvhBixcvLtE7K7rKlStr3rx5atCggdEoOCUlRYsWLdJtt91W6HNvv/22WrZsqXHjxunEiRNun+fk5Gj16tVavXq1nnnmGV1zzTV65pln1KNHj4D9swDAxcytRw0VNeXKq6++qtTUVCUlJZGoAcoJSxM18+bNc0vStGvXTn/84x91/fXXq3bt2qpSpUqx60RHR6tTp05GVc3PP/9sZZiy2Wx69tln1b17d+PeP/7xD7Vr106tW7f2+MzHH3+sadOmGeNKlSoVWtZv1qlTJ509e9YY//3vf1fPnj1LFnwFZAsJKVfNblE6Lr/8ct17772aOnWqpPM/nP/zn//U22+/7fNaKSkpLv1UJGno0KEaM2aM6tWrV+SzU6dOJVHjh8TERPXt21ezZs0y7i1durTIRI3NZtODDz6oP//5z/rwww+1aNEirVy5UsePH/c4/4cfflDPnj01cuRIl2pKAICXsqmoAYDSZNmZvFlZWXr00UeNcWxsrD788EOtWrVK9957rxo1aqS4uDiv1+vcubNxvWPHDqvCNHTr1k19+vQxxpmZmerUqZP+/e9/u2xdOHXqlMaNG6e+ffu6NBF94oknvP7N/YYNG7R+/Xrjz9GjRy375wAqsr///e+KjIw0xu+99562b9/u8zpTpkxxqZZ74oknNH369GKTNJJ0kqPj/Wbeqrl7926vnqtcubLuueceLVy4UEePHtXPP/+sf//73+rfv7/H0/j+9a9/6d///rclMQNAReK29SksTLLbXefkUVEDAFaxLFGzYMECHThwQNL53i2LFi1ySYT46uqrrzauS9LQ0xtvvfWWywkjZ86cMY75bdy4sa688kolJCTon//8p/Lz8415/fv319///veAxATAe7Vr19Zf//pXY5yfn1+i/28uX77cuI6MjNRjjz3m9bN79uzx+X1wZT5euyR9fmw2m5o2baq//OUvmjt3rg4fPqwPPvhAdevWdZk3fvx4t5O7AABFc+a6JmoUHiZVMhXm+3h4CACgcJYlapYuXWpcDxkyRB06dPBrvfr16xvXgapAiYmJ0VdffaW77rrL5X5WVpa2b9+uX375xeXEKrvdrrFjx2rOnDmFNroEULoee+wxlx/0P/roI6P/lLcOHjxoXDds2FDR0dFeP7t69Wqf3gV35q/xCQkJfq8ZGhqqvn37avXq1S7/+/j999+Nk6YAAF4yH89dKUy2UNdTRamoAQDrWJZtKPiDUcGjU0uqYC+bgv1drBYdHa05c+Zo1apV6tu3r9tvdiWpZs2aGjp0qH766Sc999xzJGmAMqRatWoujfGcTqfHpsCFcTgcLhUcYWFhXj+7du3agGzNrGi++eYbl/GVV15p2dq1a9dW165dXe4FqkoTAC5WbkmY0NDzfwqimTAAWMayZsJHjhwxrq+66iq/1yvYdyK3FEop27Vrp3bt2snpdGr//v06fvy4bDabatasqdq1a/u19tdff+2ydcqbvhe++Nvf/qb+/fsb41q1alm6PlDWjR49Wm+88YaOHTsm6fxWpoLbGosSEhKi+Ph44/SgnTt3Ki8vT6Hmb0BNHA6HT1ukLmZ79+5VQkKCojycAlKcXbt26dNPP3W516tXL6tCk3S++XtBvvRLAwB46lFTSbawMBXcSOqkmTAAWMayRM25c+eM66K+WbfZbF71ByjYoNNTlUug2Gw2XXrppbr00kstW7Owk6SsYnW8QHkTExOjxx57TA8//LBx77XXXvP6+TZt2mjZsmWSzjcQnzVrloYPH17kM4888oi+/fbbkgVcij755BNt2bLFGNevX99tu6e/1q9fr3Hjxundd99Vq1atvH7uyJEj6tOnj3IK/ABw9dVXq127dh7n79+/X6dPn/bplwGnTp3SF198YYwjIyNdttYCALxgqqixhVaSjYoaAAgYy/bwVCtwfPKF32r7Y+/evcZ19erV/V4PwMXtr3/9q5KSkozxmTNnvH7WnLgYOXKk3n33XY9J5dTUVN1555169dVXJZ3fGlmWffLJJxo3bpzx5/333w/Ie3bs2KE2bdqod+/eWrlypcspWmYZGRmaNm2arrrqKm3dutW4HxoaqqlTpxa6vXTXrl1q1qyZbrrpJv373/926S3kybZt29StWzeXHjh33nmnTz2IAAAemgmHVXJrJkxFDQBYx7KKmsTERGPf/4YNG9S7d2+/1vv666+Na/OpHQBgFhERob///e+67777fH524MCBeuONN7RhwwZJUnZ2tu655x49/fTT6tixoxISEnT69Glt27ZN3377rZGEuPrqq/WnP/1JI0eO9Ol9W7du1Ycffujxs++++85lvHr1av3zn//0OPeuu+4qU9UhTqdTn376qT799FPFxsbqhhtuUHJysmrUqKHc3FydPHlSKSkp+uGHH9xOdqpUqZLmzZvndlS3J6tWrdKqVav017/+VZdccomaN2+upKQko7fZkSNH9MMPP2jLli0uybbk5GS9/PLLlv4zA0CFkOupoqZSkXNQdlxzzTWqU6eOatSoEexQAHjJskTNDTfcoM2bN0uS5syZ41eiJj8/XzNmzDDGHTt29Ds+ABe/e++9Vy+//LJ++eUXn54LCQnRJ598os6dOyslJcW4/8svvxS61rXXXmskJXy1detWjRs3zqu5a9as0Zo1azx+1qpVqzKRqKlfv74aNGjgcppSenq6Pv/8c6+eb968uaZOnaprr73W53fv379f+/fv9+odixYtokITAErAae4XWYmKmvKkJN+rAAguy7Y+de/e3bheuHBhoUfW2my2Ytd66aWX9Ouvvxrjbt26+R8ggIteaGhoodUnxalVq5Y2bNigRx99VDExMYXOa9KkiV577TV9++23lhwjfTG45pprtGPHDn399de67777lJycXOwzkZGR6t27txYuXKiNGzd6laSpW7euBg0apGbNmnl9OlebNm00c+ZMbdy4UZdccolXzwAATHLNx3OHUlEDAAFkWUVN165djd+oOhwO3XHHHfr888/VokULn9Z566239OSTTxrjzp07q3nz5laFCaAMa9OmjZ566ilj7Etj2gsGDBigAwcOuG2tueyyy4p9NioqSi+88IL++c9/6rvvvlNKSopOnz6t2NhYJSYmqkmTJmrUqJHLM9dcc41LzN58vWratKnLMyXlTTXNrbfe6vLPHsgKnA4dOqhDhw6aMmWKfvvtN/344486ePCgTp06JbvdrtjYWFWtWtX492i3231av169enr33XclSXl5edq5c6f279+vkydP6uTJkzp9+rTsdrvi4uJ0+eWXq3nz5iTTAMAC5ooaW6UwDxU1JGoAwCo2pzdHMHnp448/1u23326MK1eurIceekgPPPCAsSfSbrfL4XBIkkvvgJSUFI0bN04ffPCBcS8kJETffvutrr/+eqtChBfS09MVFxdn/IBqhaysLO3du1d169ZVRESEJWsCQDDxdQ1AReB0OPR7HdfTRRO+/kqnHn1MOd9/b9yrMuE5Rd1zd2mHBwDlhi8/Z1tWUSNJt912m0aOHKl//etfkqSzZ8/qmWee0XPPPac2bdqoSZMmLsmZ559/Xnv27NHq1au1fft2t/XGjx9PkgYAAAAIFnN/Gkm2SpWkUCpqyotevXrp6NGjqlGjBv1qgHLC0kSNJL366qtKT0/XW2+9ZdzLz8/XunXrtG7dOpe5Y8eOLXSdESNG6LHHHrM6PAAAAABecmskLEmVKslm3vrkaR7KhB9++EGpqalKSkoKdigAvGRZM2FjwZAQvfnmm5o1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3+t9/fXXxnXdunX9Xg8AAACAD4qtqDEV51NRAwCWsCxRc8MNNxjXc+bM8Wut/Px8zZgxwxh37NjRr/UAAAAA+MatoqaSKTFTyXXrExU1AGANyxI13bt3N64XLlyo1atXe5zn0oCsEC+99JJ+/fVXY9ytWzf/AwQAAADgNfPx3LZKrlufbHbXrU9U1JRNrVq1UnJyslq1ahXsUAB4ybJETdeuXdWgQQNJksPh0B133KHNmzf7vM5bb72lJ5980hh37txZzZs3typMAAAAAN4wJV5spgoaKmrKh0OHDik1NVWHDh0KdigAvGRZosZut2vChAnG+PDhw7rxxhv1j3/8Q0ePHi32+ZSUFPXr109/+tOflP/fL/IhISEaN26cVSECAAAA8JIzz3w8t6lHDRU1ABAQliVqJOm2227TyJEjjfHZs2f1zDPPqFatWrr++us1dOhQl6O5n3/+eQ0bNkyNGzdWkyZN9MEHH7isN378eF1//fVWhggAAADAGznmihrTqU/mipo8KmoAwAqhxU/xzauvvqr09HS99dZbxr38/HytW7dO69atc5k7duzYQtcZMWKEHnvsMavDAwAAAOAFZ55rj5piK2rMFTgAgBKxtKJGOr9d6c0339SsWbMUExPj8/MxMTGaOXOmJk2aZHVoAAAAALzkzHE99anYHjXmxA4AoEQsT9Rc8Kc//UkHDhzQ888/bzQZLsoll1yiJ554Qvv27dO9994bqLAAAAAAeMOceAk1JWrcKmpI1ACAFSzf+lRQXFycxowZozFjxujQoUNat26d0tLSdOLECeXm5qpq1apKSEhQ69atdcUVVwQyFAAAAAA+cOaaKmrCXBM15gob83HeAICSCWiipqDExETddtttpfU6AAAAAP4wJV5spooaW6jpR4l8EjUAYIWAbX0CAAAAUH45zcdtmypqZErUUFEDANawtKJm8ODBxvXbb79d5tYDAAAA4KVc8/HcVNSURy+++KLOnj2rypUrBzsUAF6yNFEze/Zs49qKxIrV6wEAAADwjltFjbmZMBU15cJdd90V7BAA+IitTwAAAADcmBM15mbC5kQNFTUAYA0SNQAAAADcmRM1psSMeUxFDQBYo9ROffJVfn6+cW2324MYCQAAAFDxOPNMiZewMNexuaImz7RVCmXCzp07lZeXp9DQUDVo0CDY4QDwQplN1Bw/fty4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N95onOI0d+5crV69Wr169VJSUpJOnDihJUuWaPv27S7PDR061KowXbzxxht65plnXO517txZf/3rX9W4cWPl5ORoy5Ytev3117Vp0yZJUm5urv74xz8qMTFR//d//xeQuAoKCwtTx44d1b59e7Vo0UJ16tRRlSpVlJmZqd9++03ffPON3nzzTR0+fNh4ZtKkSapUqZJeeeWVgMcHAACAi49565NbL5oLqKgp81auXKnU1FQlJSUFOxQAXrI5LSy9eOaZZ/SPf/xDkvSvf/1LDz74oNuczZs369prrzVOiCrO8OHDNXXqVKtCNOzdu1cNGzZ0qV557rnnNHbsWLe5+fn5uu+++zRz5kzjXlJSknbv3q3IyEjLY1u0aJFefPFFDR8+XLfddptiYmKKnJ+RkaF7771XCxYsMO7ZbDatWbOmRNu00tPTFRcXp9OnTys2Ntbn5wEAAFC+ZX35lY7/cbAxticnK3H9Ord5h2/qqLxffjHGVadNVeTN3m3hR+lITk42EjUHDx4MdjhAheXLz9mWbX2SzidVBg4cqIEDByo1NdXjnBYtWmju3LmqVNg+1wJ69eql119/3coQDU899ZRLkmbgwIEekzSSZLfbNW3aNJdmvampqZo8eXJAYrvlllu0Zs0a3XPPPcUmaSQpJiZG77//vq699lrjntPp1MsvvxyQ+AAAAHBxc6uoCaWiBgBKi6WJmoSEBL333nt677339MILLxQ6r0+fPtqyZYtuueUWhYWFuX1++eWXa+rUqfr4448LbTbsjz179rj0mQkLCyt2m1BISIhLg2NJeuGFF0rcT6a4d/kqNDRUf//7313uLVu2zOvKJQAAAOACp7lHjYfv2SV61ABAIFjWo8ZXjRs31qeffqqMjAxt27ZNR48eVUREhOrWrasrrrgioO9euHChHA6HMb711ltVs2bNYp9r1aqVmjdvri1btkiSjh07phUrVpSZU5Y6duzoMj579qwOHToU8FOzAAAAcJEx/bLPRkUNAJSaoCVqLoiJiXHZUlQaPvnkE5dx3759vX62b9++RqJGOt9PpqwkaipXrqyYmBhlZGQY906ePEmiBgAAAD5xS7iEceoTAJQWS7c+lQdnz57Vd99953Lv+uuv9/p589wvv/zSkris4HQ6de7cOZd78fHxQYoGAAAA5VaOuaKmkP6SptOgqKgBAP9ZWlEz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J8ftuUceeUTDhw8PWFwXOBwOffrpp/r000+Ne1WqVJHD4dCZM2fcTni6oFGjRvr888+VnJwc8BgBAABwETJvfSqsRw0VNQBgOcsqalasWKGVK1caf7p06VLk/FGjRrklaQo6ceKEevfurZ07d1oVoptKlSrp448/1uOPP65Kpr9kzp4965akiY2N1bRp0/Tiiy8GLKZWrVpp+vTpuuaaazx+furUKaWnp3tM0lStWlXPPvustmzZoksvvTRgMQIAAODi5jT/srKQRI1CTRU15i1TAACfWVZRs379euM6OTlZt99+e6Fzt23bplmzZrncCwkJUdWqVXXy5Enl5+dLktLT0zVq1Ch9/vnnVoXpxm63a/z48br33ns1depUff7559qxY4fy8s7/NiAiIkLNmjVT7969NXToUNWoUSNgsVx439ChQzV06FDt2rVLixcv1sqVK/Xjjz/qwIEDLs2MY2Ji1KhRI7Vo0UJ/+MMfdPPNNyussL9EAQAAAC85c7JdxrYwz82EbaGm+3n5gQoJJfTNN98oOztb4eHhbH8CygnLEjXbtm0zrgcMGKCQkMKLdSZPnuyScOjZs6dmzJihWrVq6cSJE/rb3/6md955R9L5I79TUlLUuHFjq0L16PLLL9eLL76oF198UXl5eUpPT5fNZlNcXFyR/yze2LNnj0sFjLcnRdWvX18PPfSQHnroIUnnt0Klp6fL6XQqNjZWdtOeYAAAAMASbsdzh3ueR0VNmTdo0CClpqYqKSlJBw8eDHY4ALxg2danw4cPG9ft27cvdJ7D4XA5PalGjRqaN2+eatWqJen89p0333xTzZs3N+YUdUpSIISGhqpq1aqKj4/3O0kjSQkJCS6nPkVGRpZonZCQEFWpUkXx8fEkaQAAABAwblufCjmem4oaALCeZYmaU6dOGdfNmjUrdN6WLVt09OhRYzx48GBFR0e7zLHb7S4nMm3YsMGqMAEAAAAUw5yosYXTowYASotliZqTJ08a19WqVSt03qpVq1zGt956q8d57dq1M663b9/uX3AAAAAAvOJ0OiVzoqawU5+oqAEAy1mWqMnIyDCuw8ML2cMqad26dcZ1VFSU2rRp43FenTp1jOuCSSAAAAAAAZTroSqmUiEVNZVcW15SUQMA/rMsURMREWFcp6enFzpv5cqVxvW1116r0FDP/YwLJnvOnj1rQYQA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yGKfs9mpqAEAK1maqJk3b56ee+45l3vt2rXTzJkzlZKSolOnTnm1TnR0tDp16mSMSdQAAAAAAZaTIzkcLrdskV4czx0W5nbLWYKqegTG8OHD1bdvXw0fPjzYoQDwkmU9arKysvToo48a49jYWL355pvq06dPidbr3LmzPv/8c0nSjh07LIkRAAAAgGfmahrJy4oaT1ufckjUlBVLlixRamqqkpKSgh0KAC9ZlqhZsGCBDhw4IEmy2+1atGiROnToUOL1rr76auM6LS3N3/AAAAAAFKGkiRrZ7ZLNJjmd/7uXm2NhZABQsVi29Wnp0qXG9ZAhQ/xK0khS/fr1jeujR4/6tRYAAACAojnPZbnd86qixmZz2/7E1icAKDnLEjWbNm0yru+55x6/16tSpYpxffbsWb/XAwAAAFA4t4oau93jiU6e2MyJGrY+AUCJWZaoOXLkiHF91VVX+b1eZIHsfUmO+AYAAADgPYeHE59sNptXz7r1qclh6xMAlJRliZpzBb6wR0VFFTrP2y/2J0+eNK5jY2NLHhgAAACAYrkdzR3hxYlPF4S5Jmqc9KgBgBKzLFFTrVo14/rYsWN+r7d3717junr16n6vBwAAAKBwbokabxoJX5hbia1PAGAVyxI1iYmJxvWGDRv8Xu/rr782ruvWrev3egAAAAAK51eixtSjhq1PAFByliVqbrjhBuN6zpw5fq2Vn5+vGTNmGOOOHTv6tR4AAACAojmzzIkatj4BQDBYlqjp3r27cb1w4UKtXr3a4zxvetS89NJL+vXXX41xt27d/A8QAAAAQKH82/pkStSw9anMGDBggO69914NGDAg2KEA8FKoVQt17dpVDRo00M6dO+VwOHTHHXfo888/V4sWLXxa56233tKTTz5pjDt37qzmzZtbFSYAAAAAD5znslzGvm19Cne9wamtZcZLL70U7BAA+Miyihq73a4JEyYY48OHD+vGG2/UP/7xDx09erTY51NSUtSvXz/96U9/Un5+/vngQkI0btw4q0IEAAAAUAh/KmrkVlHD1icAKCnLEjWSdNttt2nkyJHG+OzZs3rmmWdUq1YtXX/99Ro6dKicTqfx+fPPP69hw4apcePGatKkiT744AOX9caPH6/rr7/eyhABAAAAeOB+PLcvFTUkagDAKpZtfbrg1VdfVXp6ut566y3jXn5+vtatW6d169a5zB07dmyh64wYMUKPPfaY1eEBAAAA8MDK47nZ+gQAJWdpRY10frvSm2++qVmzZikmJsbn52NiYjRz5kxNmjTJ6tAAAAAAFMI9UePLqU+uiRoqasqOhg0bKjY2Vg0bNgx2KAC8ZHmi5oI//elPOnDggJ5//nk1aNCg2PmXXHKJnnjiCe3bt0/33ntvoMICAAAA4IFfFTVsfSqzzpw5o4yMDJ05cybYoQDwkuVbnwqKi4vTmDFjNGbMGB06dEjr1q1TWlqaTpw4odzcXFWtWlUJCQlq3bq1rrjiikCGAgAAAKAI5kRNiB/Hc7P1CQBKLqCJmoISExN12223ldbrAAAAAPjAn+O5ZTqe20miBgBKLGBbnwAAAACUH5Zufcpm6xMAlJSlFTWDBw82rt9+++0ytx4AAAAAz9yP5/a+mbD71icSNQBQUpYmambPnm1cW5FYsXo9AAAAAJ45MjNdxrboKO8fNp/6xNYnACgxtj4BAAAAkNOcqInyPlFjMydq2PoEACVGogYAAACAe6Kmsg+JGrY+AYBlymyiJj8/37i22+1BjAQAAAC4uDkdDjnPnnW5F+LT1idTM2G2PgFAiZXa8dy+On78uHEdExMTxEgAAACAi5u5kbDk69Yn1+O5lUOipqyYOnWqzp07p0hfjlsHEFRlNlGzdu1a4zohISGIkQAAAAAXN+eZM273fErUmLY+OXPY+lRW3HzzzcEOAYCPylyixuFwaPXq1Xr44YeNe02bNg1iRAAAAMDFzZl51u1eiA+JGvetTyRqAKCkfE7UNGzY0NJ5BWVlZenQoUPKzs52ud+9e3ef1wIAAADgHcdZ10bCCg11O3K7KLZKprlsfQKAEvM5UbNz505L5xWnTp066t+/vyVrAQAAAHBn3vpki4qSzWbz+nm347nZ+lRmbNq0STk5OQoLC1PLli2DHQ4AL5S5rU8FJScn66OPPlJ0dHSwQwEAAAAuWuatTz5te5LY+lSG9e7dW6mpqUpKStLBgweDHQ4AL/icqIkq4ot2ZmamV/M8CQkJUeXKlVWtWjU1bdpUXbp0Uf/+/UnSAAAAAAHmyHTd+uRLI2HJvZkwW58AoOR8TtSc8dAR/oKC5ZFFzQMAAABQdjjPmhM1lX163tyjxplLogYASiok2AEAAAAACC7nGVOiprKPW5/C6VEDAFaxtEdN165drVwOAAAAQClwmrY+hUT7u/WJRA0AlJSliZply5ZZuVxQ5eTkKCQkRKGhZa/fcnZ2tsLDw4MdBgAAAC4SjrOuzYR971HD1icAsApbn/4rLS1Nzz77rK6//nrFxsYqPDxclSpVUvXq1dWlSxe98cYbSk9PL9WYcnJy9M033+jvf/+7evTooTp16ig8PFwREREKDw9XrVq11L17d40fP1779+8v1dgAAABw8XA7ntvPrU/Kz5czP9/PqACgYip75SKlzOl06sUXX9S4ceN07tw5t8+PHz+uL7/8Ul9++aXGjRunSZMmqX///gGLx+Fw6IsvvtB7772nTz75pNCmzDk5OTp06JCWLVumZcuW6amnntKAAQP0r3/9S1WrVg1YfAAAALj4WL71STq//Sky0p+wAKBCqtAVNQ6HQ3fffbcee+wxtyRNSEiIyylWknTs2DENGDBA48ePD1hMu3btUrdu3fTee+8VmqQJCwtzu5efn6/33ntPV111lbZs2RKw+AAAAHDxcWRau/VJYvsTAJRUqSZqcnNzdeLECR07dsznP4EwduxYzZkzxxiHhITovvvu088//6ysrCxlZmZq3bp1uuOOO1yee/LJJ/Xee+8FJCYzu92unj17auLEifr55591+vRpZWdnKysrS+vWrdP999/vkrj5/fff1a1bN+3Zs6dU4gMAAED558w0bX3y8XhuhblX1JCoAYCSsTmdTmcgFnY4HFq8eLGWLFmi7777Tnv27FGmqaTSF1aHuWXLFl1zzTXGuna7XXPmzFG/fv08zp8wYYIef/xxYxwXF6e9e/cqPj7e0rh27NihRo0aKSYmRg888IDuu+8+1alTp8hn1q9fr549e+r48ePGvT/84Q9avnx5iWJIT09XXFycTp8+rdjY2BKtAQAAgPLjaO/blLNxozGu8vwERd09yOvnHenpSmvUxOVe4vcbZK9dy7IYUTIZGRlyOp2y2WyKiYkJdjhAheXLz9kBqahZsmSJ6tWrp1tvvVUzZszQzz//7FeSJhCeeOIJl+TPyJEjC03SSOerb26++WZjfPr0ab344ouWxxUaGqr77rtPv/zyi8aPH19skkaSrr32Wn3wwQcu9/7zn/9o9erVlscHAACAi4/D9L2671ufPFXUcER3WRATE6PY2FiSNEA5YnmiZsKECbrlllu0b98+q5e2zE8//aSlS5ca45iYGI0bN67Y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URNFogYAfFXqiZrNmzdr+vTpmjNnTqEnKlWuXFn9+/fXfffdp9atWxv3X3/9dc2fP18TJ07UTz/9ZNxftWqV3nrrLf35z3/2Oo4nnnjCZfyPf/zDLUlT0MCBA/XVV1/prbfeknR+29Szzz6rKVOmeP1OX7z77rsBWRcAAAAXtzLVTNhUUcPWJwAoXqlsfTpz5oxmzJih1q1b65prrtHUqVM9JmkaNmyo119/XampqZo1a5ZLkkaSoqOjde+99+rHH3/UO++8o8qVKxufzZkzx+t41q5dqzVr1hjj6tWr66GHHir2uWeffdalamfWrFk6ceKE1+8FAAAAAsmZnS3HsWMu94K69YmKGgDwWUATNZs2bdLw4cNVu3ZtDRs2TBs3bnSbU6lSJd155536+uuvtX37do0cOVJVqlQpdu27775bzzzzjDEuWGFTnE8++cRlPGjQIIWFhRX7XO3atdWtWzdjnJubqyVLlnj9XgAAACCQ8gschHFBULc+mStqOJ4bAIpleaImIyND06ZNU8uWLdWqVStNnz7dY/XMpZdeqmeffVYHDhzQ/Pnz1aFDB5/fdccddxjXp06d8vq5RYsWuYx79uzp9bM9evRwGZuTPgAAAECwmLc92SpXli02NkjRSLaoKJexM5NEDQAUx9IeNUOHDtW8efPcGv5eEBISom7duukvf/mLevTooZAQ//JEderUMa4dDodXzxw7dky7du1yialNmzZev/O6665zGa9du9brZwEAAIBA8nTiU8HTS0tbSEyMy9iR7rlHJQDgfyxN1MycOdPj/YSEBN17770aNmyYLrvsMsveV5K/dLZv3+4yrlu3rmJ9+C3DVVddJbvdrvz8fEnSoUOHdOrUKa+2awEAAACBVJZOfJLkVs3jLOQwEQTOe++9p+zsbIWHhwc7FABeCuipT+3bt9df/vIX3X777V71gCkJ8+lNxTEnai655BKfng8NDVViYqJSU1ONezt27FDbtm19WgcAAACwWlk68UmSQuJcEzWO06eDFEnFVZIWEwCCy/JETVxcnO655x7dd999aty4sdXLu3n22Wd9mr9//36XccHtU96qU6eOS6Lmt99+I1EDAACAoPO09SmYQuLiXMYkagCgeJYmambMmKG77rrL5djsssbc2NiXbU8XxJn+wimsJw8AAABQmsp6osaZkSGnwyGbn70qAeBi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vmLFipg0aRIuXbqESZMmMUlDhfLw8MB3332H/fv3o2fPnvkmX3x8fMQjKRctWsQkDREROR2VSoUPP/wQJ06cQP/+/fP9Edbf3x+vvfYaLl26xCQNkRPjjBqCIAhYtGhRscepVatWkU/YuX//Ps6cOYPY2FgYDAYEBwejTp06qF27drHjopJBr9fjwoULuHXrFrRaLXQ6Hfz9/REcHIz69eujXLlySodILk6r1eLUqVO4c+cOdDodgoODUb58eTRp0gSenp5Kh0clUFJSkmTPkcDAQCYCyUJOTo7VM/+s0alTJ36+KgVSU1Px119/4c6dO8jMzISfnx+qV6+Op556ikt3qVD37t2zOEShOJ5//nmEhobKNl5pwEQNEREREREREZGT4NoAIiIiIiIiIiInwUQNEREREREREZGTYKKGiIiIiIiIiMhJMFFDREREREREROQkmKghIiIiIiIiInISTNQQERERERERETkJJmqIiIiIiIiIiJwEEzVERERERERERE6CiRoiIiIiIiIiIifBRA0RERERERERkZNgooaIiIiIiIiIyEkwUUNERERERERE5CSYqCEiIiIiIiIichJuSgdAREREVNoJggCDwSCW1Wo11Gr+nmYN0+dOpVJBo9EoHJHjGQwGCIIAANBoNFCpVApHRERExcFPAERERE5KEATo9XrZbuS8/vjjD7i7u4u3adOmKR2SSzAajWjevLn4vM2YMUOROAwGg+TfWm7SRC6F/VseN26c+Bx069ZN1msTEZHjMVFDRETkpFatWiX58l7cG1FJ8/333+Ovv/4CAISHh2PSpEmKxDFgwADJv7WRI0fKNva6deskY4eGhiIzM1PSZvr06fDz8wMA/P7771i7dq1s1yciIsdjooaIiIiIXE5SUhKmTJkilj/44AOUKVNGkVhGjBghKa9fvx7p6emyjL18+XJJ+bnnnoO3t7ekLiwsDP/973/F8oQJEyySOURE5DqYqCEiInIhGo2myDeikmTWrFlISkoC8Hg2zcsvv6xYLH369EFoaKhYTk9Px/r164s97oMHD7Br1y5JnXlSKNdbb70lzqq5d+8eFixYUOzrExGRMpioISIichHNmzfnHjUllFqtZmLNBrGxsVi4cKFYHj9+PLy8vBSLx93dHUOGDJHU/fTTT8Ued9WqVZJNpmvUqIGWLVvm2TYoKAhjxowR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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "dos_plotter = PlainDosPlotter(summed=True, stack=False, sigma=0.03)\n", "dos_plotter.add_site_orbital_dos(dos = dos.completedos, site_index=0, orbital='3s')\n", @@ -887,7 +12947,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "id": "9d9a4a6a", "metadata": { "ExecuteTime": { @@ -910,7 +12970,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "id": "2e6a8da7", "metadata": { "ExecuteTime": { @@ -961,7 +13021,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "id": "b70d9131", "metadata": { "ExecuteTime": { @@ -969,14 +13029,25 @@ "start_time": "2025-01-10T10:19:18.841215Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "NodeDataView({0: {'specie': 'Na', 'coords': array([0., 0., 0.]), 'properties': {'Mulliken Charges': 0.78, 'Loewdin Charges': 0.67, 'order_parameters': {'hexagonal planar': 8.492830879170379e-05, 'octahedral': 1.0, 'pentagonal pyramidal': 0.5000000000000001}, 'env': 'O:6'}}, 1: {'specie': 'Cl', 'coords': array([2.845847, 2.845847, 2.845847]), 'properties': {'Mulliken Charges': -0.78, 'Loewdin Charges': -0.67, 'order_parameters': {'hexagonal planar': 8.492830879170379e-05, 'octahedral': 1.0, 'pentagonal pyramidal': 0.5000000000000001}, 'env': 'O:6'}}})" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "graph_NaCl_all.sg.graph.nodes.data() # view node data" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "id": "d15e116e", "metadata": { "ExecuteTime": { @@ -984,7 +13055,18 @@ "start_time": "2025-01-10T10:19:18.892188Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "OutMultiEdgeDataView([(0, 1, {'to_jimage': (0, -1, -1), 'weight': 1, 'ICOHP': -0.56614, 'bond_length': 2.84585, 'bond_label': '30', 'ICOBI': 0.08482, 'ICOOP': 0.02824, 'ICOHP_bonding_perc': np.float64(1.0), 'ICOHP_antibonding_perc': np.float64(0.0)}), (0, 1, {'to_jimage': (-1, 0, -1), 'weight': 1, 'ICOHP': -0.56614, 'bond_length': 2.84585, 'bond_label': '28', 'ICOBI': 0.08482, 'ICOOP': 0.02824, 'ICOHP_bonding_perc': np.float64(1.0), 'ICOHP_antibonding_perc': np.float64(0.0)}), (0, 1, {'to_jimage': (-1, -1, 0), 'weight': 1, 'ICOHP': -0.56614, 'bond_length': 2.84585, 'bond_label': '24', 'ICOBI': 0.08482, 'ICOOP': 0.02824, 'ICOHP_bonding_perc': np.float64(1.0), 'ICOHP_antibonding_perc': np.float64(0.0)}), (0, 1, {'to_jimage': (0, 0, -1), 'weight': 1, 'ICOHP': -0.56616, 'bond_length': 2.84585, 'bond_label': '27', 'ICOBI': 0.08484, 'ICOOP': 0.02826, 'ICOHP_bonding_perc': np.float64(1.0), 'ICOHP_antibonding_perc': np.float64(0.0)}), (0, 1, {'to_jimage': (0, -1, 0), 'weight': 1, 'ICOHP': -0.5661700000000001, 'bond_length': 2.84585, 'bond_label': '23', 'ICOBI': 0.08484, 'ICOOP': 0.02826, 'ICOHP_bonding_perc': np.float64(1.0), 'ICOHP_antibonding_perc': np.float64(0.0)}), (0, 1, {'to_jimage': (-1, 0, 0), 'weight': 1, 'ICOHP': -0.5661700000000001, 'bond_length': 2.84585, 'bond_label': '21', 'ICOBI': 0.08484, 'ICOOP': 0.02826, 'ICOHP_bonding_perc': np.float64(1.0), 'ICOHP_antibonding_perc': np.float64(0.0)})])" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "graph_NaCl_all.sg.graph.edges.data() # view edge data" ] @@ -1017,7 +13099,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "id": "033a1f84", "metadata": { "ExecuteTime": { @@ -1051,7 +13133,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "id": "657d3eb2", "metadata": { "ExecuteTime": { @@ -1062,7 +13144,22 @@ "remove-cell" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3d50d039b5564ece8668c5701bdbc5ca", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Generating COHP fingerprints: 0%| | 0/3 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
COXX_FP
mp-1000([[-14.866071428571429, -14.598214285714286, -...
mp-2176([[-14.866071428571429, -14.598214285714286, -...
mp-463([[-14.866071428571429, -14.598214285714286, -...
\n", + "" + ], + "text/plain": [ + " COXX_FP\n", + "mp-1000 ([[-14.866071428571429, -14.598214285714286, -...\n", + "mp-2176 ([[-14.866071428571429, -14.598214285714286, -...\n", + "mp-463 ([[-14.866071428571429, -14.598214285714286, -..." + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Access the fingerprints dataframe\n", "fp_cohp_bonding.fingerprint_df" @@ -1114,7 +13264,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "id": "d54090e3", "metadata": { "ExecuteTime": { @@ -1122,7 +13272,68 @@ "start_time": "2025-01-10T10:19:24.975024Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mp-1000mp-2176mp-463
mp-10001.0000000.0014880.000036
mp-21760.0014881.0000000.000000
mp-4630.0000360.0000001.000000
\n", + "
" + ], + "text/plain": [ + " mp-1000 mp-2176 mp-463\n", + "mp-1000 1.000000 0.001488 0.000036\n", + "mp-2176 0.001488 1.000000 0.000000\n", + "mp-463 0.000036 0.000000 1.000000" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Get the fingerprints similarity matrix\n", "fp_cohp_bonding.get_similarity_matrix_df()" @@ -1151,7 +13362,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "id": "2ed6793640da4fac", "metadata": { "ExecuteTime": { @@ -1192,7 +13403,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "id": "7c731fe3e32065be", "metadata": { "ExecuteTime": { @@ -1200,7 +13411,182 @@ "start_time": "2025-01-10T10:19:25.286296Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b0d628ef4660467cb0ffa57a78f25a28", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Generating BWDF from ICOXXLIST: 0%| | 0/3 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
pair_bwdf_sum_meanpair_bwdf_mean_meanpair_bwdf_std_meanpair_bwdf_min_meanpair_bwdf_max_meanpair_bwdf_skew_meanpair_bwdf_kurtosis_meanpair_bwdf_sum_stdpair_bwdf_mean_stdpair_bwdf_std_std...site_bwdf_kurtosis_stdbwdf_sumbwdf_meanbwdf_stdbwdf_minbwdf_maxbwdf_skewbwdf_kurtosisbwdf_w_meanbwdf_w_std
mp-1000-2.38024-0.0396710.304716-2.380240.0-7.55095755.0169492.1770230.0362840.278701...9.351353-7.14072-0.1190120.722113-5.392680.0-6.67892244.843451-4.5004761.567078
mp-2176-3.123867-0.0520640.398376-3.1120270.0-7.5508955.0162853.8821090.0647020.494814...1.525129-9.3716-0.1561931.099228-8.565440.0-7.46218954.087545-7.8921332.195158
mp-463-2.87552-0.0479250.359435-2.807760.0-7.50175254.4971321.9899980.0331670.249226...12.605783-8.62656-0.1437760.762068-4.753440.0-5.33340426.952803-4.1830280.826071
\n", + "

3 rows × 37 columns

\n", + "" + ], + "text/plain": [ + " pair_bwdf_sum_mean pair_bwdf_mean_mean pair_bwdf_std_mean \\\n", + "mp-1000 -2.38024 -0.039671 0.304716 \n", + "mp-2176 -3.123867 -0.052064 0.398376 \n", + "mp-463 -2.87552 -0.047925 0.359435 \n", + "\n", + " pair_bwdf_min_mean pair_bwdf_max_mean pair_bwdf_skew_mean \\\n", + "mp-1000 -2.38024 0.0 -7.550957 \n", + "mp-2176 -3.112027 0.0 -7.55089 \n", + "mp-463 -2.80776 0.0 -7.501752 \n", + "\n", + " pair_bwdf_kurtosis_mean pair_bwdf_sum_std pair_bwdf_mean_std \\\n", + "mp-1000 55.016949 2.177023 0.036284 \n", + "mp-2176 55.016285 3.882109 0.064702 \n", + "mp-463 54.497132 1.989998 0.033167 \n", + "\n", + " pair_bwdf_std_std ... site_bwdf_kurtosis_std bwdf_sum bwdf_mean \\\n", + "mp-1000 0.278701 ... 9.351353 -7.14072 -0.119012 \n", + "mp-2176 0.494814 ... 1.525129 -9.3716 -0.156193 \n", + "mp-463 0.249226 ... 12.605783 -8.62656 -0.143776 \n", + "\n", + " bwdf_std bwdf_min bwdf_max bwdf_skew bwdf_kurtosis bwdf_w_mean \\\n", + "mp-1000 0.722113 -5.39268 0.0 -6.678922 44.843451 -4.500476 \n", + "mp-2176 1.099228 -8.56544 0.0 -7.462189 54.087545 -7.892133 \n", + "mp-463 0.762068 -4.75344 0.0 -5.333404 26.952803 -4.183028 \n", + "\n", + " bwdf_w_std \n", + "mp-1000 1.567078 \n", + "mp-2176 2.195158 \n", + "mp-463 0.826071 \n", + "\n", + "[3 rows x 37 columns]" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# get the BWDF stats df\n", "batch_icohp.get_bwdf_df()" @@ -1228,7 +13614,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "id": "57176d72", "metadata": { "ExecuteTime": { @@ -1270,7 +13656,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "id": "94df0905", "metadata": { "ExecuteTime": { @@ -1278,7 +13664,182 @@ "start_time": "2025-01-10T10:19:26.828738Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d230dc0f96e04fd49da818c1acdd0529", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Generating PDOS moment features: 0%| | 0/3 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
s_band_centers_band_widths_band_skews_band_kurtosiss_band_upperband_edgeBa_s_band_centerBa_s_band_widthBa_s_band_skewBa_s_band_kurtosisBa_s_band_upperband_edge...d_band_centerd_band_widthd_band_skewd_band_kurtosisd_band_upperband_edgeZn_d_band_centerZn_d_band_widthZn_d_band_skewZn_d_band_kurtosisZn_d_band_upperband_edge
mp-1000-11.269912.0711-0.24991.5351-27.0855-12.894514.27450.06841.0835-27.0855...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
mp-2176-5.21365.91100.38961.4512-10.4412NaNNaNNaNNaNNaN...-6.52450.78224.60250.478-6.5368-6.52450.78224.60250.478-6.5368
mp-463-12.293714.69930.59561.5582-26.1631NaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

3 rows × 65 columns

\n", + "" + ], + "text/plain": [ + " s_band_center s_band_width s_band_skew s_band_kurtosis \\\n", + "mp-1000 -11.2699 12.0711 -0.2499 1.5351 \n", + "mp-2176 -5.2136 5.9110 0.3896 1.4512 \n", + "mp-463 -12.2937 14.6993 0.5956 1.5582 \n", + "\n", + " s_band_upperband_edge Ba_s_band_center Ba_s_band_width \\\n", + "mp-1000 -27.0855 -12.8945 14.2745 \n", + "mp-2176 -10.4412 NaN NaN \n", + "mp-463 -26.1631 NaN NaN \n", + "\n", + " Ba_s_band_skew Ba_s_band_kurtosis Ba_s_band_upperband_edge ... \\\n", + "mp-1000 0.0684 1.0835 -27.0855 ... \n", + "mp-2176 NaN NaN NaN ... \n", + "mp-463 NaN NaN NaN ... \n", + "\n", + " d_band_center d_band_width d_band_skew d_band_kurtosis \\\n", + "mp-1000 NaN NaN NaN NaN \n", + "mp-2176 -6.5245 0.7822 4.602 50.478 \n", + "mp-463 NaN NaN NaN NaN \n", + "\n", + " d_band_upperband_edge Zn_d_band_center Zn_d_band_width \\\n", + "mp-1000 NaN NaN NaN \n", + "mp-2176 -6.5368 -6.5245 0.7822 \n", + "mp-463 NaN NaN NaN \n", + "\n", + " Zn_d_band_skew Zn_d_band_kurtosis Zn_d_band_upperband_edge \n", + "mp-1000 NaN NaN NaN \n", + "mp-2176 4.602 50.478 -6.5368 \n", + "mp-463 NaN NaN NaN \n", + "\n", + "[3 rows x 65 columns]" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# get the DOS moments df\n", "batch_dos.get_df()" @@ -1286,7 +13847,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "id": "d2456f82", "metadata": { "ExecuteTime": { @@ -1294,7 +13855,74 @@ "start_time": "2025-01-10T10:19:28.491483Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a939f12c429d47aeb78da70d74390a12", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Generating DOS fingerprints: 0%| | 0/3 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DOS_FP
mp-1000([[-28.66463033203125, -28.524270996093747, -2...
mp-2176([[-13.11592083984375, -12.971902519531252, -1...
mp-463([[-28.161967734374997, -27.991663203125, -27....
\n", + "" + ], + "text/plain": [ + " DOS_FP\n", + "mp-1000 ([[-28.66463033203125, -28.524270996093747, -2...\n", + "mp-2176 ([[-13.11592083984375, -12.971902519531252, -1...\n", + "mp-463 ([[-28.161967734374997, -27.991663203125, -27...." + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# get the DOS fingerprints df\n", "batch_dos.get_fingerprints_df()" @@ -1323,7 +13951,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 46, "id": "7c05bae8", "metadata": { "ExecuteTime": { @@ -1369,7 +13997,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "id": "9b49fcf7", "metadata": { "ExecuteTime": { @@ -1377,7 +14005,205 @@ "start_time": "2025-01-10T10:19:31.891677Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "43bd9a59b7f94480b18f596285f99af5", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Generating LobsterPy summary stats: 0%| | 0/3 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ICOHP_mean_avgICOHP_mean_maxICOHP_mean_minICOHP_mean_stdICOHP_sum_avgICOHP_sum_maxICOHP_sum_minICOHP_sum_stdbonding_perc_avgbonding_perc_max...Mulliken_meanMulliken_minMulliken_maxMulliken_stdIonicity_MullLoewdin_meanLoewdin_minLoewdin_maxLoewdin_stdIonicity_Loew
mp-1000-0.340000-0.12-0.450.155563-2.273333-1.42-2.700.6033980.7823970.78970...0.0-1.581.581.580.790.0-1.491.491.490.745
mp-2176-1.070000-1.07-1.070.000000-4.280000-4.28-4.280.0000000.8531400.85314...0.0-1.061.061.060.530.0-1.081.081.080.540
mp-463-0.363333-0.29-0.400.051854-2.760000-2.38-3.520.5374010.9055100.91315...0.0-0.810.810.810.810.0-0.820.820.820.820
\n", + "

3 rows × 37 columns

\n", + "" + ], + "text/plain": [ + " ICOHP_mean_avg ICOHP_mean_max ICOHP_mean_min ICOHP_mean_std \\\n", + "mp-1000 -0.340000 -0.12 -0.45 0.155563 \n", + "mp-2176 -1.070000 -1.07 -1.07 0.000000 \n", + "mp-463 -0.363333 -0.29 -0.40 0.051854 \n", + "\n", + " ICOHP_sum_avg ICOHP_sum_max ICOHP_sum_min ICOHP_sum_std \\\n", + "mp-1000 -2.273333 -1.42 -2.70 0.603398 \n", + "mp-2176 -4.280000 -4.28 -4.28 0.000000 \n", + "mp-463 -2.760000 -2.38 -3.52 0.537401 \n", + "\n", + " bonding_perc_avg bonding_perc_max ... Mulliken_mean Mulliken_min \\\n", + "mp-1000 0.782397 0.78970 ... 0.0 -1.58 \n", + "mp-2176 0.853140 0.85314 ... 0.0 -1.06 \n", + "mp-463 0.905510 0.91315 ... 0.0 -0.81 \n", + "\n", + " Mulliken_max Mulliken_std Ionicity_Mull Loewdin_mean Loewdin_min \\\n", + "mp-1000 1.58 1.58 0.79 0.0 -1.49 \n", + "mp-2176 1.06 1.06 0.53 0.0 -1.08 \n", + "mp-463 0.81 0.81 0.81 0.0 -0.82 \n", + "\n", + " Loewdin_max Loewdin_std Ionicity_Loew \n", + "mp-1000 1.49 1.49 0.745 \n", + "mp-2176 1.08 1.08 0.540 \n", + "mp-463 0.82 0.82 0.820 \n", + "\n", + "[3 rows x 37 columns]" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# get summary stats features \n", "summary_features.get_df()" @@ -1401,7 +14227,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 48, "id": "2d40b39a", "metadata": { "ExecuteTime": { @@ -1438,7 +14264,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, "id": "5f7259c0", "metadata": { "ExecuteTime": { @@ -1446,7 +14272,74 @@ "start_time": "2025-01-10T10:19:44.163100Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6aca610149304e9ebbfe8a9b6abd2819", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Generating Structure Graphs: 0%| | 0/3 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
structure_graph
mp-1000Structure Graph\\nStructure: \\nFull Formula (Ba...
mp-2176Structure Graph\\nStructure: \\nFull Formula (Zn...
mp-463Structure Graph\\nStructure: \\nFull Formula (K1...
\n", + "" + ], + "text/plain": [ + " structure_graph\n", + "mp-1000 Structure Graph\\nStructure: \\nFull Formula (Ba...\n", + "mp-2176 Structure Graph\\nStructure: \\nFull Formula (Zn...\n", + "mp-463 Structure Graph\\nStructure: \\nFull Formula (K1..." + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# get the structure graphs df\n", "batch_sg.get_df()" @@ -1471,7 +14364,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.14" + "version": "3.11.15" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/example_script_NaCl.py b/examples/example_script_NaCl.py index e025a981..85fcc8c6 100644 --- a/examples/example_script_NaCl.py +++ b/examples/example_script_NaCl.py @@ -1,16 +1,19 @@ import os +import warnings -from lobsterpy.cohp.analyze import Analysis -from lobsterpy.cohp.describe import Description +from lobsterpy.coxx.analyze import Analysis +from lobsterpy.coxx.describe import Description + +warnings.simplefilter("once") directory = "NaCl" # Setup analysis dict -analyse = Analysis( - path_to_poscar=os.path.join(directory, "CONTCAR"), - path_to_icohplist=os.path.join(directory, "ICOHPLIST.lobster"), - path_to_cohpcar=os.path.join(directory, "COHPCAR.lobster"), - path_to_charge=os.path.join(directory, "CHARGE.lobster"), +analyse = Analysis.from_files( + structure_path=os.path.join(directory, "CONTCAR"), + icoxxlist_path=os.path.join(directory, "ICOHPLIST.lobster"), + coxxcar_path=os.path.join(directory, "COHPCAR.lobster"), + charge_path=os.path.join(directory, "CHARGE.lobster"), which_bonds="cation-anion", ) print(analyse.type_charge) diff --git a/examples/example_script_NaCl_Structure_graph.py b/examples/example_script_NaCl_Structure_graph.py index 3a8af5e0..c2af8fec 100644 --- a/examples/example_script_NaCl_Structure_graph.py +++ b/examples/example_script_NaCl_Structure_graph.py @@ -1,5 +1,8 @@ +import warnings from lobsterpy.structuregraph.graph import LobsterGraph +warnings.simplefilter("once") + graph_NaCl_all = LobsterGraph( path_to_poscar="./NaCl_comp_range/CONTCAR.gz", path_to_charge="./NaCl_comp_range/CHARGE.lobster.gz", diff --git a/examples/example_script_NaCl_all.py b/examples/example_script_NaCl_all.py index 91a9f69a..7e99262e 100644 --- a/examples/example_script_NaCl_all.py +++ b/examples/example_script_NaCl_all.py @@ -1,16 +1,18 @@ import os +import warnings +from lobsterpy.coxx.analyze import Analysis +from lobsterpy.coxx.describe import Description -from lobsterpy.cohp.analyze import Analysis -from lobsterpy.cohp.describe import Description +warnings.simplefilter("once") directory = "NaCl" # Setup analysis dict -analyse = Analysis( - path_to_poscar=os.path.join(directory, "CONTCAR"), - path_to_icohplist=os.path.join(directory, "ICOHPLIST.lobster"), - path_to_cohpcar=os.path.join(directory, "COHPCAR.lobster"), - path_to_charge=os.path.join(directory, "CHARGE.lobster"), +analyse = Analysis.from_files( + structure_path=os.path.join(directory, "CONTCAR"), + icoxxlist_path=os.path.join(directory, "ICOHPLIST.lobster"), + coxxcar_path=os.path.join(directory, "COHPCAR.lobster"), + charge_path=os.path.join(directory, "CHARGE.lobster"), which_bonds="all", ) diff --git a/examples/example_script_NaCl_orbitalwise.py b/examples/example_script_NaCl_orbitalwise.py index 67b015bd..03489ba4 100644 --- a/examples/example_script_NaCl_orbitalwise.py +++ b/examples/example_script_NaCl_orbitalwise.py @@ -1,16 +1,19 @@ import os +import warnings -from lobsterpy.cohp.analyze import Analysis -from lobsterpy.cohp.describe import Description +from lobsterpy.coxx.analyze import Analysis +from lobsterpy.coxx.describe import Description + +warnings.simplefilter("once") directory = "NaCl" # Setup analysis dict -analyse = Analysis( - path_to_poscar=os.path.join(directory, "CONTCAR"), - path_to_icohplist=os.path.join(directory, "ICOHPLIST.lobster"), - path_to_cohpcar=os.path.join(directory, "COHPCAR.lobster"), - path_to_charge=os.path.join(directory, "CHARGE.lobster"), +analyse = Analysis.from_files( + structure_path=os.path.join(directory, "CONTCAR"), + icoxxlist_path=os.path.join(directory, "ICOHPLIST.lobster"), + coxxcar_path=os.path.join(directory, "COHPCAR.lobster"), + charge_path=os.path.join(directory, "CHARGE.lobster"), which_bonds="all", orbital_resolved=True, orbital_cutoff=0.05, From 914bc07c10d95f1e722eb07138e3de39d68b9931 Mon Sep 17 00:00:00 2001 From: naik-aakash Date: Wed, 5 Aug 2026 15:16:00 +0200 Subject: [PATCH 3/7] fix cli exception test --- tests/cli/test_cli.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index 822421f5..a2f6439e 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -751,10 +751,7 @@ def test_cli_exceptions(self): test = get_parser().parse_args(args) run(test) - assert ( - str(err2.value) - == "[Errno 2] No such file or directory: '/home/anaik/Work/Dev_Codes/LobsterPy/tests/CONTCAR'" - ) + assert "[Errno 2] No such file or directory:" in str(err2.value) # doscar comparison exceptions test with pytest.raises(Exception) as err3: # noqa: PT012, PT011 From 81b1f93f702d25f90aa2af3e17d3afb33664dc27 Mon Sep 17 00:00:00 2001 From: naik-aakash Date: Wed, 5 Aug 2026 15:25:03 +0200 Subject: [PATCH 4/7] update codeql analysis --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index bbb4e272..d000e3e5 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -48,7 +48,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -62,7 +62,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -75,4 +75,4 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 From d9dddabba96306a9decf8dd644482e353fc5a69e Mon Sep 17 00:00:00 2001 From: naik-aakash Date: Wed, 5 Aug 2026 15:33:19 +0200 Subject: [PATCH 5/7] delete commented lines --- src/lobsterpy/cli.py | 43 ------------------------------------------- 1 file changed, 43 deletions(-) diff --git a/src/lobsterpy/cli.py b/src/lobsterpy/cli.py index 057523f8..0cff535e 100644 --- a/src/lobsterpy/cli.py +++ b/src/lobsterpy/cli.py @@ -1302,49 +1302,6 @@ def run(args): raise ValueError('please use "--overwrite" if you would like to overwrite existing lobster inputs') if args.action in ["description-quality"]: - # # Check for .gz files exist for default values and update accordingly - # req_files = get_file_paths( - # path_to_lobster_calc=Path.cwd(), requested_files=["structure", "lobsterin", "lobsterout"] - # ) - # for arg_name in req_files: - # setattr(args, arg_name, req_files[arg_name]) - - # optional_files = { - # "bandoverlaps": "bandOverlaps.lobster", - # "potcar": "POTCAR", - # "vasprun": "vasprun.xml", - # } - - # for arg_name in optional_files: - # file_path = getattr(args, arg_name) - # if not file_path.exists(): - # gz_file_path = file_path.with_name(zpath(file_path.name)) - # if gz_file_path.exists(): - # setattr(args, arg_name, gz_file_path) - - # bva_comp = args.bvacomp - - # if bva_comp: - # bva_files = get_file_paths(path_to_lobster_calc=Path.cwd(), requested_files=["charge"]) - # for arg_name in bva_files: - # setattr(args, arg_name, bva_files[arg_name]) - - # dos_comparison = args.doscomp - - # if dos_comparison: - # if "DOSCAR.LSO.lobster" in args.doscar.name: - # dos_files = get_file_paths( - # path_to_lobster_calc=Path.cwd(), requested_files=["vasprun", "doscar"], use_lso_dos=True - # ) - # else: - # dos_files = get_file_paths( - # path_to_lobster_calc=Path.cwd(), requested_files=["vasprun", "doscar"], use_lso_dos=False - # ) - # for arg_name in dos_files: - # setattr(args, arg_name, dos_files[arg_name]) - - # potcar_file_path = args.potcar - calc_quality = LobsterCalcQuality.from_directory( path_to_lobster_calc=Path.cwd(), ) From 7dda404964319c2bd35cef197129bd9238f196e1 Mon Sep 17 00:00:00 2001 From: naik-aakash Date: Wed, 5 Aug 2026 15:57:34 +0200 Subject: [PATCH 6/7] updgrade to v4 codeql --- .github/workflows/codeql-analysis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index d000e3e5..cf0d8584 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -44,11 +44,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -62,7 +62,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -75,4 +75,4 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 From de1d1e20d55ed348f577b00467199e8fd60aa588 Mon Sep 17 00:00:00 2001 From: naik-aakash Date: Wed, 5 Aug 2026 16:42:14 +0200 Subject: [PATCH 7/7] address review comment --- src/lobsterpy/cli.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lobsterpy/cli.py b/src/lobsterpy/cli.py index 0cff535e..b9b8dd46 100644 --- a/src/lobsterpy/cli.py +++ b/src/lobsterpy/cli.py @@ -382,8 +382,8 @@ def get_parser() -> argparse.ArgumentParser: action="store_true", help="Show integrated cohp/cobi/coop plots.", ) - # Arguments specific to lobsterpy.cohp.analyze.Analysis and - # lobsterpy.cohp.describe.Description class + # Arguments specific to lobsterpy.coxx.analyze.Analysis and + # lobsterpy.coxx.describe.Description class auto_parent = argparse.ArgumentParser(add_help=False) auto_group = auto_parent.add_argument_group("Adjustable automatic analysis parameters") auto_group.add_argument(