Skip to content

Commit 12d827f

Browse files
committed
Changing electric susceptibility units from e/V/A to eps_0 (vacuum permittivity).
1 parent 68853a1 commit 12d827f

File tree

5 files changed

+9
-6
lines changed

5 files changed

+9
-6
lines changed

mace/cli/visualise_train.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
("stress", "Stress [eV / A^3]"),
120120
("polarization", "Polarization [e / A^2]"),
121121
("becs", "Born Effective Charges [e]"),
122-
("polarizability", "Polarizability [e / V / A]"),
122+
("polarizability", "Polarizability [ε0]"),
123123
],
124124
),
125125
}

mace/modules/extensions.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,9 @@ def forward(
361361
# Cell volume
362362
volume = torch.linalg.det(cell.view(-1, 3, 3)).abs()
363363

364+
# Vacuum permittivity (units: e/V/A)
365+
eps0 = 8.8541878128e-12 / 1.602176634e-19 / 1e10
366+
364367
# Atomic energies
365368
node_e0 = self.atomic_energies_fn(data["node_attrs"])[
366369
num_atoms_arange, node_heads
@@ -498,7 +501,7 @@ def forward(
498501
polarizability = get_polarizability(
499502
polarization=polarization,
500503
electric_field=electric_field,
501-
) / volume.view(-1, 1, 1)
504+
) / volume.view(-1, 1, 1) / eps0
502505
else:
503506
polarizability = None
504507
polarization = polarization / volume.view(-1, 1)

mace/modules/loss.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ def forward(
680680
num_atoms,
681681
dim=0,
682682
).view(-1, 3, 3)
683-
configs_polarizability_weight = ref.polarizability_weight.view(-1, 3, 3) / 5.526349e-3 # divide by eps_0
683+
configs_polarizability_weight = ref.polarizability_weight.view(-1, 3, 3)
684684
_, fractional_difference = fold_polarization(
685685
pred["polarization"], ref["polarization"], ref["cell"]
686686
)

mace/tools/tables_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def create_error_table(
116116
"RMSE Stress (Virials) / meV / A (A^3)",
117117
"RMSE Polarisation / m|e| / A^2",
118118
"RMSE BECs / |e|",
119-
"RMSE Polarisability / |e| / V / A",
119+
"RMSE Polarisability / ε0",
120120
]
121121

122122
for name in sorted(all_data_loaders, key=custom_key):

mace/tools/train.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,9 @@ def valid_err_log(
157157
error_stress = eval_metrics["rmse_stress"] * 1e3
158158
error_polarization = eval_metrics["rmse_polarization"] * 1e3
159159
error_becs = eval_metrics["rmse_becs"]
160-
error_polarizability = eval_metrics["rmse_polarizability"] * 1e3
160+
error_polarizability = eval_metrics["rmse_polarizability"]
161161
logging.info(
162-
f"{inintial_phrase}: head: {valid_loader_name}, loss={valid_loss:8.8f}, RMSE_E_per_atom={error_e:8.8f} meV, RMSE_F={error_f:8.8f} meV / A, RMSE_stress={error_stress:8.8f} meV / A^3, RMSE_polarization={error_polarization:8.8f} m|e| / A^2, RMSE_becs={error_becs:8.8f} |e|, RMSE_polarizability={error_polarizability:8.8f} m|e| / V / A",
162+
f"{inintial_phrase}: head: {valid_loader_name}, loss={valid_loss:8.8f}, RMSE_E_per_atom={error_e:8.8f} meV, RMSE_F={error_f:8.8f} meV / A, RMSE_stress={error_stress:8.8f} meV / A^3, RMSE_polarization={error_polarization:8.8f} m|e| / A^2, RMSE_becs={error_becs:8.8f} |e|, RMSE_polarizability={error_polarizability:8.8f} ε0",
163163
)
164164

165165

0 commit comments

Comments
 (0)