-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Hi,
I encountered a few issues while running the test_operator_derivative function in tests/test_fhcl_force.py, and I’d like to confirm whether these are expected behaviors or if I misunderstood something.
1. Argument order in csv_to_molecular_reps
The arguments passed to generate_fchl18 and its variants seem to be in the wrong order. It should be:
rep = generate_fchl18(
nuclear_charges, coordinates, max_size=max_atoms, cut_distance=CUT_DISTANCE
)
disp_rep = generate_fchl18_displaced(
nuclear_charges, coordinates, max_size=max_atoms, cut_distance=CUT_DISTANCE, dx=DX
)
disp_rep5 = generate_fchl18_displaced_5point(
nuclear_charges, coordinates, max_size=max_atoms, cut_distance=CUT_DISTANCE, dx=DX
)Currently, it uses coordinates, nuclear_charges, which appears to cause issues in descriptor generation.
2. Force padding and shape mismatch
In test_operator_derivative, this line causes issues if molecules have different atom counts:
Fall = np.array(Fall)Since Fall contains force arrays with variable shape (based on atom count), this conversion fails or produces incorrect concatenation. I removed this line and used padding only where necessary for specific operations.
3. MAE assertions failing
The following assertions fail for me with current default settings:
assert mae(Ess, Es) < 0.08, "Error in operator test energy"
assert mae(Et, E) < 0.04, "Error in operator training energy"
assert mae(Fss, Fs.flatten()) < 1.1, "Error in operator test force"
assert mae(Ft, F.flatten()) < 0.1, "Error in operator training force"The computed MAEs exceed the specified thresholds and vary between runs, sometimes significantly(lager than 20 eV).
In some cases, the errors are much higher than expected.
I wonder if:
- These values are outdated for the current kernel/hyperparameters?
- Or additional regularization should be introduced ?
System Info
Python: 3.10.18 | packaged by conda-forge | (main, Jun 4 2025, 14:45:41) [GCC 13.3.0]
Platform: Linux-5.14.0-503.40.1.el9_5.x86_64-x86_64-with-glibc2.34
NumPy: 2.2.6
SciPy: 1.15.2
qmllib: 1.1.9
The code I used is attached below.
Please let me know if I’m missing something or if this behavior is expected.
I’d be happy to help contribute fixes as well.
Thanks!