Commit 8320fc41 authored by eric pellegrini's avatar eric pellegrini

bug fix when transmutating atoms from an atom selection different to 'all'

parent 7c0d220c
......@@ -105,14 +105,17 @@ class AtomSelectionConfigurator(IConfigurator):
parser = AtomSelectionParser(trajConfig["instance"])
indexes.update(parser.parse(v))
indexes = sorted(list(indexes))
self["flatten_indexes"] = sorted(list(indexes))
trajConfig = self._configurable[self._dependencies['trajectory']]
atoms = sorted(trajConfig["universe"].atomList(), key = operator.attrgetter('index'))
selectedAtoms = [atoms[idx] for idx in indexes]
self["selection_length"] = len(indexes)
self["selection_length"] = len(self["flatten_indexes"])
self['indexes'] = [[idx] for idx in self["flatten_indexes"]]
self['elements'] = [[at.symbol] for at in selectedAtoms]
self['indexes'] = [[idx] for idx in indexes]
self['names'] = [at.symbol for at in selectedAtoms]
self['unique_names'] = sorted(set(self['names']))
self['masses'] = [[ELEMENTS[n,'atomic_weight']] for n in self['names']]
......
......@@ -112,12 +112,18 @@ class AtomTransmutationConfigurator(IConfigurator):
raise ConfiguratorError("the element %r is not registered in the database" % element, self)
atomSelConfigurator = self._configurable[self._dependencies['atom_selection']]
for idx in selection:
atomSelConfigurator["names"][idx] = element
atomSelConfigurator["elements"][idx] = [element]
try:
idxInSelection = atomSelConfigurator["flatten_indexes"].index(idx)
except ValueError:
pass
else:
atomSelConfigurator["names"][idxInSelection] = element
atomSelConfigurator["elements"][idxInSelection] = [element]
atomSelConfigurator['unique_names'] = sorted(set(atomSelConfigurator['names']))
atomSelConfigurator['masses'] = [[ELEMENTS[n,'atomic_weight']] for n in atomSelConfigurator['names']]
def get_information(self):
'''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment