rocketsled is a very exciting tool and I am curious on how to run it together with atomate for first-principles calculations.
For instance, we want to get the “global” minimum of a structure, which can be searched by varying initial positions of some atoms and carrying out DFT calculations for local structure optimization. Regarding the objective function y = f (x), y is the total energy and x is a list of atomic coordinates. The following is our preliminary thinking on the use of rocketsled/atomate.
-
x_dim: the range of internal coordinates of certain atoms.
-
definition of run_task:
(1) The x vector is combined with other atomic coordinates (not variables but constants) to give the input structure.
(2) create a workflow of structure optimization and do DFT calculations using the default settings of atomate. The data of total energy is then stored into MongoDB ( (db: dft) by Custodian automatically.
(3) return y (the total energy) by making a query to the MongoDB (db: dft). -
definition of wf_creator:
the same as in the rocketsled/examples/basic.py, where the db info is based on a new database (db: rsled). -
Setting and execution of MissionControl: similar to basic.py.
I am not sure if the above thinking is practicable or not. Will the OptTask generate a x vector and run the same code as in the run_task? In my knowledge, rocketsled is an extension of FireWorks and running it with atomate (MongoDB/FireWorks/Custodian/Pymatgen) should be possible in principle.
I have been searching for sample python scripts on the integration of atomate/rocketsled, but haven’t found any yet. I would be very grateful to comments and suggestions. Thank you very much.