You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
frompymatgen.analysis.interfacesimportCoherentInterfaceBuilderfrompymatgen.core.structureimportStructurefrommp_api.clientimportMPResterid="mp-13"mpapi_key="key here"withMPRester(mpapi_key, mute_progress_bars=True) asmpr:
# get substrate datasummary=mpr.materials.summary.search(material_ids=id)[0]
s=substrate_summary.structure# make a simple homojunctioncib=CoherentInterfaceBuilder(s,s,(1,0,0),(1,1,1))
homojunctions=cib.get_interfaces(cib.terminations[0],film_thickness=8,substrate_thickness=8)
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\analysis\interfaces\coherent_interfaces.py:82, in CoherentInterfaceBuilder._find_matches(self)
60 film_sg = SlabGenerator(
61 self.film_structure,
62 self.film_miller,
(...)
68 reorient_lattice=False, # This is necessary to not screw up the lattice
69 )
71 sub_sg = SlabGenerator(
72 self.substrate_structure,
73 self.substrate_miller,
(...)
79 reorient_lattice=False, # This is necessary to not screw up the lattice
80 )
---> 82 film_slab = film_sg.get_slab(shift=0)
83 sub_slab = sub_sg.get_slab(shift=0)
85 film_vectors = film_slab.lattice.matrix
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\surface.py:1147, in SlabGenerator.get_slab(self, shift, tol, energy)
1145 # Center the slab layer around the vacuum
1146 if self.center_slab:
-> 1147 struct = center_slab(struct)
1149 # Reduce to primitive cell
1150 if self.primitive:
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\surface.py:762, in center_slab(slab)
759 all_indices = list(range(len(slab)))
761 # Get a reasonable cutoff radius to sample neighbors
--> 762 bond_dists = sorted(nn[1] for nn in slab.get_neighbors(slab[0], 10) if nn[1] > 0)
763 # TODO (@DanielYang59): magic number for cutoff radius (would 3 be too large?)
764 cutoff_radius = bond_dists[0] * 3
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\structure.py:1662, in IStructure.get_neighbors(self, site, r, include_index, include_image)
1641 def get_neighbors(
1642 self,
1643 site: PeriodicSite,
(...)
1646 include_image: bool = False,
1647 ) -> list[PeriodicNeighbor]:
1648 """Get all neighbors to a site within a sphere of radius r. Excludes the
1649 site itself.
1650
(...)
1660 PeriodicNeighbor
1661 """
-> 1662 return self.get_all_neighbors(r, include_index=include_index, include_image=include_image, sites=[site])[0]
Python version
Python 3.12.5
Pymatgen version
2024.8.9
Operating system version
Windows 11
Current behavior
Value error when trying to make interfaces
Expected Behavior
A list of possible homojunction structures
Minimal example
Relevant files to reproduce this bug
ValueError Traceback (most recent call last)
Cell In[7], line 12
9 summary = mpr.materials.summary.search(material_ids=id)[0]
10 s = substrate_summary.structure
---> 12 cib=CoherentInterfaceBuilder(s,s,(1,0,0),(1,1,1))
13 homojunctions=cib.get_interfaces(cib.terminations[0],film_thickness=8,substrate_thickness=8)
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\analysis\interfaces\coherent_interfaces.py:53, in CoherentInterfaceBuilder.init(self, substrate_structure, film_structure, film_miller, substrate_miller, zslgen)
50 self.substrate_miller = substrate_miller
51 self.zslgen = zslgen or ZSLGenerator(bidirectional=True)
---> 53 self._find_matches()
54 self._find_terminations()
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\analysis\interfaces\coherent_interfaces.py:82, in CoherentInterfaceBuilder._find_matches(self)
60 film_sg = SlabGenerator(
61 self.film_structure,
62 self.film_miller,
(...)
68 reorient_lattice=False, # This is necessary to not screw up the lattice
69 )
71 sub_sg = SlabGenerator(
72 self.substrate_structure,
73 self.substrate_miller,
(...)
79 reorient_lattice=False, # This is necessary to not screw up the lattice
80 )
---> 82 film_slab = film_sg.get_slab(shift=0)
83 sub_slab = sub_sg.get_slab(shift=0)
85 film_vectors = film_slab.lattice.matrix
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\surface.py:1147, in SlabGenerator.get_slab(self, shift, tol, energy)
1145 # Center the slab layer around the vacuum
1146 if self.center_slab:
-> 1147 struct = center_slab(struct)
1149 # Reduce to primitive cell
1150 if self.primitive:
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\surface.py:762, in center_slab(slab)
759 all_indices = list(range(len(slab)))
761 # Get a reasonable cutoff radius to sample neighbors
--> 762 bond_dists = sorted(nn[1] for nn in slab.get_neighbors(slab[0], 10) if nn[1] > 0)
763 # TODO (@DanielYang59): magic number for cutoff radius (would 3 be too large?)
764 cutoff_radius = bond_dists[0] * 3
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\structure.py:1662, in IStructure.get_neighbors(self, site, r, include_index, include_image)
1641 def get_neighbors(
1642 self,
1643 site: PeriodicSite,
(...)
1646 include_image: bool = False,
1647 ) -> list[PeriodicNeighbor]:
1648 """Get all neighbors to a site within a sphere of radius r. Excludes the
1649 site itself.
1650
(...)
1660 PeriodicNeighbor
1661 """
-> 1662 return self.get_all_neighbors(r, include_index=include_index, include_image=include_image, sites=[site])[0]
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\structure.py:1997, in IStructure.get_all_neighbors(self, r, include_index, include_image, sites, numerical_tol)
1995 if sites is None:
1996 sites = self.sites
-> 1997 center_indices, points_indices, images, distances = self.get_neighbor_list(
1998 r=r, sites=sites, numerical_tol=numerical_tol
1999 )
2000 if len(points_indices) < 1:
2001 return [[]] * len(sites)
File c:\Users\pavarga\AppData\Local\miniconda3\envs\mapi\Lib\site-packages\pymatgen\core\structure.py:1782, in IStructure.get_neighbor_list(self, r, sites, numerical_tol, exclude_self)
1780 lattice_matrix = np.ascontiguousarray(self.lattice.matrix, dtype=float)
1781 pbc = np.ascontiguousarray(self.pbc, dtype=int)
-> 1782 center_indices, points_indices, images, distances = find_points_in_spheres(
1783 cart_coords,
1784 site_coords,
1785 r=r,
1786 pbc=pbc,
1787 lattice=lattice_matrix,
1788 tol=numerical_tol,
1789 )
1790 cond = np.array([True] * len(center_indices))
1791 if exclude_self:
File src\pymatgen\optimization\neighbors.pyx:48, in pymatgen.optimization.neighbors.find_points_in_spheres()
ValueError: Buffer dtype mismatch, expected 'const int64_t' but got 'long'
The text was updated successfully, but these errors were encountered: