Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 0 additions & 73 deletions express/parsers/apps/espresso/formats/xml/xml_base.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import re
from abc import abstractmethod

import numpy as np

Expand Down Expand Up @@ -61,38 +60,7 @@ def fermi_energy(self):
bs_tag = self.root.find(self.band_structure_tag)
return self._get_xml_tag_value(bs_tag.find(self.fermi_energy_tag)) * Constant.HARTREE

@abstractmethod
def nspins(self) -> int:
"""
Extracts the number of number of spin components.

Returns:
int
"""
pass

@abstractmethod
def final_lattice_vectors(self, reciprocal=False) -> dict:
"""
Extracts lattice.

Args:
reciprocal (bool): whether to extract reciprocal lattice.

Returns:
dict

Examples:
{
'vectors': {
'a': [-0.561154473, -0.000000000, 0.561154473],
'b': [-0.000000000, 0.561154473, 0.561154473],
'c': [-0.561154473, 0.561154473, 0.000000000],
'alat': 9.44858082
}
}
"""
pass

def get_inverse_reciprocal_lattice_vectors(self):
"""
Expand All @@ -102,45 +70,4 @@ def get_inverse_reciprocal_lattice_vectors(self):
lattice_array = [reciprocal_lattice["vectors"][i] for i in ["a", "b", "c"]]
return np.linalg.inv(np.array(lattice_array))

@abstractmethod
def eigenvalues_at_kpoints(self):
"""
Returns eigenvalues for all kpoints.

Returns:
list

Example:
[
{
'kpoint': [-0.5, 0.5, 0.5],
'weight': 9.5238095E-002,
'eigenvalues': [
{
'energies': [-1.4498446E-001, ..., 4.6507387E-001],
'occupations': [1, ... , 0],
'spin': 0.5
}
]
},
...
]
"""
pass

@abstractmethod
def final_basis(self):
"""
Extracts basis.

Returns:
dict

Example:
{
'units': 'angstrom',
'elements': [{'id': 0, 'value': 'Si'}, {'id': 1, 'value': 'Si'}],
'coordinates': [{'id': 0, 'value': [0.0, 0.0, 0.0]}, {'id': 1, 'value': [0.0, 0.0, 0.0]}]
}
"""
pass
35 changes: 13 additions & 22 deletions express/parsers/apps/espresso/formats/xml/xml_factory.py
Original file line number Diff line number Diff line change
@@ -1,40 +1,31 @@
import os
from typing import Optional, Union

from packaging import version

from express.parsers.apps.espresso import settings
from express.parsers.apps.espresso.formats.xml.xml_base import EspressoXMLParserBase
from express.parsers.apps.espresso.formats.xml.xml_post64 import EspressoXMLParserPostV6_4
from express.parsers.apps.espresso.formats.xml.xml_pre64 import EspressoXMLParserPreV6_4

VERSIONS = {
"Pre6_4": {
"parser": EspressoXMLParserPreV6_4,
"default_xml_file": settings.XML_DATA_FILE_PREv6_4,
},
"Post6_4": {
"parser": EspressoXMLParserPostV6_4,
"default_xml_file": settings.XML_DATA_FILE_POSTv6_4,
},
}


def get_xml_parser(
parser_version: Union[str, None], work_dir: str, is_sternheimer_gw: bool = False
) -> EspressoXMLParserBase:
parser_version = "6.4" if not parser_version else parser_version
if version.parse(parser_version) <= version.parse("6.4"):
version_key = "Pre6_4"
else:
version_key = "Post6_4"

"""
Get XML parser for espresso. Only supports post-6.4 versions.

Args:
parser_version: Version string (unused, kept for compatibility)
work_dir: Working directory
is_sternheimer_gw: Whether this is a Sternheimer GW calculation

Returns:
EspressoXMLParserPostV6_4 instance
"""
xml_file = find_xml_file(
work_dir,
VERSIONS[version_key]["default_xml_file"],
settings.XML_DATA_FILE,
is_sternheimer_gw,
)
return VERSIONS[version_key]["parser"](xml_file)
return EspressoXMLParserPostV6_4(xml_file)


def find_xml_file(work_dir: str, default_xml_filename: str, is_sternheimer_gw: bool) -> Optional[str]:
Expand Down
184 changes: 0 additions & 184 deletions express/parsers/apps/espresso/formats/xml/xml_pre64.py

This file was deleted.

3 changes: 1 addition & 2 deletions express/parsers/apps/espresso/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

PDOS_TOT_FILE = "pdos_tot"
NEB_PATH_FILE_SUFFIX = ".path"
XML_DATA_FILE_PREv6_4 = "data-file.xml"
XML_DATA_FILE_POSTv6_4 = "__prefix__.xml"
XML_DATA_FILE = "__prefix__.xml"
PHONON_DOS_FILE = "phonon_dos.out"
PHONON_MODES_FILE = "normal_modes.out"
AVERAGE_FILE = "avg.dat"
Expand Down
Empty file.
3 changes: 0 additions & 3 deletions tests/fixtures/espresso/v5_4/references.py

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading