Skip to content

Commit

Permalink
fix problems with pymatgen radii
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Schwalbe-Koda committed Jul 15, 2020
1 parent 9a568a4 commit 5b5bab8
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 12 deletions.
31 changes: 19 additions & 12 deletions moldocker/samplers/voronoi.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
MIN_VORONOI_RADIUS = 3.0
REMOVE_SPECIES = []
NUM_CLUSTERS = 10
PYMATGEN_RADII = False


class VoronoiSampler(Sampler):
Expand All @@ -29,11 +30,13 @@ def __init__(
probe_radius=PROBE_RADIUS,
remove_species=REMOVE_SPECIES,
min_radius=MIN_VORONOI_RADIUS,
pymatgen_radii=PYMATGEN_RADII,
**kwargs
):
self.probe_radius = probe_radius
self.remove_species = remove_species
self.min_radius = min_radius
self.pymatgen_radii = pymatgen_radii

@staticmethod
def add_arguments(parser):
Expand Down Expand Up @@ -62,10 +65,7 @@ def remove_species_from_structure(self):
self._structure.remove_species(species)

def get_voronoi_structures(self):
try:
radii = self.get_atomic_radii()
except (ValueError, TypeError) as e:
radii = None
radii = self.get_atomic_radii()

with suppress_stdout():
nodes, edge_center, face_center = zeopp.get_voronoi_nodes(
Expand All @@ -75,14 +75,21 @@ def get_voronoi_structures(self):
return nodes, edge_center, face_center

def get_atomic_radii(self):
bv = BVAnalyzer()
valences = bv.get_valences(self._structure)
elements = [site.species_string for site in self._structure.sites]

valence_dict = dict(zip(elements, valences))
radii = {}
for k, v in valence_dict.items():
radii[k] = float(Specie(k, v).ionic_radius)
if not self.pymatgen_radii:
return None

try:
bv = BVAnalyzer()
valences = bv.get_valences(self._structure)
elements = [site.species_string for site in self._structure.sites]

valence_dict = dict(zip(elements, valences))
radii = {}
for k, v in valence_dict.items():
radii[k] = float(Specie(k, v).ionic_radius)

except (ValueError, TypeError) as e:
radii = None

return radii

Expand Down
1 change: 1 addition & 0 deletions moldocker/utils/timing.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from timeit import default_timer as timer


def time_fn(fn):
def wrapped(*args, **kwargs):
start = timer()
Expand Down

0 comments on commit 5b5bab8

Please sign in to comment.