-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
quipGapXYZ: add unit convert and tag synonym matching #678
base: devel
Are you sure you want to change the base?
Changes from 5 commits
3a7171c
974c1b2
da807b8
26c6156
37b96b8
aebec7c
81a27d8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -7,6 +7,19 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import numpy as np | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from ..unit import EnergyConversion, ForceConversion | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
e_conv_kcalpermol2eV = EnergyConversion("kcal_mol", "eV").value() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
e_conv_au2eV = EnergyConversion("hartree", "eV").value() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
f_conv_kcalpermolperang2eVperang = ForceConversion( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"kcal_mol/angstrom", "eV/angstrom" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
).value() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
f_conv_auperang2eVperang = ForceConversion("hartree/angstrom", "eV/angstrom").value() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
f_conv_kcalpermolperbohr2eVperang = ForceConversion( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"kcal_mol/bohr", "eV/angstrom" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
).value() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
f_conv_au2eVperang = ForceConversion("hartree/bohr", "eV/angstrom").value() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
class QuipGapxyzSystems: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"""deal with QuipGapxyzFile.""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -82,56 +95,72 @@ def handle_single_xyz_frame(lines): | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
force_array = None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
virials = None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
for kv_dict in prop_list: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["key"] == "species": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "S": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for species must be 'S' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
try: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["key"] == "species": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "S": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for species must be 'S' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type_array = data_array[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:, used_colomn : used_colomn + field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
].flatten() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif kv_dict["key"] == "pos": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "R": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for pos must be 'R' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type_array = data_array[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:, used_colomn : used_colomn + field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
].flatten() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif kv_dict["key"] == "pos": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "R": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for pos must be 'R' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
coords_array = data_array[:, used_colomn : used_colomn + field_length] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif kv_dict["key"] == "Z": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "I": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for pos must be 'R' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
coords_array = data_array[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:, used_colomn : used_colomn + field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif kv_dict["key"] == "Z": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "I": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for pos must be 'R' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Z_array = data_array[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:, used_colomn : used_colomn + field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
].flatten() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif kv_dict["key"] == "force": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "R": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for pos must be 'R' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Z_array = data_array[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:, used_colomn : used_colomn + field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
].flatten() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif kv_dict["key"] == "tags": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "I": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for tags must be 'I' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
force_array = data_array[:, used_colomn : used_colomn + field_length] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif kv_dict["key"] == "force" or kv_dict["key"] == "forces": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if kv_dict["datatype"] != "R": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"datatype for pos must be 'R' instead of {}".format( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kv_dict["datatype"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_length = int(kv_dict["value"]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
force_array = data_array[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:, used_colomn : used_colomn + field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
used_colomn += field_length | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
except Exception as e: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is the error it is expected to catch? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
print("unknown field {}".format(kv_dict["key"]), e) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is the reason not to raise an error? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise RuntimeError("unknown field {}".format(kv_dict["key"])) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type_num_dict = OrderedDict() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atom_type_list = [] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -165,21 +194,126 @@ def handle_single_xyz_frame(lines): | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
virials = None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
try: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
e_units = np.array([field_dict["energy-unit"].lower()]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
f_units = np.array([field_dict["force-unit"].lower()]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
except Exception: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pass | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# print('No units information contained.') | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+197
to
+203
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Proper handling of missing unit information. The try-except block for handling missing unit information should raise an exception or log a warning if units are not found, rather than passing silently. - except Exception:
- pass
- # print('No units information contained.')
+ except KeyError as e:
+ raise ValueError("No units information contained.") from e Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict = {} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["nopbc"] = False | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["atom_names"] = list(type_num_array[:, 0]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["atom_numbs"] = list(type_num_array[:, 1].astype(int)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["atom_types"] = np.array(atom_type_list).astype(int) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["cells"] = np.array( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np.array(list(filter(bool, field_dict["Lattice"].split(" ")))).reshape( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3, 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["coords"] = np.array([coords_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["energies"] = np.array([field_dict["energy"]]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+211
to
+214
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If it is not used anymore, it should be removed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
try: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if e_units == "kcal/mol": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["energies"] = ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np.array([field_dict["energy"]]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* e_conv_kcalpermol2eV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif e_units in ["hartree", "au", "a.u."]: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["energies"] = ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np.array([field_dict["energy"]]).astype("float32") * e_conv_au2eV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif e_units == "ev": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["energies"] = np.array([field_dict["energy"]]).astype( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"float32" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is it converted to float32? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["energies"] = np.array([field_dict["energy"]]).astype( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"float32" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
except Exception: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is the expected error to catch here? It's hard to read. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
try: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
possible_fields = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"energy", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"energies", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"Energies", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"potential-energy.energy", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"Energy", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
for key in possible_fields: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if key in field_dict: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["energies"] = np.array( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[field_dict[key]], dtype="float32" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
break | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise ValueError("No valid energy field found in field_dict.") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
except KeyError: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
raise ValueError("Error while accessing energy fields in field_dict.") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Raise exceptions with Within an - raise ValueError("Error while accessing energy fields in field_dict.")
+ raise ValueError("Error while accessing energy fields in field_dict.") from None Committable suggestion
Suggested change
ToolsRuff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+235
to
+253
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Improved handling of possible energy fields and raising exceptions. The changes improve handling of possible energy fields and raising exceptions. Use - raise ValueError("Error while accessing energy fields in field_dict.")
+ raise ValueError("Error while accessing energy fields in field_dict.") from None Committable suggestion
Suggested change
ToolsRuff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
try: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if f_units == "kcal/mol/angstrom": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<<<<<<< HEAD | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") * f_conv_kcalpermolperang2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif f_units == "hartree/angstrom" or f_units == "hartree/ang" or f_units == "hartree/ang.": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") * f_conv_auperang2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif f_units == "kcal/mol/bohr": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") * f_conv_kcalpermolperbohr2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif f_units == "kcal/mol/bohr": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") * f_conv_au2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif f_units == "ev/angstrom" or f_units == "ev/ang" or f_units == "ev/ang.": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: info_dict["forces"] = np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
except Exception: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
======= | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* f_conv_kcalpermolperang2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
f_units == "hartree/angstrom" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
or f_units == "hartree/ang" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
or f_units == "hartree/ang." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np.array([force_array]).astype("float32") * f_conv_auperang2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif f_units == "kcal/mol/bohr": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* f_conv_kcalpermolperbohr2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif f_units == "kcal/mol/bohr": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np.array([force_array]).astype("float32") * f_conv_au2eVperang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+273
to
+275
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove redundant conditional block for The conditional block for - elif f_units == "kcal/mol/bohr":
- info_dict["forces"] = (
- np.array([force_array]).astype("float32") * f_conv_au2eVperang
- )
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
f_units == "ev/angstrom" or f_units == "ev/ang" or f_units == "ev/ang." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
except: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Avoid using bare Using bare - except:
+ except KeyError:
ToolsRuff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["forces"] = np.array([force_array]).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
>>>>>>> origin/devel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unit conversion for forces and redundant conditional block. The new logic for force unit conversion is correctly implemented but contains a redundant conditional block for - elif f_units == "kcal/mol/bohr":
- info_dict["forces"] = (
- np.array([force_array]).astype("float32") * f_conv_au2eVperang
- )
- except:
- info_dict["forces"] = np.array([force_array]).astype("float32")
+ except KeyError as e:
+ raise ValueError("Error while accessing force fields in field_dict.") from e
ToolsRuff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if virials is not None: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["virials"] = virials | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["orig"] = np.zeros(3) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if "Lattice" in field_dict and field_dict["Lattice"].strip(): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lattice_values = list(filter(bool, field_dict["Lattice"].split(" "))) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["cells"] = np.array( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[np.array(lattice_values).reshape(3, 3)] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lattice_values = np.array( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[[100.0, 0.0, 0.0], [0.0, 100.0, 0.0], [0.0, 0.0, 100.0]] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["nopbc"] = True | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info_dict["cells"] = np.array( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[np.array(lattice_values).reshape(3, 3)] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
).astype("float32") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return info_dict |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Improved field handling and error management.
The changes improve handling of fields like
species
,pos
,Z
,tags
, andforces
. The logic is sound, but avoid using bareexcept
statements for better debugging.Committable suggestion
Tools
Ruff