Open ligerzero-ai opened 2 years ago
Here I note that I have preserved the output files via iteration naming, but I am not sure how to handle this properly in pyiron.
Happy to handle this, but I need to know the best/most elegant way to handle this with the pyiron internals. Some guidance and handholding may be necessary as to where it is most appropriate to change/add this functionality.
Check the {get,set}_eddrmm_handling
methods on the Vasp job. I think this should be the model system for automatic job submission. Basically you check the output whether an soft error was triggered and, if the user configured it, fire off a new job with the appropriate fixes applied.
Just from my gut I am against keeping it one job in the scheduler, because
The option to enable automatic reruns of "soft" errors in VASP, which are easily resolved by restarting the run with cp CONTCAR->POSCAR. (e.g. ZBRENT errors, running out of ionic steps)
When running high-throughput studies for my GB systems, I find that it is often useful to have automated resubmission and handling of these soft errors. This saves the user the trouble of having to handle these soft errors manually through resubmission and reduces noise in the job-postprocessing. This is easily handled by the addition of an if-statement in the actual shell script that is submitted to the system. See below for my script that I have macgyver'd to do this for me:
I am not exactly sure how to implement this in pyiron, but have discussed with @niklassiemer.
I think the key here is that we want to keep this as a single job in the job scheduler, but also preserve the in-between output if there are resubmissions so that we can leverage that data for later as well. Idk what is the best way to do this