def get_dimensionality(s: Structure, method='Gorai') -> int: """ Wrapper for the pymatgen dimensionality function. Args: s (pymatgen.Structure): Structure object method (str): method used for the dimensionality check. Currently only Gorai algorithm implemented Returns: """ if method == 'Gorai': dim = dimensionality.get_dimensionality_gorai(s) else: raise NotImplementedError return dim
def get_cheon_gorai_dim(self): """Convenience method for getting Cheon and Gorai dims. These algorithms take some time. Returns: None: (sets instance variables). """ cheon_dim_str = get_dimensionality_cheon(self.structure) if cheon_dim_str == "0D": cheon_dim = 0 elif cheon_dim_str == "1D": cheon_dim = 1 elif cheon_dim_str == "2D": cheon_dim = 2 elif cheon_dim_str == "3D": cheon_dim = 3 else: cheon_dim = None self.cheon_dim = cheon_dim self.gorai_dim = get_dimensionality_gorai(self.structure)
def test_get_dimensionality_with_bonds(self): s = self.get_structure('CsCl') self.assertEqual(get_dimensionality_gorai(s), 1) self.assertEqual( get_dimensionality_gorai(s, bonds={("Cs", "Cl"): 3.7}), 3)
def test_get_dimensionality(self): s = self.get_structure('LiFePO4') self.assertEqual(get_dimensionality_gorai(s), 3) s = self.get_structure('Graphite') self.assertEqual(get_dimensionality_gorai(s), 2)
def test_get_dimensionality_with_bonds(self): s = self.get_structure('CsCl') self.assertEqual(get_dimensionality_gorai(s), 1) self.assertEqual(get_dimensionality_gorai(s, bonds={("Cs", "Cl"): 3.7}), 3)
def test_get_dimensionality(self): s = self.get_structure('LiFePO4') self.assertEqual(get_dimensionality_gorai(s), 3) s = self.get_structure('Graphite') self.assertEqual(get_dimensionality_gorai(s), 2)
def plug_in(symbol_values): structure = symbol_values['structure'] return {'dimensionality': str(get_dimensionality_gorai(structure))}