Dear VASP Community,
I am interested in using VASP to obtain ML force fields for a particular system. This is a functionality I haven't used before, so I'm keen to ensure I fully understand the process before using our computational resources to tackle our system. Whilst the information provided on the VASP Wiki has been very useful, there is one point that remains unclear to me.
The VASP Wiki states that it is often wise to train FFs for separate components of a system, such as a surface and an adsorbate, before training for the combined system, in order to minimise computational cost, and achieve optimal fitting. I understand that the key information is written to the ML_AB file which provides the data from previous MLFF runs, which can then be read at the start of a new MLFF run with additional components.
My question is - how do I combine multiple ML_AB files from previous calculations such that VASP will be able to read it correctly? It's clear to me that if, for example, I have a system consisting of adsorbate A and surface B, I can run VASP to generate ML_AB for component A, and then use that as an input file for the adsorbate-substrate complex (i.e. (A+B)), and the FF obtained for the components of A will be used to initialise the run for (A+B). However, I could also run VASP for component B alone first, obtain the ML_AB for that system, and then combine them. It seems the most expedient way to obtain good force fields would be to take the ML_AB file from both isolated components and combine them so that the (A+B) system has the most information available at initialisation, but it is unclear to me how one practically does this. Can ML_AB files simply be concatenated, like e.g. pseudopotentials in a POTCAR file, and VASP will just read in the data from a series of ML_AB files if they are combined in this way? Or does a particular format need to be adhered to? If the latter, are there scripts available that expedite this task? Any advice on this would be most appreciated.
An unrelated question on VASP ML force fields - I think others have raised this point for different codes, but is it at all possible to convert VASP ML force field output such that it could be used with the GULP code? I appreciate this may not be possible yet, given that ML potential fitting doesn't necessarily rely on the kind of potential models used by GULP (https://gulp.curtin.edu.au/models.html), but it would be interesting if this were a possibility in the future.
One final point: when one is satisfied with the ML force fields, the ML_MODE=run tag allows one to perform MD runs using the obtained potentials and without any ab initio component. Is it possible to to perform simple optimisation of a given structure based on the obtained ML force fields, analogous to geometry optimisation of structures within, say, GULP, in order to locate the nearest local minimum to the starting structure? I suppose it is probably possible to set up a MD run that will achieve this, but it might be more computationally demanding than simply running a geometry optimisation via e.g. structural phase space, whereas I suspect a MD run will rapidly converge on a global minimum structure and will sample the global minimum and nearby local minima at far higher frequency than perhaps comparable local minima that are further from the global minimum.
Thanks in advance for any comments or suggestions, your responses are greatly appreciated.