Closed Basti1211 closed 11 months ago
I think I would also like this feature for my workflow. I'm still learning the internals though.
It'd be nice to have them, but looking at the current code, I guess the issue is that the ace evaluator never explicitly saves them.
If I understand it correctly the relevant parts are here and here. In a custom program, it shouldn't too hard to change this part and just drop the multiplication with the weights*()
, but making it available via the ASE calculator nicely seems to be a bit harder.
We implemented them recently, just need some time to move it to public branch
I understand that exposing all B basis derivatives is much more memory heavy than doing the summation inline, but at least for my application it would already be enough to get the pairwise forces between atoms. Though now that I think about it, I'm not sure how you'd define those in terms of higher n-body correlations. I guess for the virial that the calculator outputs this has to be done somehow?
@pmrv @Basti1211 @mikejwaters @jmgoff I prototyped linear ACE fit (i.e. by calcualtion of separated B-func derivatives) in this branch https://github.com/ICAMS/python-ace/tree/feature/linear-fit
For linear ACE fit: check examples/linear-fit/Cu2_linear_fit.ipynb
For usage in Python: check i.e. this code here
For usage in C++, you can check how these gradients are collected into forces_bfuncs
here
check blocks
if (evaluator->compute_b_grad) {
...
}
Hi @yury-lysogorskiy, sorry for the delay but this is great news!
Ralf just gave a talk at my university and he spoke very highly of you. If I ever have free time again, maybe I can work on implementing hyperactive learning (also called GOFEE, or uncertainty biased molecular dynamics) with some oversight from you.
This is excellent, thank you! I've been looking into it some more, and it looks very clean and easy to use. I look forward to adding some of this to LAMMPS.
Hello,
your tool allows obtaining the projections of the B-basis for configurations. Does your tool also support retrieving the gradients of the B-basis functions at specific positions? I need those for a GPR-based approach to construct force kernels.
Best Regards!