pymatgen.analysis.find_dimension module

find_clusters(struct, connected_list)[source]

Finds bonded clusters of atoms in the structure with periodic boundary conditions. If there are atoms that are not bonded to anything, returns [0,1,0].(For faster computation time in FindDimension())

Parameters:
  • struct (Structure) – Input structure
  • connected_list – Must be made from the same structure with FindConnected() function. An array of shape (number of bonded pairs, 2); each row of is of the form [atomi, atomj].
Returns:

the size of the largest cluster in the crystal structure min_cluster: the size of the smallest cluster in the crystal structure clusters: list of bonded clusters found here, clusters are formatted as sets of indices of atoms

Return type:

max_cluster

find_connected_atoms(struct, tolerance=0.45, ldict={'Ac': 1.88, 'Ag': 1.59, 'Al': 1.35, 'Am': 1.51, 'Ar': 1.57, 'As': 1.21, 'At': 1.7, 'Au': 1.5, 'B': 0.83, 'Ba': 1.34, 'Be': 0.35, 'Bh': 1.6, 'Bi': 1.54, 'Bk': 1.5, 'Br': 1.21, 'C': 0.68, 'Ca': 0.99, 'Cd': 1.69, 'Ce': 1.83, 'Cf': 1.5, 'Cl': 0.99, 'Cm': 1.5, 'Co': 1.33, 'Cr': 1.35, 'Cs': 1.67, 'Cu': 1.52, 'Db': 1.6, 'Dy': 1.75, 'Er': 1.73, 'Es': 1.5, 'Eu': 1.99, 'F': 0.64, 'Fe': 1.34, 'Fm': 1.5, 'Fr': 2, 'Ga': 1.22, 'Gd': 1.79, 'Ge': 1.17, 'H': 0.23, 'He': 0.93, 'Hf': 1.57, 'Hg': 1.7, 'Ho': 1.74, 'Hs': 1.6, 'I': 1.4, 'In': 1.63, 'Ir': 1.32, 'K': 1.33, 'Kr': 1.91, 'La': 1.87, 'Li': 0.68, 'Lr': 1.5, 'Lu': 1.72, 'Md': 1.5, 'Mg': 1.1, 'Mn': 1.35, 'Mo': 1.47, 'Mt': 1.6, 'N': 0.68, 'Na': 0.97, 'Nb': 1.48, 'Nd': 1.81, 'Ne': 1.12, 'Ni': 1.5, 'No': 1.5, 'Np': 1.55, 'O': 0.68, 'Os': 1.37, 'P': 0.75, 'Pa': 1.61, 'Pb': 1.54, 'Pd': 1.5, 'Pm': 1.8, 'Po': 1.68, 'Pr': 1.82, 'Pt': 1.5, 'Pu': 1.53, 'Ra': 1.9, 'Rb': 1.47, 'Re': 1.35, 'Rf': 1.6, 'Rh': 1.45, 'Rn': 2.4, 'Ru': 1.4, 'S': 1.02, 'Sb': 1.46, 'Sc': 1.44, 'Se': 1.22, 'Sg': 1.6, 'Si': 1.2, 'Sm': 1.8, 'Sn': 1.46, 'Sr': 1.12, 'Ta': 1.43, 'Tb': 1.76, 'Tc': 1.35, 'Te': 1.47, 'Th': 1.79, 'Ti': 1.47, 'Tl': 1.55, 'Tm': 1.72, 'U': 1.58, 'V': 1.33, 'W': 1.37, 'Xe': 1.98, 'Y': 1.78, 'Yb': 1.94, 'Zn': 1.45, 'Zr': 1.56})[source]

Finds the list of bonded atoms.

Parameters:
  • struct (Structure) – Input structure
  • tolerance – length in angstroms used in finding bonded atoms. Two atoms are considered bonded if (radius of atom 1) + (radius of atom 2) + (tolerance) < (distance between atoms 1 and 2). Default value = 0.45, the value used by JMol and Cheon et al.
  • ldict – dictionary of bond lengths used in finding bonded atoms. Values from JMol are used as default
  • standardize – works with conventional standard structures if True. It is recommended to keep this as True.
Returns:

A numpy array of shape (number of bonded pairs, 2); each row of is of the form [atomi, atomj]. atomi and atomj are the indices of the atoms in the input structure. If any image of atomj is bonded to atomi with periodic boundary conditions, [atomi, atomj] is included in the list. If atomi is bonded to multiple images of atomj, it is only counted once.

Return type:

connected_list

find_dimension(structure_raw, tolerance=0.45, ldict={'Ac': 1.88, 'Ag': 1.59, 'Al': 1.35, 'Am': 1.51, 'Ar': 1.57, 'As': 1.21, 'At': 1.7, 'Au': 1.5, 'B': 0.83, 'Ba': 1.34, 'Be': 0.35, 'Bh': 1.6, 'Bi': 1.54, 'Bk': 1.5, 'Br': 1.21, 'C': 0.68, 'Ca': 0.99, 'Cd': 1.69, 'Ce': 1.83, 'Cf': 1.5, 'Cl': 0.99, 'Cm': 1.5, 'Co': 1.33, 'Cr': 1.35, 'Cs': 1.67, 'Cu': 1.52, 'Db': 1.6, 'Dy': 1.75, 'Er': 1.73, 'Es': 1.5, 'Eu': 1.99, 'F': 0.64, 'Fe': 1.34, 'Fm': 1.5, 'Fr': 2, 'Ga': 1.22, 'Gd': 1.79, 'Ge': 1.17, 'H': 0.23, 'He': 0.93, 'Hf': 1.57, 'Hg': 1.7, 'Ho': 1.74, 'Hs': 1.6, 'I': 1.4, 'In': 1.63, 'Ir': 1.32, 'K': 1.33, 'Kr': 1.91, 'La': 1.87, 'Li': 0.68, 'Lr': 1.5, 'Lu': 1.72, 'Md': 1.5, 'Mg': 1.1, 'Mn': 1.35, 'Mo': 1.47, 'Mt': 1.6, 'N': 0.68, 'Na': 0.97, 'Nb': 1.48, 'Nd': 1.81, 'Ne': 1.12, 'Ni': 1.5, 'No': 1.5, 'Np': 1.55, 'O': 0.68, 'Os': 1.37, 'P': 0.75, 'Pa': 1.61, 'Pb': 1.54, 'Pd': 1.5, 'Pm': 1.8, 'Po': 1.68, 'Pr': 1.82, 'Pt': 1.5, 'Pu': 1.53, 'Ra': 1.9, 'Rb': 1.47, 'Re': 1.35, 'Rf': 1.6, 'Rh': 1.45, 'Rn': 2.4, 'Ru': 1.4, 'S': 1.02, 'Sb': 1.46, 'Sc': 1.44, 'Se': 1.22, 'Sg': 1.6, 'Si': 1.2, 'Sm': 1.8, 'Sn': 1.46, 'Sr': 1.12, 'Ta': 1.43, 'Tb': 1.76, 'Tc': 1.35, 'Te': 1.47, 'Th': 1.79, 'Ti': 1.47, 'Tl': 1.55, 'Tm': 1.72, 'U': 1.58, 'V': 1.33, 'W': 1.37, 'Xe': 1.98, 'Y': 1.78, 'Yb': 1.94, 'Zn': 1.45, 'Zr': 1.56}, standardize=True)[source]

Algorithm for finding the dimensions of connected subunits in a crystal structure. This method finds the dimensionality of the material even when the material is not layered along low-index planes, or does not have flat layers/molecular wires. See details at : Cheon, G.; Duerloo, K.-A. N.; Sendek, A. D.; Porter, C.; Chen, Y.; Reed, E. J. Data Mining for New Two- and One-Dimensional Weakly Bonded Solids and Lattice-Commensurate Heterostructures. Nano Lett. 2017.

Parameters:
  • structure (Structure) – Input structure
  • tolerance – length in angstroms used in finding bonded atoms. Two atoms are considered bonded if (radius of atom 1) + (radius of atom 2) + (tolerance) < (distance between atoms 1 and 2). Default value = 0.45, the value used by JMol and Cheon et al.
  • ldict – dictionary of bond lengths used in finding bonded atoms. Values from JMol are used as default
  • standardize – works with conventional standard structures if True. It is recommended to keep this as True.
Returns:

dimension of the largest cluster as a string. If there are ions or molecules it returns ‘intercalated ion/molecule’

Return type:

dim