libAtoms / workflow

python workflow toolkit
GNU General Public License v2.0
31 stars 18 forks source link

Global optimization of surface adsorbates. #263

Open jungsdao opened 1 year ago

jungsdao commented 1 year ago

Hello, In my previous paper, I was using iterative GAP training workflow in my own script. I wanted to incorporate this workflow into wfl package and I think now it works quite well within wfl package. I guess some of people might find this functionality useful. In order to implement this, I have modified quite some parts in minima hopping. I'm not sure how I could contribute in this regard, any advice would be appreciated!

bernstei commented 1 year ago

I've been thinking about this, and the fact that the current re-implementation of the iterative fit from the 2019 de novo exploration is inside wfl (in wfl/cli/gap_rss_iter_fit.py). I've come to think that the top-level scripts probably don't belong "inside" wfl, because they use wfl, but aren't really part of it (although your modifications to the minima hopping probably do belong inside it).

I really want to refactor my gap_rss_iter_fit anyway, so maybe this is the time to start. You should think about what of your changes are low level, in some sense (i.e. might be reusable by a wide range of people/tasks), and what's a particular high-level combination of operations (i.e. separate workflow operations from the actual top-level workflow). The former we can add to something inside wfl. The top level stuff I suggest we make a "scripts" directory, or something like that, and leave the wfl/cli/ for simple wrappers of individual wfl functions.

jungsdao commented 1 year ago

I think I can distinguish parts low/high level changes. I have a separate script file that actually performs iterative fitting routines and minima hopping which is tailored to this particular surface adsorbates problem. (high-level?) And this this script runs based on some modifications in "low-level" changes in wfl that I have made. However, I'm not sure those changes in low-level would conflict with current wfl. In this case should I try sth like Pull-request to check whether it can be incorporated?

bernstei commented 1 year ago

Yes - let's start with a PR for the low level changes, and we'll see how much (if any) that breaks. Then we can think about the best place to put the top-level script, if you want to contribute that as well.