James Kermode
James Kermode
+1 for MicroLogging, from a quick look
Sounds good. `minimise!()` is a bit more difficult as it modifies the atoms object in place, so copying the input won't work - do you have an idea for that?
I suppose this would work: ```julia function minimise!(at::ASEAtoms, ...) jat = JuLIP.Atoms(at) minimise!(jat, ...) set_dofs!(at, dofs(jat)) end function ```
We have this in Python already :-)
https://gitlab.com/ase/ase/merge_requests/950
Essentially we use `spglib` to find the symmetry group and project out contributions to force and stress that depart from symmetry.
Yes - atomic positions may be symmetry-constrained for multilattices
Maybe this is a good example of a special-case that should be coded once, and this provides an opportunity to improve `JuLIP ASE` convenience bindings
It's currently implemented by wrapping the Calculator, but I've agreed to try to turn it into an ASE constraint. Could we add an `ASEConstraint` wrapper to JuLIP that calls `adjust_forces()`...
That's fair. In the ASE implementation we just project back on to the constraint manifold after each step and it seems to work (most of the time), even with the...