def registerAtomType(self, parameters): """Register a new atom type. """ name = parameters['name'] if name in self._atomTypes: raise ValueError('Found multiple definitions for atom type: '+name) atomClass = parameters['class'] mass = _convertParameterToNumber(parameters['mass']) element = None if 'element' in parameters: element = self._create_element(parameters['element'], mass) self.non_element_types[element.name] = element self._atomTypes[name] = self.__class__._AtomType(name, atomClass, mass, element) if atomClass in self._atomClasses: typeSet = self._atomClasses[atomClass] else: typeSet = set() self._atomClasses[atomClass] = typeSet typeSet.add(name) self._atomClasses[''].add(name) name = parameters['name'] if 'def' in parameters: self.atomTypeDefinitions[name] = parameters['def'] if 'overrides' in parameters: overrides = set(parameters['overrides'].split(",")) if overrides: self.atomTypeOverrides[name] = overrides if 'des' in parameters: self.atomTypeDesc[name] = parameters['desc'] if 'doi' in parameters: self.atomTypeRefs[name] = parameters['doi']
def registerAtomType(self, parameters): """Register a new atom type. """ name = parameters['name'] if name in self._atomTypes: raise ValueError('Found multiple definitions for atom type: ' + name) atom_class = parameters['class'] mass = _convertParameterToNumber(parameters['mass']) element = None if 'element' in parameters: element, custom = self._create_element(parameters['element'], mass) if custom: self.non_element_types[element.symbol] = element self._atomTypes[name] = self.__class__._AtomType(name, atom_class, mass, element) if atom_class in self._atomClasses: type_set = self._atomClasses[atom_class] else: type_set = set() self._atomClasses[atom_class] = type_set type_set.add(name) self._atomClasses[''].add(name) name = parameters['name'] if 'def' in parameters: self.atomTypeDefinitions[name] = parameters['def'] if 'overrides' in parameters: overrides = set(parameters['overrides'].split(",")) if overrides: self.atomTypeOverrides[name] = overrides if 'des' in parameters: self.atomTypeDesc[name] = parameters['desc'] if 'doi' in parameters: self.atomTypeRefs[name] = parameters['doi']
def registerAtomType(self, parameters): """Register a new atom type. """ name = parameters['name'] if name in self._atomTypes: raise ValueError('Found multiple definitions for atom type: ' + name) atomClass = parameters['class'] mass = _convertParameterToNumber(parameters['mass']) element = None if 'element' in parameters: element = parameters['element'] if not isinstance(element, elem.Element): try: element = elem.get_by_symbol(element) except KeyError: # Enables support for non-atomistic "element types" if element not in self.non_element_types: warnings.warn( 'Non-atomistic element type detected. ' 'Creating custom element for {}'.format(element)) element = elem.Element(number=0, mass=parameters['mass'], name=element, symbol=element) self.non_element_types[element.name] = element self._atomTypes[name] = self.__class__._AtomType( name, atomClass, mass, element) if atomClass in self._atomClasses: typeSet = self._atomClasses[atomClass] else: typeSet = set() self._atomClasses[atomClass] = typeSet typeSet.add(name) self._atomClasses[''].add(name) name = parameters['name'] if 'def' in parameters: self._atomTypeDefinitions[name] = parameters['def'] if 'overrides' in parameters: overrides = set(parameters['overrides'].split(",")) if overrides: self._atomTypeOverrides[name] = overrides if 'des' in parameters: self._atomTypeDesc[name] = parameters['desc']
def registerAtomType(self, parameters): """Register a new atom type. """ name = parameters['name'] if name in self._atomTypes: raise ValueError('Found multiple definitions for atom type: '+name) atomClass = parameters['class'] mass = _convertParameterToNumber(parameters['mass']) element = None if 'element' in parameters: element = parameters['element'] if not isinstance(element, elem.Element): try: element = elem.get_by_symbol(element) except KeyError: # Enables support for non-atomistic "element types" if element not in self.non_element_types: warnings.warn('Non-atomistic element type detected. ' 'Creating custom element for {}'.format(element)) element = elem.Element(number=0, mass=parameters['mass'], name=element, symbol=element) self.non_element_types[element.name] = element self._atomTypes[name] = self.__class__._AtomType(name, atomClass, mass, element) if atomClass in self._atomClasses: typeSet = self._atomClasses[atomClass] else: typeSet = set() self._atomClasses[atomClass] = typeSet typeSet.add(name) self._atomClasses[''].add(name) name = parameters['name'] if 'def' in parameters: self._atomTypeDefinitions[name] = parameters['def'] if 'overrides' in parameters: overrides = set(parameters['overrides'].split(",")) if overrides: self._atomTypeOverrides[name] = overrides if 'des' in parameters: self._atomTypeDesc[name] = parameters['desc']