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
4 changes: 2 additions & 2 deletions express/parsers/apps/espresso/formats/xml/xml_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ class EspressoXMLParserBase(BaseXMLParser):

TAG_VALUE_CAST_MAP = {
"character": lambda v, s, c: v,
"integer": lambda v, s, c: np.array([int(_) for _ in re.findall(GENERAL_REGEX.int_number, v)]).reshape(
"integer": lambda v, s, c: np.array([int(_) for _ in re.findall(GENERAL_REGEX["int_number"], v)]).reshape(
[s // c, c]
),
"real": lambda v, s, c: np.array([float(_) for _ in re.findall(GENERAL_REGEX.double_number, v)]).reshape(
"real": lambda v, s, c: np.array([float(_) for _ in re.findall(GENERAL_REGEX["double_number"], v)]).reshape(
[s // c, c]
),
"logical": lambda v, s, c: False if v in ["F", "false"] else True,
Expand Down
2 changes: 1 addition & 1 deletion express/parsers/apps/espresso/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
WAVEFUNCTION_FILE = "wf_r.dat"

COMMON_REGEX = r"{0}\s+[=:<>]\s*([-+]?\d*\.?\d*([Ee][+-]?\d+)?)"
DOUBLE_REGEX = GENERAL_REGEX.double_number
DOUBLE_REGEX = GENERAL_REGEX["double_number"]

STERNHEIMER_GW0_DIR_PATTERN = "/_gw0/"
STERNHEIMER_GW_TITLE = "SternheimerGW"
Expand Down
2 changes: 1 addition & 1 deletion express/parsers/apps/nwchem/settings.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from express.parsers.settings import GENERAL_REGEX

COMMON_REGEX = r"{}\s+[=:<>]\s*([-+]?\d*\.?\d*([Ee][+-]?\d+)?)"
DOUBLE_REGEX = GENERAL_REGEX.double_number
DOUBLE_REGEX = GENERAL_REGEX["double_number"]
NWCHEM_OUTPUT_FILE_REGEX = "Northwest Computational Chemistry Package"

REGEX = {
Expand Down
22 changes: 11 additions & 11 deletions express/parsers/apps/vasp/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@

REGEX = {
"total_energy": {
"regex": r"F=\s+({0})".format(GENERAL_REGEX.double_number),
"regex": r"F=\s+({0})".format(GENERAL_REGEX["double_number"]),
"start_flag": "entering main loop",
"occurrences": -1,
"output_type": "float",
},
"ibz_kpoints": {
"regex": r"({double})\s+({double})\s+({double})\s+{double}".format(double=GENERAL_REGEX.double_number)
"regex": r"({double})\s+({double})\s+({double})\s+{double}".format(double=GENERAL_REGEX["double_number"])
},
"convergence_electronic": {
"regex": r".+:\s+(\d+)\s+{0}\s+({0})".format(GENERAL_REGEX.double_number),
"regex": r".+:\s+(\d+)\s+{0}\s+({0})".format(GENERAL_REGEX["double_number"]),
"output_type": "float",
"match_groups": [1, 2],
},
Expand All @@ -26,46 +26,46 @@
"regex": r"direct lattice vectors.+\n"
r"\s+({double})\s+({double})\s+({double}).+\n"
r"\s+({double})\s+({double})\s+({double}).+\n"
r"\s+({double})\s+({double})\s+({double})".format(double=GENERAL_REGEX.double_number)
r"\s+({double})\s+({double})\s+({double})".format(double=GENERAL_REGEX["double_number"])
},
"basis_vectors": {
"regex": r"\s+({double})\s+({double})\s+({double})\s+{double}\s+{double}\s+{double}".format(
double=GENERAL_REGEX.double_number
double=GENERAL_REGEX["double_number"]
)
},
"pressure": {
"regex": r"external pressure\s+=\s+({0})\s+kB".format(GENERAL_REGEX.double_number),
"regex": r"external pressure\s+=\s+({0})\s+kB".format(GENERAL_REGEX["double_number"]),
"occurrences": -1,
"output_type": "float",
},
"total_force": {
"regex": r"total drift:\s+({0})\s+({0})\s+({0})".format(GENERAL_REGEX.double_number),
"regex": r"total drift:\s+({0})\s+({0})\s+({0})".format(GENERAL_REGEX["double_number"]),
"occurrences": -1,
"output_type": "float",
"match_groups": [1, 2, 3],
},
"zero_point_energy": {
"regex": r"f\s\s=.*2PiTHz\s+\d+\.\d+\s+cm\-1\s+({0})\s+meV".format(GENERAL_REGEX.double_number),
"regex": r"f\s\s=.*2PiTHz\s+\d+\.\d+\s+cm\-1\s+({0})\s+meV".format(GENERAL_REGEX["double_number"]),
"start_flag": "Eigenvectors and eigenvalues of the dynamical matrix",
"output_type": "float",
},
}

TOTAL_ENERGY_CONTRIBUTIONS = {
"hartree": {
"regex": _COMMON_REGEX.format("Hartree", GENERAL_REGEX.double_number),
"regex": _COMMON_REGEX.format("Hartree", GENERAL_REGEX["double_number"]),
"occurrences": -1,
"output_type": "float",
"match_groups": [1, 2, 3, 4, 5, 6],
},
"ewald": {
"regex": _COMMON_REGEX.format("Ewald", GENERAL_REGEX.double_number),
"regex": _COMMON_REGEX.format("Ewald", GENERAL_REGEX["double_number"]),
"occurrences": -1,
"output_type": "float",
"match_groups": [1, 2, 3, 4, 5, 6],
},
"exchange_correlation": {
"regex": _COMMON_REGEX.format("E\(xc\)", GENERAL_REGEX.double_number),
"regex": _COMMON_REGEX.format("E\(xc\)", GENERAL_REGEX["double_number"]),
"occurrences": -1,
"output_type": "float",
"match_groups": [1, 2, 3, 4, 5, 6],
Expand Down
22 changes: 8 additions & 14 deletions express/parsers/settings.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from math import pi
from munch import Munch


class Constant(object):
Expand All @@ -9,7 +8,7 @@ class Constant(object):

_c = 299792458.0 # speed of light, m/s
_mu0 = 4.0e-7 * pi # permeability of vacuum
_eps0 = 1 / _mu0 / _c**2 # permittivity of vacuum
_eps0 = 1 / _mu0 / _c ** 2 # permittivity of vacuum
_Grav = 6.67259e-11 # gravitational constant
_hplanck = 6.6260755e-34 # Planck constant, J s
_hbar = _hplanck / (2 * pi) # Planck constant / 2pi, J s
Expand All @@ -19,9 +18,9 @@ class Constant(object):
_Nav = 6.0221367e23 # Avogadro number
_k = 1.380658e-23 # Boltzmann constant, J/K
_amu = 1.6605402e-27 # atomic mass unit, kg
BOHR = 4e10 * pi * _eps0 * _hbar**2 / _me / _e**2 # Bohr radius in angstrom
BOHR = 4e10 * pi * _eps0 * _hbar ** 2 / _me / _e ** 2 # Bohr radius in angstrom
eV = 1.0
HARTREE = _me * _e**3 / 16 / pi**2 / _eps0**2 / _hbar**2 # in eV
HARTREE = _me * _e ** 3 / 16 / pi ** 2 / _eps0 ** 2 / _hbar ** 2 # in eV
RYDBERG = 0.5 * HARTREE # in eV
Ry = RYDBERG
Ha = HARTREE
Expand All @@ -31,17 +30,12 @@ class Constant(object):
ry_bohr_to_eV_A = 25.71104309541616 # or RYDBERG / BOHR


GENERAL_REGEX = Munch()
GENERAL_REGEX.update({"double_number": r"[-+]?\d*\.\d+(?:[eE][-+]?\d+)?", "int_number": r"[+-]?\d+"})

GENERAL_REGEX = {"double_number": r"[-+]?\d*\.\d+(?:[eE][-+]?\d+)?", "int_number": r"[+-]?\d+"}

# Maps the format keywords used in this code to their corresponding ase keywords.
ASE_FORMATS = {"poscar": "vasp", "cif": "cif", "espresso-in": "espresso-in"}

ATOMIC_REGEX = Munch()
ATOMIC_REGEX.update(
{
"orbitalName": r"[1-9][sSpPdDfF]",
"atomicSpecies": r"[a-zA-Z]{1,2}[\d+]?",
}
)
ATOMIC_REGEX = {
"orbitalName": r"[1-9][sSpPdDfF]",
"atomicSpecies": r"[a-zA-Z]{1,2}[\d+]?",
}
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ classifiers = [
"Topic :: Software Development",
]
dependencies = [
"munch==2.5.0",
"pymatgen>=2023.8.10",
"ase>=3.17.0",
"mat3ra-esse>=2026.3.25.post0",
Expand Down
Loading