tdep-developers/tdep

[ERROR] LAMMPS Format Option Segfaults

ejmeitz opened this issue · 10 comments

When using the option output_format on both the generate_structure and canonical_configuration (and I expect any binary that has this option) I get an error when using the LAMMPS format.

The command I ran was from the MgO example, but I added the -of 3 option to the end:
canonical_configuration -n 4 -t 300 -mf 20 --quantum -of 3

At line 571 of file type_crystalstructure_io.f90 (unit = 100, file = 'lammps_conf0001')
Fortran runtime error: Expected INTEGER for item 4 in formatted transfer, got REAL
(i10,e20.8,a)
 ^
mjv500 commented

Hi - please pull and check (and confirm) if the format fix is ok.

flokno commented

@mjv500 maybe a good motivation to include #10 as well (preferably via a PR that closes both issues, but we can do that manually of course)?

mjv500 commented

The error is now on the next item of the format string:

At line 571 of file type_crystalstructure_io.f90 (unit = 100, file = 'lammps_conf0001')
Fortran runtime error: Expected INTEGER for item 5 in formatted transfer, got CHARACTER
(i10,e20.8,2a)
^

flokno commented

Ok @ejmeitz this should fix it: #36

Please confirm on your end and we're good to go

Command runs well now, I believe you need an new (empty) line after the "Masses" heading for it to get parsed right though. With that space it gets parsed correctly. (quite the annoying format in my opinion).

The command also prints Have not fixed velocity output for LAMMMPS yet to the terminal. Not sure if you meant to leave that there.

Here's an example file that LAMMPS generated internally.
initial_structure_LJ.txt

flokno commented

@ejmeitz ok thanks for checking. LAMMPS seems to be a little problematic.

We discussed the issue and tend towards removing native LAMMPS support as we don't use (and maintain) it ourselves. Converting (default) VASP POSCARs to Lammps is as easy as e.g.

ase convert contcar_conf0001 -i vasp lammps.in -o lammps-data (--write-args masses=True)

Would that be fine?

Fine by me, I dont actually use the LAMMPS format was just testing stuff for the JOSS paper and this was the thing that broke. I guess I'd say just remove it as an option rather than leave it half working maybe?

That format is problematic in many ways, I understand why this would be faster.

flokno commented

@ejmeitz ok I removed lammps altogether now. I'll update the docs once we all agree on this.

In case somebody would try to use the lammps interface, we now exit with

 ERROR
 exit code 8: Feature removed

 Native LAMMPS IO was removed, please use external converters.

I also removed the holding stuff from build_things.sh

flokno commented

Public website is also updated