9 Jul 2024 |
mjwaters | I mean look at ISIF, you need a matrix to understand it | 07:20:07 |
mjwaters | https://www.vasp.at/wiki/index.php/ISIF | 07:20:08 |
Adam Jackson | Right, I'm thinking about Pythonic ways to package that "vasp-specific" knowledge into data for a "naive" parser | 07:20:10 |
Adam Jackson | But the writer should learn all it needs if ISIF is an int, right? | 07:20:58 |
Adam Jackson | I think INCAR is consistent that all the entries are key=value so we can skip printing any item that =None | 07:22:08 |
mjwaters | ediffg positive or negative? | 07:22:18 |
mjwaters | another example. | 07:22:32 |
mjwaters | that's all. | 07:22:35 |
Adam Jackson | EDIFFG is an example of ways that the syntax is hard to remember, but it's not a hard one for a machine to write. (It would be a problem if we converted from a general syntax where user specifies geom_force_tol and geom_energy_tol ; then that step would have to know that in VASP these are mutually-exclusive.) | 07:25:01 |
mjwaters | magmoms | 07:25:51 |
mjwaters | there. | 07:25:53 |
Adam Jackson | Yeah was going to say. Magmoms and DFT+U are the worst part both for users "by hand" and for ASE | 07:26:39 |
Adam Jackson | Especially as ASE pre-sorts the structure so the order in INCAR does not correspond to Atoms | 07:27:16 |
Adam Jackson | I think it does make sense software-wise to separate a "naive" INCAR writer and a preprocessor that sorts out those parameters. Perhaps we already do that, I remember the DFT+U code was a bit complicated | 07:29:10 |
mjwaters | I think the writer is smart enough to handle the sorting now. | 07:33:38 |
11 Jul 2024 |
Ask Hjorth Larsen | Bar is open over at #ase-bar:matrix.org | 19:07:51 |
johnrkitchin | In reply to @mjwaters:matrix.org I think the writer is smart enough to handle the sorting now. maybe the only thing more difficult than this sorting is a nearest neighbor list... | 19:19:50 |
mjwaters | In reply to @johnrkitchin:matrix.org maybe the only thing more difficult than this sorting is a nearest neighbor list... Did you implement it? I noticed how clever it is. | 22:43:42 |
mjwaters | Is anyone here going to AIMS2024 next week? | 22:45:05 |
johnrkitchin | In reply to @mjwaters:matrix.org Did you implement it? I noticed how clever it is. I can't take credit for that, but I spent a few months trying to build a differentiable neighborlist for an MLP once, and there are so many corners! And spent a lot of time on the vasp sorting issues in the past. | 23:20:22 |
sirmarcel | out of curiosity, what do you mean by differentiable in this context? | 23:23:40 |
12 Jul 2024 |
Tristan Maxson | sirmarcel: probably a smooth 0-1 activation of the neighbor entering the neighborlist? For smooth changes in coordination numbers etc. Actually D3/D4 has an implementation that might be useful to know of | 00:54:02 |
Tristan Maxson | Just incase this is useful for someone, I wouldn't mind someone finding a place for this in ASE. I use the CN function quite often, GCN slightly less, D3 CNs almost never just because they are sometimes unphysical and need tuned better for solid state materials.
https://gitlab.com/-/snippets/3727996 | 01:04:15 |
johnrkitchin | In reply to @sirmarcel:matrix.org out of curiosity, what do you mean by differentiable in this context? I mean that if you write a potential with a neighbor list that you can use automatic differentiation on the energy to get forces, for example. There are several ways that neighbor lists result in derivatives with NaN in them that can be tricky to avoid. For example, if there is 1/r anywhere (where r is a distance), r=0 for the distance of an atom to itself, so this has to be handled. I recall things like this coming up especially with PBCs. Another issue I had a long time ago is there was no differentiable inverse matrix operation, so I had to write one. A lot has changed since then, and now these issues are probably not as important. | 11:10:43 |
13 Jul 2024 |
mjwaters | In reply to @mjwaters:matrix.org Is anyone here going to AIMS2024 next week? Hmm no responses. | 06:43:10 |
mjwaters | I maybe made too many ASE fridge magnets. | 06:43:34 |
Anubhab Haldar | OOOF. | 15:53:29 |
sirmarcel | Thanks johnrkitchin for the clarification! Things have indeed changed at least a little bit, any decent AD framework can in principle differentiate through this stuff. But it's still a bit tricky. Here's my (quadratic) crack at it, for example: https://github.com/sirmarcel/glp/blob/main/glp/neighborlist.py | 20:45:01 |
18 Jul 2024 |
Ask Hjorth Larsen | Bar is open over in #ase-bar:matrix.org | 18:59:58 |
21 Jul 2024 |
| Chang-Hao Fang joined the room. | 03:11:57 |