Firework Fizzles, although VASP Run Completes

Hello, I am running many elastic property workflow calculations and the runs seem to complete properly as indicated by the vasp.out output, however at the completion of the run when the VASP job completes VASP exits with a bad status (segfault).

Ultimately the VASP run completes and the necessary output files are written however VASP signals a bad status which makes Fireworks and Atomate believe the job didn’t run properly.

Are there any suggestions for overcoming this bad exit status given by VASP at the end of the run to prevent Fireworks from detecting a Fizzled job? i.e. would you recommend recompiling VASP, or some tag to provide to Fireworks to ignore certain VASP exit statuses?

last lines of output from ‘vasp.out’:
DAV: 16 -0.229026603320E+02 0.88618E-06 -0.99512E-07 75516 0.408E-03
1 F= -.22902660E+02 E0= -.22902660E+02 d E =-.229027E+02 mag= 0.0000
curvature: 0.00 expect dE= 0.000E+00 dE for cont linesearch 0.000E+00
trial: gam= 0.00000 g(F)= 0.346E-06 g(S)= 0.000E+00 ort = 0.000E+00 (trialstep = 0.100E+01)
search vector abs. value= 0.346E-06
reached required accuracy - stopping structural energy minimisation

selected output from ‘stderr.txt’:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
vasp_std 0000000001571F61 Unknown Unknown Unknown
vasp_std 000000000157009B Unknown Unknown Unknown
vasp_std 00000000014EFE74 Unknown Unknown Unknown
vasp_std 00000000014EFC86 Unknown Unknown Unknown
vasp_std 000000000148CFC7 Unknown Unknown Unknown
vasp_std 0000000001493BF0 Unknown Unknown Unknown
libpthread-2.12.s 0000003C4A60F790 Unknown Unknown Unknown
vasp_std 0000000000866553 Unknown Unknown Unknown
vasp_std 000000000085B28E Unknown Unknown Unknown
vasp_std 000000000085E9E6 Unknown Unknown Unknown
vasp_std 000000000131A030 Unknown Unknown Unknown
vasp_std 000000000040DFDE Unknown Unknown Unknown 0000003C4A21ED5D __libc_start_main Unknown Unknown
vasp_std 000000000040DEE9 Unknown Unknown Unknown



I would first make sure your job is actually OK and finished properly. For example, does your OUTCAR show run timing information at the end, and is your vasprun.xml file complete (has closing xml tags at the end)?

The best solution is of course to ensure that your VASP compilation is correct and doesn’t throw any errors.

If you want to hack things a bit more, there is a DEFUSE_UNSUCCESSFUL parameter in atomate that controls the default value of the defuse_unsuccessful parameter in VaspToDbTask. If you set this False, anything goes and atomate won’t try to check if the job is truly complete. Note that the job will still appear as “unsuccessful” in the tasks database.

You can also try to hack at the code in VaspDrone to see if you can your specific job to show up as successful. But do this only at your own risk, those checks are there for a reason.

Btw, my inkling here is that VASP did not truly complete. i.e., it ran out of memory while doing some post-processing calculations after reaching the end of the calculation. Again, check the last lines of your OUTCAR to make sure the timing information displays as in a normal completed job (not vasp.out).

Thanks so much for your help, I have been side tracked by another project, but will try some of your suggestions soon and post back my findings.