Source code for aiida.parsers.plugins.quantumespresso

# -*- coding: utf-8 -*-
from aiida.parsers.exceptions import OutputParsingError

__copyright__ = u"Copyright (c), This file is part of the AiiDA platform. For further information please visit http://www.aiida.net/. All rights reserved."
__license__ = "MIT license, see LICENSE.txt file."
__version__ = "0.7.0"
__authors__ = "The AiiDA team."


class QEOutputParsingError(OutputParsingError):
    pass
    # def __init__(self,message):
    # wrappedmessage = "Error parsing Quantum Espresso PW output: " + message
    #     super(QEOutputParsingError,self).__init__(wrappedmessage)
    #     self.message = wrappedmessage
    #     self.module = "qe-pw"


[docs]def convert_qe2aiida_structure(output_dict, input_structure=None): """ Receives the dictionary cell parsed from quantum espresso Convert it into an AiiDA structure object """ from aiida.orm import DataFactory StructureData = DataFactory('structure') cell_dict = output_dict['cell'] # If I don't have any help, I will set up the cell as it is in QE if not input_structure: s = StructureData(cell=cell_dict['lattice_vectors']) for atom in cell_dict['atoms']: s.append_atom(position=tuple(atom[1]), symbols=[atom[0]]) else: s = input_structure.copy() s.reset_cell(cell_dict['lattice_vectors']) new_pos = [i[1] for i in cell_dict['atoms']] s.reset_sites_positions(new_pos) return s