diff --git a/src/pymatgen/electronic_structure/cohp.py b/src/pymatgen/electronic_structure/cohp.py index 3fc2b2cc460..25a4ffd7b7e 100644 --- a/src/pymatgen/electronic_structure/cohp.py +++ b/src/pymatgen/electronic_structure/cohp.py @@ -1042,6 +1042,17 @@ def is_spin_polarized(self) -> bool: """ return self._is_spin_polarized + @property + def translation(self) -> list[int, int, int]: + """ + Returns the translation vector with respect to the origin cell + as defined in LOBSTER. + + Returns: + list[int, int, int] + """ + return self._translation + def icohpvalue(self, spin: Spin = Spin.up) -> float: """ Args: diff --git a/src/pymatgen/io/lobster/lobsterenv.py b/src/pymatgen/io/lobster/lobsterenv.py index 81b600452ec..38696e92f39 100644 --- a/src/pymatgen/io/lobster/lobsterenv.py +++ b/src/pymatgen/io/lobster/lobsterenv.py @@ -15,6 +15,7 @@ import copy import math import tempfile +import warnings from typing import TYPE_CHECKING, NamedTuple import matplotlib as mpl @@ -86,6 +87,7 @@ def __init__( filename_blist_sg2: PathLike | None = None, id_blist_sg1: Literal["icoop", "icobi"] = "icoop", id_blist_sg2: Literal["icoop", "icobi"] = "icobi", + backward_compatibility: bool = False, ) -> None: """ Args: @@ -125,6 +127,7 @@ def __init__( filename_blist_sg2 (PathLike): Path to additional ICOOP, ICOBI data for structure graphs. id_blist_sg1 ("icoop" | "icobi"): Identity of data in filename_blist_sg1. id_blist_sg2 ("icoop" | "icobi"): Identity of data in filename_blist_sg2. + backward_compatibility (bool): compatiblity with neighbor detection prior 2025 (less strict). """ if filename_icohp is not None: self.ICOHP = Icohplist(are_coops=are_coops, are_cobis=are_cobis, filename=filename_icohp) @@ -147,6 +150,7 @@ def __init__( self.id_blist_sg1 = id_blist_sg1.lower() self.id_blist_sg2 = id_blist_sg2.lower() + self.backward_compatibility = backward_compatibility allowed_arguments = {"icoop", "icobi"} if self.id_blist_sg1 not in allowed_arguments or self.id_blist_sg2 not in allowed_arguments: @@ -533,7 +537,6 @@ def get_info_cohps_to_neighbors( _summed_icohps, _list_icohps, _number_bonds, labels, atoms, final_isites = self.get_info_icohps_to_neighbors( isites=isites, onlycation_isites=onlycation_isites ) - with tempfile.TemporaryDirectory() as tmp_dir: path = f"{tmp_dir}/POSCAR.vasp" @@ -699,7 +702,7 @@ def get_info_icohps_between_neighbors( upperlimit=upperlimit, only_bonds_to=self.only_bonds_to, ) - + # TODO: check if necessary! done = False for icohp in icohps.values(): atomnr1 = self._get_atomnumber(icohp._atom1) @@ -790,14 +793,9 @@ def _evaluate_ce( raise ValueError("Please give two limits or leave them both at None") # Find environments based on ICOHP values - ( - list_icohps, - list_keys, - list_lengths, - list_neighisite, - list_neighsite, - list_coords, - ) = self._find_environments(additional_condition, lowerlimit, upperlimit, only_bonds_to) + (list_icohps, list_keys, list_lengths, list_neighisite, list_neighsite, list_coords) = self._find_environments( + additional_condition, lowerlimit, upperlimit, only_bonds_to + ) self.list_icohps = list_icohps self.list_lengths = list_lengths @@ -939,11 +937,17 @@ def _find_environments( lengths_from_ICOHPs, neighbors_from_ICOHPs, selected_ICOHPs, + translations_ICOHPs, ) = additional_conds + check_ICOHPs( + lengths_from_ICOHPs=lengths_from_ICOHPs, + selected_ICOHPs=selected_ICOHPs, + translation=translations_ICOHPs, + ) + if len(neighbors_from_ICOHPs) > 0: centralsite = site - neighbors_by_distance_start = self.structure.get_sites_in_sphere( pt=centralsite.coords, r=np.max(lengths_from_ICOHPs) + 0.5, @@ -955,11 +959,13 @@ def _find_environments( list_distances = [] index_here_list = [] coords = [] + translations_by_distance = [] for neigh_new in sorted(neighbors_by_distance_start, key=lambda x: x[1]): site_here = neigh_new[0].to_unit_cell() index_here = neigh_new[2] index_here_list.append(index_here) cell_here = neigh_new[3] + new_coords = [ site_here.frac_coords[0] + float(cell_here[0]), site_here.frac_coords[1] + float(cell_here[1]), @@ -967,45 +973,77 @@ def _find_environments( ] coords.append(site_here.lattice.get_cartesian_coords(new_coords)) - # new_site = PeriodicSite( - # species=site_here.species_string, - # coords=site_here.lattice.get_cartesian_coords(new_coords), - # lattice=site_here.lattice, - # to_unit_cell=False, - # coords_are_cartesian=True, - # ) neighbors_by_distance.append(neigh_new[0]) list_distances.append(neigh_new[1]) + translations_by_distance.append(cell_here) _list_neighsite = [] _list_neighisite = [] copied_neighbors_from_ICOHPs = copy.copy(neighbors_from_ICOHPs) copied_distances_from_ICOHPs = copy.copy(lengths_from_ICOHPs) + copied_translations_from_ICOHPs = copy.copy(translations_ICOHPs) + copied_icohps_from_ICOHPs = copy.copy(selected_ICOHPs) + copied_keys_from_ICOHPs = copy.copy(keys_from_ICOHPs) _neigh_coords = [] _neigh_frac_coords = [] + _list_icohps = [] + _list_lengths = [] + _list_keys = [] + _list_translations = [] for neigh_idx, neigh in enumerate(neighbors_by_distance): index_here2 = index_here_list[neigh_idx] - for dist_idx, dist in enumerate(copied_distances_from_ICOHPs): - if ( - np.isclose(dist, list_distances[neigh_idx], rtol=1e-4) - and copied_neighbors_from_ICOHPs[dist_idx] == index_here2 - ): + if not self.backward_compatibility: + comparison = ( + np.isclose(dist, list_distances[neigh_idx], rtol=1e-4) + and copied_neighbors_from_ICOHPs[dist_idx] == index_here2 + and ( + ( + copied_translations_from_ICOHPs[dist_idx][0] + == -translations_by_distance[neigh_idx][0] + and copied_translations_from_ICOHPs[dist_idx][1] + == -translations_by_distance[neigh_idx][1] + and copied_translations_from_ICOHPs[dist_idx][2] + == -translations_by_distance[neigh_idx][2] + ) + or ( + copied_translations_from_ICOHPs[dist_idx][0] + == translations_by_distance[neigh_idx][0] + and copied_translations_from_ICOHPs[dist_idx][1] + == translations_by_distance[neigh_idx][1] + and copied_translations_from_ICOHPs[dist_idx][2] + == translations_by_distance[neigh_idx][2] + ) + ) + ) + else: + comparison = ( + np.isclose(dist, list_distances[neigh_idx], rtol=1e-4) + and copied_neighbors_from_ICOHPs[dist_idx] == index_here2 + ) + + if comparison: _list_neighsite.append(neigh) _list_neighisite.append(index_here2) _neigh_coords.append(coords[neigh_idx]) _neigh_frac_coords.append(neigh.frac_coords) + _list_icohps.append(copied_icohps_from_ICOHPs[dist_idx]) + _list_lengths.append(dist) + _list_keys.append(copied_keys_from_ICOHPs[dist_idx]) + _list_translations.append(copied_translations_from_ICOHPs[dist_idx]) del copied_distances_from_ICOHPs[dist_idx] del copied_neighbors_from_ICOHPs[dist_idx] + del copied_translations_from_ICOHPs[dist_idx] + del copied_icohps_from_ICOHPs[dist_idx] + del copied_keys_from_ICOHPs[dist_idx] break list_neighisite.append(_list_neighisite) list_neighsite.append(_list_neighsite) - list_lengths.append(lengths_from_ICOHPs) - list_keys.append(keys_from_ICOHPs) + list_lengths.append(_list_lengths) + list_keys.append(_list_keys) list_coords.append(_neigh_coords) - list_icohps.append(selected_ICOHPs) - + list_icohps.append(_list_icohps) else: list_neighsite.append([]) list_neighisite.append([]) @@ -1013,6 +1051,7 @@ def _find_environments( list_lengths.append([]) list_keys.append([]) list_coords.append([]) + return ( list_icohps, list_keys, @@ -1042,6 +1081,7 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs: list[float] = [] neighbors_from_ICOHPs: list[int] = [] icohps_from_ICOHPs: list[IcohpValue] = [] + translation_from_ICOHPs: list[list[int, int, int]] = [] for key, icohp in icohps.items(): atomnr1 = self._get_atomnumber(icohp._atom1) @@ -1062,11 +1102,14 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + # add translation to icohp value + translation_from_ICOHPs.append(icohp.translation) elif atomnr2 == site_idx: neighbors_from_ICOHPs.append(atomnr1) lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) # ONLY_ANION_CATION_BONDS elif additional_condition == 1: @@ -1076,12 +1119,14 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) elif atomnr2 == site_idx: neighbors_from_ICOHPs.append(atomnr1) lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) # NO_ELEMENT_TO_SAME_ELEMENT_BONDS elif additional_condition == 2: @@ -1091,12 +1136,14 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) elif atomnr2 == site_idx: neighbors_from_ICOHPs.append(atomnr1) lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) # ONLY_ANION_CATION_BONDS_AND_NO_ELEMENT_TO_SAME_ELEMENT_BONDS elif additional_condition == 3: @@ -1108,12 +1155,14 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) elif atomnr2 == site_idx: neighbors_from_ICOHPs.append(atomnr1) lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) # ONLY_ELEMENT_TO_OXYGEN_BONDS elif additional_condition == 4: @@ -1123,12 +1172,14 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) elif atomnr2 == site_idx: neighbors_from_ICOHPs.append(atomnr1) lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) # DO_NOT_CONSIDER_ANION_CATION_BONDS elif additional_condition == 5: @@ -1138,12 +1189,14 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) elif atomnr2 == site_idx: neighbors_from_ICOHPs.append(atomnr1) lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) # ONLY_CATION_CATION_BONDS elif additional_condition == 6 and val1 > 0.0 and val2 > 0.0: # type: ignore[operator] @@ -1152,18 +1205,21 @@ def _find_relevant_atoms_additional_condition( lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) elif atomnr2 == site_idx: neighbors_from_ICOHPs.append(atomnr1) lengths_from_ICOHPs.append(icohp._length) icohps_from_ICOHPs.append(icohp.summed_icohp) keys_from_ICOHPs.append(key) + translation_from_ICOHPs.append(icohp.translation) return ( keys_from_ICOHPs, lengths_from_ICOHPs, neighbors_from_ICOHPs, icohps_from_ICOHPs, + translation_from_ICOHPs, ) @staticmethod @@ -1522,3 +1578,20 @@ class ICOHPNeighborsInfo(NamedTuple): labels: list[str] atoms: list[list[str]] central_isites: list[int] | None + + +def check_ICOHPs(lengths_from_ICOHPs, selected_ICOHPs, translation, length_threshold=0.01, energy_threshold=0.1): + for i in range(len(lengths_from_ICOHPs)): + for j in range(i + 1, len(lengths_from_ICOHPs)): + if abs(lengths_from_ICOHPs[i] - lengths_from_ICOHPs[j]) < length_threshold: + if abs(selected_ICOHPs[i] - selected_ICOHPs[j]) > energy_threshold and ( + translation[i][0] == -translation[j][0] + and translation[i][1] == -translation[j][1] + and translation[i][2] == -translation[j][2] + ): + warnings.warn( + f"Lengths {lengths_from_ICOHPs[i]} and {lengths_from_ICOHPs[j]} are very close " + f"and translation exactly opposite, but corresponding ICOHPs {selected_ICOHPs[i]} " + f"and {selected_ICOHPs[j]} are not. Our neighbor detection might fail.", + stacklevel=2, + ) diff --git a/tests/electronic_structure/test_cohp.py b/tests/electronic_structure/test_cohp.py index 94df3a36dca..8c93479ad06 100644 --- a/tests/electronic_structure/test_cohp.py +++ b/tests/electronic_structure/test_cohp.py @@ -842,8 +842,8 @@ def setUp(self): self.cohp_lobster_forb = CompleteCohp.from_file("lobster", filename=filepath, structure_file=structure) # spinpolarized case: - filepath = f"{TEST_DIR}/environments/COHPCAR.lobster.mp-190.gz" - structure = f"{TEST_DIR}/environments/POSCAR.mp_190.gz" + filepath = f"{TEST_DIR}/environments/COHPCAR.lobster.mp-190_2.gz" + structure = f"{TEST_DIR}/environments/POSCAR.mp-190_2.gz" self.cohp_lobster_spin_polarized = CompleteCohp.from_file( "lobster", filename=filepath, structure_file=structure ) @@ -1273,8 +1273,8 @@ def setUp(self): structure = f"{TEST_DIR}/POSCAR.orbitalwise" self.cohp_orb = CompleteCohp.from_file("lobster", filename=filepath, structure_file=structure) - filepath = f"{TEST_DIR}/environments/COHPCAR.lobster.mp-190.gz" - structure = f"{TEST_DIR}/environments/POSCAR.mp_190.gz" + filepath = f"{TEST_DIR}/environments/COHPCAR.lobster.mp-190_2.gz" + structure = f"{TEST_DIR}/environments/POSCAR.mp-190_2.gz" self.cohp_lobster_spin_polarized = CompleteCohp.from_file( "lobster", filename=filepath, structure_file=structure ) diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaCl.gz index da6945d5af7..3ecf6a9d86f 100644 Binary files a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaCl.gz and b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaSi.gz b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaSi.gz index cc8dba3ade5..df8021c7695 100644 Binary files a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaSi.gz and b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.NaSi.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-353.gz b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-353.gz index 35ac943d333..29b18aa18ba 100644 Binary files a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-353.gz and b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-353.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-632319.gz b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-632319.gz new file mode 100644 index 00000000000..b2fa74dfc9b Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-632319.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.NaCl.gz new file mode 100644 index 00000000000..b1716ceb489 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.NaSi.gz b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.NaSi.gz index 4c3c269a0c8..4911f4c161a 100644 Binary files a/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.NaSi.gz and b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.NaSi.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-190.gz b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-190.gz index 3a38a8fd5bc..344334e05e3 100644 Binary files a/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-190.gz and b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-190.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-190_2.gz b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-190_2.gz new file mode 100644 index 00000000000..3a38a8fd5bc Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-190_2.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CONTCAR.NaCl.gz b/tests/files/electronic_structure/cohp/environments/CONTCAR.NaCl.gz new file mode 100644 index 00000000000..bfa472240cd Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CONTCAR.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CONTCAR.NaSi.gz b/tests/files/electronic_structure/cohp/environments/CONTCAR.NaSi.gz new file mode 100644 index 00000000000..192631f87fd Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CONTCAR.NaSi.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-190.gz b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-190.gz new file mode 100644 index 00000000000..8a91c19b977 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-190.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-353.gz b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-353.gz new file mode 100644 index 00000000000..4f942bf4b3c Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-353.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-470.gz b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-470.gz new file mode 100644 index 00000000000..72ac44a90e9 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-470.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-632319.gz b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-632319.gz new file mode 100644 index 00000000000..b3f91e77aa3 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-632319.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-7000.gz b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-7000.gz new file mode 100644 index 00000000000..23f132bf7ee Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/CONTCAR.mp-7000.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.NaCl.gz index a53b21bf02b..7d64693cdf3 100644 Binary files a/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.NaCl.gz and b/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.mp-470.gz b/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.mp-470.gz new file mode 100644 index 00000000000..69ed1783b9b Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.mp-470.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaCl.gz index 48e1bde2bdb..796993d42fd 100644 Binary files a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaCl.gz and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaSi.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaSi.gz index dcd3f64a7de..e1039f36e02 100644 Binary files a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaSi.gz and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.NaSi.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-190.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-190.gz new file mode 100644 index 00000000000..d937ddebaae Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-190.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-353.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-353.gz new file mode 100644 index 00000000000..67aa8ac0912 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-353.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-470.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-470.gz new file mode 100644 index 00000000000..f910bd2e853 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-470.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-632319.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-632319.gz new file mode 100644 index 00000000000..b93bc2b211a Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-632319.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-7000.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-7000.gz index 128a5c8c58c..79018523c41 100644 Binary files a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-7000.gz and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-7000.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-7000_2.gz b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-7000_2.gz new file mode 100644 index 00000000000..128a5c8c58c Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp-7000_2.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOOPLIST.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/ICOOPLIST.lobster.NaCl.gz index ec1436c3587..8b5b4618481 100644 Binary files a/tests/files/electronic_structure/cohp/environments/ICOOPLIST.lobster.NaCl.gz and b/tests/files/electronic_structure/cohp/environments/ICOOPLIST.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.mp_190.gz b/tests/files/electronic_structure/cohp/environments/POSCAR.mp-190_2.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.mp_190.gz rename to tests/files/electronic_structure/cohp/environments/POSCAR.mp-190_2.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.NaCl.gz new file mode 100644 index 00000000000..da6945d5af7 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.NaSi.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.NaSi.gz new file mode 100644 index 00000000000..cc8dba3ade5 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.NaSi.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-2284.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-2284.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-2284.gz rename to tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-2284.gz diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-241.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-241.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-241.gz rename to tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-241.gz diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-2741.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-2741.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-2741.gz rename to tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-2741.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-353.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-353.gz new file mode 100644 index 00000000000..35ac943d333 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-353.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-706.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-706.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp-706.gz rename to tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp-706.gz diff --git a/tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp_632319.gz b/tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp_632319.gz old mode 100755 new mode 100644 similarity index 100% rename from tests/files/electronic_structure/cohp/environments/CHARGE.lobster.mp_632319.gz rename to tests/files/electronic_structure/cohp/environments/old/CHARGE.lobster.mp_632319.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.NaSi.gz b/tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.NaSi.gz new file mode 100644 index 00000000000..4c3c269a0c8 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.NaSi.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.mp-190.gz b/tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.mp-190.gz new file mode 100644 index 00000000000..3a38a8fd5bc Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.mp-190.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-353.gz b/tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.mp-353.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/COHPCAR.lobster.mp-353.gz rename to tests/files/electronic_structure/cohp/environments/old/COHPCAR.lobster.mp-353.gz diff --git a/tests/files/electronic_structure/cohp/environments/GROSSPOP.lobster.mp-2284.gz b/tests/files/electronic_structure/cohp/environments/old/GROSSPOP.lobster.mp-2284.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/GROSSPOP.lobster.mp-2284.gz rename to tests/files/electronic_structure/cohp/environments/old/GROSSPOP.lobster.mp-2284.gz diff --git a/tests/files/electronic_structure/cohp/environments/GROSSPOP.lobster.mp-2741.gz b/tests/files/electronic_structure/cohp/environments/old/GROSSPOP.lobster.mp-2741.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/GROSSPOP.lobster.mp-2741.gz rename to tests/files/electronic_structure/cohp/environments/old/GROSSPOP.lobster.mp-2741.gz diff --git a/tests/files/electronic_structure/cohp/environments/GROSSPOP.lobster.mp-706.gz b/tests/files/electronic_structure/cohp/environments/old/GROSSPOP.lobster.mp-706.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/GROSSPOP.lobster.mp-706.gz rename to tests/files/electronic_structure/cohp/environments/old/GROSSPOP.lobster.mp-706.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/ICOBILIST.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/old/ICOBILIST.lobster.NaCl.gz new file mode 100644 index 00000000000..a53b21bf02b Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/ICOBILIST.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.mp_470.gz b/tests/files/electronic_structure/cohp/environments/old/ICOBILIST.lobster.mp_470.gz old mode 100755 new mode 100644 similarity index 100% rename from tests/files/electronic_structure/cohp/environments/ICOBILIST.lobster.mp_470.gz rename to tests/files/electronic_structure/cohp/environments/old/ICOBILIST.lobster.mp_470.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.NaCl.gz new file mode 100644 index 00000000000..48e1bde2bdb Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.NaSi.gz b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.NaSi.gz new file mode 100644 index 00000000000..dcd3f64a7de Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.NaSi.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp-7000.gz b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp-7000.gz new file mode 100644 index 00000000000..128a5c8c58c Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp-7000.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp_190.gz b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_190.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp_190.gz rename to tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_190.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_190_2.gz b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_190_2.gz new file mode 100644 index 00000000000..0249612af9e Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_190_2.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp_353.gz b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_353.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp_353.gz rename to tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_353.gz diff --git a/tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp_632319.gz b/tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_632319.gz old mode 100755 new mode 100644 similarity index 100% rename from tests/files/electronic_structure/cohp/environments/ICOHPLIST.lobster.mp_632319.gz rename to tests/files/electronic_structure/cohp/environments/old/ICOHPLIST.lobster.mp_632319.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/ICOOPLIST.lobster.NaCl.gz b/tests/files/electronic_structure/cohp/environments/old/ICOOPLIST.lobster.NaCl.gz new file mode 100644 index 00000000000..ec1436c3587 Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/ICOOPLIST.lobster.NaCl.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.NaCl.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.NaCl.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.NaCl.gz rename to tests/files/electronic_structure/cohp/environments/old/POSCAR.NaCl.gz diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.NaSi.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.NaSi.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.NaSi.gz rename to tests/files/electronic_structure/cohp/environments/old/POSCAR.NaSi.gz diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.mp-241.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp-241.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.mp-241.gz rename to tests/files/electronic_structure/cohp/environments/old/POSCAR.mp-241.gz diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.mp-7000.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp-7000.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.mp-7000.gz rename to tests/files/electronic_structure/cohp/environments/old/POSCAR.mp-7000.gz diff --git a/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_190.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_190.gz new file mode 100644 index 00000000000..78636ba720d Binary files /dev/null and b/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_190.gz differ diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.mp_353.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_353.gz similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.mp_353.gz rename to tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_353.gz diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.mp_470.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_470.gz old mode 100755 new mode 100644 similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.mp_470.gz rename to tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_470.gz diff --git a/tests/files/electronic_structure/cohp/environments/POSCAR.mp_632319.gz b/tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_632319.gz old mode 100755 new mode 100644 similarity index 100% rename from tests/files/electronic_structure/cohp/environments/POSCAR.mp_632319.gz rename to tests/files/electronic_structure/cohp/environments/old/POSCAR.mp_632319.gz diff --git a/tests/io/lobster/test_lobsterenv.py b/tests/io/lobster/test_lobsterenv.py index 1d56695803a..f65b7394132 100644 --- a/tests/io/lobster/test_lobsterenv.py +++ b/tests/io/lobster/test_lobsterenv.py @@ -2,7 +2,6 @@ from unittest import TestCase -import numpy as np import pytest from numpy.testing import assert_allclose from pytest import approx @@ -32,104 +31,109 @@ def setUp(self): self.chem_env_lobster1 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=1, + perc_strength_icohp=0.3, + noise_cutoff=0.0, ) # all bonds self.chem_env_lobster0 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=0, ) # only cation-cation, anion-anion bonds self.chem_env_lobster5 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=5, ) # only cation-cation bonds self.chem_env_lobster6 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=6, ) # 2,3,4 are not tested so far self.chem_env_lobster2 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=2, ) self.chem_env_lobster3 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=3, ) self.chem_env_lobster4 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=4, ) # search for other testcase where 2,3,4 arrive at different results self.chem_env_lobster0_second = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), additional_condition=0, + perc_strength_icohp=0.05, ) self.chem_env_lobster1_second = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), additional_condition=1, ) self.chem_env_lobster2_second = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), additional_condition=2, ) self.chem_env_lobster5_second = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), additional_condition=5, + perc_strength_icohp=0.05, ) self.chem_env_lobster5_second_percentage = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), additional_condition=5, perc_strength_icohp=1.0, ) self.chem_env_lobster6_second = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), additional_condition=6, + perc_strength_icohp=0.05, ) # coop / cobi self.chem_env_lobster1_coop_NaCl = LobsterNeighbors( are_coops=True, filename_icohp=f"{TEST_DIR}/ICOOPLIST.lobster.NaCl.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaCl.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaCl.gz"), additional_condition=1, noise_cutoff=None, ) @@ -137,51 +141,51 @@ def setUp(self): self.chem_env_lobster1_cobi_NaCl = LobsterNeighbors( are_coops=True, filename_icohp=f"{TEST_DIR}/ICOBILIST.lobster.NaCl.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaCl.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaCl.gz"), additional_condition=1, noise_cutoff=None, ) self.chem_env_lobster1_cobi_mp470 = LobsterNeighbors( are_coops=True, - filename_icohp=f"{TEST_DIR}/ICOBILIST.lobster.mp_470.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_470.gz"), + filename_icohp=f"{TEST_DIR}/ICOBILIST.lobster.mp-470.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-470.gz"), additional_condition=1, ) # TODO: use charge instead of valence self.chem_env_lobster1_charges = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=1, ) self.chem_env_lobster1_charges_noisecutoff = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_632319.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_632319.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-632319.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-632319.gz"), valences_from_charges=True, - filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp_632319.gz", + filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-632319.gz", additional_condition=1, perc_strength_icohp=0.05, noise_cutoff=0.1, ) self.chem_env_lobster1_charges_wo_noisecutoff = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_632319.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_632319.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-632319.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-632319.gz"), valences_from_charges=True, - filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp_632319.gz", + filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-632319.gz", additional_condition=1, perc_strength_icohp=0.05, noise_cutoff=None, ) self.chem_env_lobster1_charges_loewdin = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=1, @@ -189,8 +193,8 @@ def setUp(self): ) self.chem_env_lobster6_charges_additional_condition = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=6, @@ -198,8 +202,8 @@ def setUp(self): ) self.chem_env_lobster5_charges_additional_condition = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=5, @@ -207,8 +211,8 @@ def setUp(self): ) self.chem_env_lobster4_charges_additional_condition = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=4, @@ -216,8 +220,8 @@ def setUp(self): ) self.chem_env_lobster3_charges_additional_condition = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=3, @@ -225,8 +229,8 @@ def setUp(self): ) self.chem_env_lobster2_charges_additional_condition = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=2, @@ -234,8 +238,8 @@ def setUp(self): ) self.chem_env_lobster1_charges_additional_condition = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=1, @@ -244,8 +248,8 @@ def setUp(self): self.chem_env_lobster0_charges_additional_condition = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=0, @@ -254,7 +258,7 @@ def setUp(self): self.chem_env_lobster0_NaSi = LobsterNeighbors( are_coops=False, filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.NaSi.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaSi.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaSi.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.NaSi.gz", additional_condition=0, @@ -263,7 +267,7 @@ def setUp(self): self.chem_env_lobster_NaSi_wo_charges = LobsterNeighbors( are_coops=False, filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.NaSi.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaSi.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaSi.gz"), valences_from_charges=False, filename_charge=None, additional_condition=0, @@ -277,7 +281,7 @@ def setUp(self): are_coops=False, obj_icohp=self.obj_icohp, obj_charge=self.obj_charge, - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaSi.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaSi.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.NaSi.gz", additional_condition=0, @@ -316,8 +320,8 @@ def test_wrong_additional_correction(self): ): LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=10, @@ -326,8 +330,8 @@ def test_wrong_additional_correction(self): def test_set_limits(self): test = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_353.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-353.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.mp-353.gz", additional_condition=1, @@ -357,7 +361,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster0.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=0, ) ) @@ -366,7 +370,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster0.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=1, ) ) @@ -376,7 +380,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster1.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=0, ) ) @@ -385,7 +389,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster1.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=1, ) ) @@ -413,7 +417,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster2.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=0, ) ) @@ -422,7 +426,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster2.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=1, ) ) @@ -432,7 +436,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster3.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=0, ) ) @@ -441,7 +445,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster3.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=1, ) ) @@ -451,7 +455,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster4.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=0, ) ) @@ -460,7 +464,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster4.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=1, ) ) @@ -470,7 +474,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster5.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=0, ) ) @@ -479,7 +483,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster5.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=1, ) ) @@ -489,7 +493,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster6.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=0, ) ) @@ -499,7 +503,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster6.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), n=1, ) ) @@ -512,7 +516,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster0_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=0, ) ) @@ -523,7 +527,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster1_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=0, ) ) @@ -533,7 +537,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster1_coop_NaCl.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaCl.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaCl.gz"), n=0, ) ) @@ -543,7 +547,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster1_cobi_NaCl.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaCl.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaCl.gz"), n=0, ) ) @@ -553,7 +557,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster1_cobi_mp470.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_470.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-470.gz"), n=3, ) ) @@ -564,7 +568,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster2_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=0, ) ) @@ -573,7 +577,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster2_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=4, ) ) @@ -584,7 +588,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster5_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=0, ) ) @@ -593,17 +597,18 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster5_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=4, ) ) - == 0 + == 4 ) + # 6: ONLY_CATION_CATION_BONDS assert ( len( self.chem_env_lobster6_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=0, ) ) @@ -612,7 +617,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster6_second.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=4, ) ) @@ -622,7 +627,7 @@ def test_get_nn_info(self): assert ( len( self.chem_env_lobster5_second_percentage.get_nn( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=0, ) ) @@ -631,7 +636,7 @@ def test_get_nn_info(self): def test_structure_graph(self): sg = self.chem_env_lobster1_second.get_bonded_structure( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz") + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz") ) assert isinstance(sg, StructureGraph) @@ -639,7 +644,7 @@ def test_extended_structure_graph(self): self.chem_env_lobsterNaCl = LobsterNeighbors( are_coops=False, filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.NaCl.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaCl.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaCl.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.NaCl.gz", filename_blist_sg1=f"{TEST_DIR}/ICOBILIST.lobster.NaCl.gz", @@ -650,14 +655,14 @@ def test_extended_structure_graph(self): additional_condition=1, ) sg = self.chem_env_lobsterNaCl.get_bonded_structure( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaCl.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaCl.gz"), decorate=True, edge_properties=True, weights=True, ) - assert sg.graph.get_edge_data(0, 1)[0]["ICOHP"] == approx(-0.56541) - assert sg.graph.get_edge_data(0, 1)[0]["ICOBI"] == approx(0.08484) - assert sg.graph.get_edge_data(0, 1)[0]["ICOOP"] == approx(0.02826) + assert sg.graph.get_edge_data(0, 1)[0]["ICOHP"] == approx(-0.59138) + assert sg.graph.get_edge_data(0, 1)[0]["ICOBI"] == approx(0.08682) + assert sg.graph.get_edge_data(0, 1)[0]["ICOOP"] == approx(0.03007) assert sg.graph.get_edge_data(0, 1)[0]["bond_label"] == "21" assert sg.graph.get_edge_data(0, 1)[5]["bond_label"] == "30" assert isinstance(sg, StructureGraph) @@ -667,7 +672,7 @@ def test_raises_extended_structure_graph(self): self.chem_env_lobsterNaCl = LobsterNeighbors( are_coops=False, filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.NaCl.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.NaCl.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.NaCl.gz"), valences_from_charges=True, filename_charge=f"{TEST_DIR}/CHARGE.lobster.NaCl.gz", filename_blist_sg1=f"{TEST_DIR}/ICOBILIST.lobster.NaCl.gz", @@ -680,7 +685,7 @@ def test_raises_extended_structure_graph(self): def test_order_parameter(self): assert self.chem_env_lobster1_second.get_local_order_parameters( - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_353.gz"), n=0 + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-353.gz"), n=0 )["linear"] == approx(1.0) def test_get_structure_environments(self): @@ -699,42 +704,45 @@ def test_get_structure_environments_further_tests(self): def test_get_info_icohps_neighbors(self): results = self.chem_env_lobster1.get_info_icohps_to_neighbors(isites=[0]) - assert results[0] == approx(-33.26058) + assert results[0] == approx(-33.87452) for bond in results[1]: - assert bond == approx(-5.54345, abs=1e-3) + assert bond == approx(-5.64612, abs=1e-2) assert results[2] == 6 - assert results[3] == ["27", "30", "48", "49", "64", "73"] + assert results[3] == ["48", "27", "64", "73", "49", "30"] results2 = self.chem_env_lobster1.get_info_icohps_to_neighbors(isites=None) - assert results2[0] == approx(-33.26058) + assert results2[0] == approx(-33.87452) for bond in results2[1]: - assert bond == approx(-5.54345, abs=1e-3) + assert bond == approx(-5.64455, abs=1e-2) assert results2[2] == 6 - assert results2[3] == ["27", "30", "48", "49", "64", "73"] - assert results2[4] == [ - ["Re1", "O2"], - ["Re1", "O2"], - ["Re1", "O3"], - ["Re1", "O3"], - ["Re1", "O4"], - ["Re1", "O4"], - ] + + assert results2[3] == ["48", "27", "64", "73", "49", "30"] + from collections import Counter + + assert Counter(map(tuple, results2[4])) == Counter( + [("Re1", "O2"), ("Re1", "O2"), ("Re1", "O3"), ("Re1", "O3"), ("Re1", "O4"), ("Re1", "O4")] + ) def test_get_sum_icohps_between_neighbors_of_atom(self): # will only look at icohps between cations or anions self.chem_env_lobster1.get_info_icohps_to_neighbors(isites=[1]) assert self.chem_env_lobster1.get_info_icohps_between_neighbors(isites=[1])[2] == 1 - assert self.chem_env_lobster1.get_info_icohps_between_neighbors(isites=[1])[0] == approx(-0.05507) - assert self.chem_env_lobster1.get_info_icohps_between_neighbors(isites=[0])[2] == 15 + assert self.chem_env_lobster1.get_info_icohps_between_neighbors(isites=[1])[0] == approx(-0.04535) + + # confirmed by looking at the VESTA output + assert self.chem_env_lobster1.get_info_icohps_between_neighbors(isites=[0])[2] == 12 # use an example where this is easier to test (e.g., linear environment?) chemenv_here = LobsterNeighbors( are_coops=False, filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-7000.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp-7000.gz"), + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-7000.gz"), additional_condition=1, + perc_strength_icohp=0.05, + noise_cutoff=0.0, ) - assert len(chemenv_here.get_info_icohps_between_neighbors(isites=[0])[4]) == 6 + + assert len(chemenv_here.get_info_icohps_between_neighbors(isites=[0])[4]) == 2 def test_get_plot_label(self): label = self.chem_env_lobster1._get_plot_label( @@ -792,8 +800,8 @@ def test_get_plot_label(self): def test_get_info_cohps_to_neighbors(self): chem_env_lobster1 = LobsterNeighbors( are_coops=False, - filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp_190_2.gz", - structure=Structure.from_file(f"{TEST_DIR}/POSCAR.mp_190.gz"), + filename_icohp=f"{TEST_DIR}/ICOHPLIST.lobster.mp-190.gz", + structure=Structure.from_file(f"{TEST_DIR}/CONTCAR.mp-190.gz"), additional_condition=1, ) cohpcar_lobster_mp_190 = f"{TEST_DIR}/COHPCAR.lobster.mp-190.gz" @@ -805,15 +813,15 @@ def test_get_info_cohps_to_neighbors(self): assert plot_label == "6 x O-Re (per bond)" assert isinstance(summed_cohpcar_mp_190, Cohp) - coph_thing = chem_env_lobster1.get_info_cohps_to_neighbors( + cohp_result = chem_env_lobster1.get_info_cohps_to_neighbors( path_to_cohpcar=cohpcar_lobster_mp_190, isites=[0], only_bonds_to=None, per_bond=False, )[1] - assert np.sum([coph_thing.icohp[Spin.up], coph_thing.icohp[Spin.down]], axis=0)[300] == approx( - chem_env_lobster1.get_info_icohps_to_neighbors(isites=[0])[0] - ) + print(cohp_result.icohp[Spin.up][700]) + print(chem_env_lobster1.get_info_icohps_to_neighbors(isites=[0])[0]) + assert cohp_result.icohp[Spin.up][700] == approx(chem_env_lobster1.get_info_icohps_to_neighbors(isites=[0])[0]) # summed_spin_channel coph_thing = chem_env_lobster1.get_info_cohps_to_neighbors( @@ -823,7 +831,7 @@ def test_get_info_cohps_to_neighbors(self): per_bond=False, summed_spin_channels=True, )[1] - assert coph_thing.icohp[Spin.up][300] == approx(chem_env_lobster1.get_info_icohps_to_neighbors(isites=[0])[0]) + assert coph_thing.icohp[Spin.up][700] == approx(chem_env_lobster1.get_info_icohps_to_neighbors(isites=[0])[0]) plot_label, summed_cohpcar_mp_190_Te = chem_env_lobster1.get_info_cohps_to_neighbors( path_to_cohpcar=cohpcar_lobster_mp_190, @@ -845,7 +853,7 @@ def test_get_info_cohps_to_neighbors(self): obj_cohpcar = CompleteCohp.from_file( filename=f"{TEST_DIR}/COHPCAR.lobster.NaSi.gz", fmt="LOBSTER", - structure_file=f"{TEST_DIR}/POSCAR.NaSi.gz", + structure_file=f"{TEST_DIR}/CONTCAR.NaSi.gz", ) plot_label_obj, _summed_cohpcar_NaSi_obj = self.chem_env_w_obj.get_info_cohps_to_neighbors( obj_cohpcar=obj_cohpcar, @@ -883,7 +891,7 @@ def test_get_info_cohps_to_neighbors(self): with pytest.raises(ValueError, match=expected_msg): # icohplist and cohpcar do not fit together self.chem_env_lobster1.get_info_cohps_to_neighbors( - path_to_cohpcar=cohpcar_lobster_mp_190, + path_to_cohpcar=f"{TEST_DIR}/COHPCAR.lobster.mp-190_2.gz", isites=[0], only_bonds_to=None, per_bond=False, @@ -892,7 +900,7 @@ def test_get_info_cohps_to_neighbors(self): with pytest.raises(ValueError, match=expected_msg): # icohplist and cohpcar do not fit together self.chem_env_lobster2.get_info_cohps_to_neighbors( - path_to_cohpcar=cohpcar_lobster_mp_190, + path_to_cohpcar=f"{TEST_DIR}/COHPCAR.lobster.mp-190_2.gz", isites=[0], only_bonds_to=None, per_bond=False, @@ -904,12 +912,15 @@ def test_valences(self): -0.75, ] # Mulliken assert self.chem_env_lobster1_charges_loewdin.valences == [ - 0.27, - 0.27, - 0.27, - 0.27, - -0.54, - -0.54, + 0.51, + 0.51, + 0.51, + 0.51, + -1.01, + -1.01, ] - assert_allclose(self.chem_env_w_obj.valences, [0.67] * 4 + [0.7] * 4 + [-0.7] * 4 + [-0.68] * 4) # charge_obj + + assert_allclose( + self.chem_env_w_obj.valences, [0.66] * 4 + [0.69] * 4 + [-0.68] * 3 + [-0.69] + [-0.67] * 4 + ) # charge_obj assert self.chem_env_lobster_NaSi_wo_charges.valences == [1] * 8 + [-1] * 8 # BVA