Skip to content
Snippets Groups Projects
Commit 42b2b0ea authored by Markus Scheidgen's avatar Markus Scheidgen
Browse files

Fixed insufficient handling of atom positions.

parent 4114f96b
No related branches found
No related merge requests found
# Copyright 2016-2018 Lauri Himanen, Fawzi Mohamed # Copyright 2016-2018 Lauri Himanen, Fawzi Mohamed
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
# You may obtain a copy of the License at # You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, # distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
...@@ -18,6 +18,7 @@ from yaml import Loader, YAMLError ...@@ -18,6 +18,7 @@ from yaml import Loader, YAMLError
from yaml import ScalarNode, SequenceNode, MappingNode, MappingEndEvent from yaml import ScalarNode, SequenceNode, MappingNode, MappingEndEvent
from nomadcore.baseclasses import AbstractBaseParser from nomadcore.baseclasses import AbstractBaseParser
from bigdftparser.generic.libxc_codes import LIB_XC_MAPPING from bigdftparser.generic.libxc_codes import LIB_XC_MAPPING
import ase.data
LOGGER = logging.getLogger("nomad") LOGGER = logging.getLogger("nomad")
...@@ -143,8 +144,11 @@ class BigDFTMainParser(AbstractBaseParser): ...@@ -143,8 +144,11 @@ class BigDFTMainParser(AbstractBaseParser):
np_labels = [] np_labels = []
positions = value["Positions"] positions = value["Positions"]
for position in positions: for position in positions:
np_positions.append(*position.values()) for key, value in position.items():
np_labels.append(*position.keys()) # Not all keys are chemical symbols, e.g. spin, etc.
if key in ase.data.chemical_symbols:
np_positions.append(value)
np_labels.append(key)
np_positions = np.array(np_positions) np_positions = np.array(np_positions)
np_labels = np.array(np_labels) np_labels = np.array(np_labels)
self.backend.addArrayValues("atom_positions", np_positions, unit="angstrom") self.backend.addArrayValues("atom_positions", np_positions, unit="angstrom")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment