Radial basis functions parameters #20
-
Hi! I have some questions about the choice of radial basis functions parameters.
I am confused by the fact that the default values are the opposite and the parameter |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 4 replies
-
Hi, thanks for reaching out. Yes, those options are correct for what you want to achieve. The default for Re the p-value. The default of p=6 works well in most cases. We use p=48 in the Li3PO4 case in the paper since the cutoff is quite small at 4 Angstrom. The envelope function damps interactions at larger radii -- so a smaller p will damp more. We find this helps for extrapolation tests, but if you combine a small p with a short cutoff, you'll overdamp. Therefore we used the p=48 in the paper for the short cutoff. Can you share what your cutoff is and what equivariance errors you're seeing? (i.e. on which symmetries and which targets). Thanks! |
Beta Was this translation helpful? Give feedback.
-
@Linux-cpp-lisp @simonbatzner, thanks for your comments!
Indeed, I overlooked the default value.
I’ve made some tests with float64 arithmetic and it seems that the equivariance problem was due to the usage of single precision calculations. All errors are gone with I attach the toy problem (10 configuration, bcc titanium, 128 atoms) with the simple yaml file. For example, r_max=4.0 with p=48 ( I will do the additional tests to see the influence of precision on the resultants errors in energy and forces. |
Beta Was this translation helpful? Give feedback.
-
Thanks for sending this. Yeah for a 4A cutoff, small p-values might hurt you. Can you get away with a larger cutoff? (more expensive but will be more accurate). This overall looks like the smallest config we used in the paper. This will be super scalable and should work, but if you can trade off some speed for accuracy that might be worth it. E.g. I'd definitely use l_max=2, 2 layers, larger MLPs, and more features if I can afford it. |
Beta Was this translation helpful? Give feedback.
Hi, thanks for reaching out. Yes, those options are correct for what you want to achieve. The default for
normalize_basis
should be true. The default forBesselBasis_trainable
is true in the example.yaml since it sometimes gives improvement, but we usually see no big effect. Usually safer to just turn it off by default and if you have time/compute try if it helps.Re the p-value. The default of p=6 works well in most cases. We use p=48 in the Li3PO4 case in the paper since the cutoff is quite small at 4 Angstrom. The envelope function damps interactions at larger radii -- so a smaller p will damp more. We find this helps for extrapolation tests, but if you combine a small p with a short c…