[BUG] Issues with lammps conversion with lammps h5md format.
Description of the error MDANSE conversion job failure when I attempt to convert a file from an h5md file from LAMMPS. b6c0409b448cf941fed9e27a3989ba478422308c is the last working commit.
There were still issues at b6c0409b448cf941fed9e27a3989ba478422308c. I ran an NPT simulation, dumped to a LAMMPS h5md file, and converted; however, in MDANSE, the unit cell was fixed.
Additional details The following error is seen in the logs
2025-05-12 14:39:31,867 - CRITICAL - process[30352] - IJob 445 - Job failed with traceback: Traceback (most recent call last):
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Jobs\IJob.py", line 421, in run
self.initialize()
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 1049, in initialize
self._chemical_system = self.parse_first_step(self._atomicAliases)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 1169, in parse_first_step
chemical_system = self._reader.parse_first_step(aliases, self._lammpsConfig)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 860, in parse_first_step
label = config["elements"][ty]
~~~~~~~~~~~~~~~~~~^^^^
KeyError: -1
Process Subprocess-10:
Traceback (most recent call last):
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Jobs\IJob.py", line 421, in run
self.initialize()
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 1049, in initialize
self._chemical_system = self.parse_first_step(self._atomicAliases)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 1169, in parse_first_step
chemical_system = self._reader.parse_first_step(aliases, self._lammpsConfig)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 860, in parse_first_step
label = config["elements"][ty]
~~~~~~~~~~~~~~~~~~^^^^
KeyError: -1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\xcb63893\AppData\Local\anaconda3\envs\MDANSE\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE_GUI\Src\MDANSE_GUI\Subprocess\Subprocess.py", line 60, in run
self._job_instance.run(self._job_parameters)
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Jobs\IJob.py", line 446, in run
raise JobError(self, tb)
MDANSE.Framework.Jobs.IJob.JobError: Traceback (most recent call last):
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Jobs\IJob.py", line 421, in run
self.initialize()
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 1049, in initialize
self._chemical_system = self.parse_first_step(self._atomicAliases)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 1169, in parse_first_step
chemical_system = self._reader.parse_first_step(aliases, self._lammpsConfig)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xcb63893\PycharmProjects\MDANSE\MDANSE\Src\MDANSE\Framework\Converters\LAMMPS.py", line 860, in parse_first_step
label = config["elements"][ty]
~~~~~~~~~~~~~~~~~~^^^^
KeyError: -1
It is a good moment to consider if we want to drop LAMMPS H5MD files altogether.
Originally, the intention was to read the H5MD trajectories directly. Since it turned out that - last time I checked - the LAMMPS H5MD files did not include physical unit information, it was necessary to convert these trajectories anyway.
Or should we have some special way of reading LAMMPS H5MD, where the user could input the missing information, such as the unit system LAMMPS was using?