The IVCharacteristics is not an object saved to the HDF5 file, it's a framework for computing lots of individual sets of configurations and later analyze them, but each configuration, transmission spectrum, potential, etc are saved as individual objects in the HDF5 file. Therefore, you can also read them easily using the nlread command, but it can be somewhat tricky to identify which one is which...
If you use
it will return ALL objects in the file, in a list. You can narrow this down by a particular class, so
nlread("file.hdf5", DeviceConfiguration)
will return a list of all configurations. Finally, you can ask for a specific configuration etc, by using
nlread("file.hdf5", object_id="name of object")[-1]
Note that nlread ALWAYS returns a list, even if only one object is found. This is why you need [-1] also when requesting a particular object. You can of course also use index=0 but this forum formats bracket-0-bracket funnily... It also smashes all text into one line when I use code blocks, making it hard to read, sorry.
The easiest way know the object name is to look in the GUI - you see it in your screenshots in the "name" column. Programmatically you can ask a file which object IDs it has using
from NL.IO.NLSaveUtilities import nlinspect
file_data = nlinspect("Builder_Stash.hdf5")
for i in file_data:
print(i.object_id)
You can in this way extract the converged state of a configuration at a specific bias (gate and source/drain) and compute additional quantities without ever having to redo the DFT+NEGF part. It is also possible to do additional analysis via the IVCharacteristics object itself, using the addAnalysis method (
https://docs.quantumatk.com/manual/Types/IVCharacteristics/IVCharacteristics.html#NL.Study.IVCharacteristics.IVCharacteristics.addAnalysis).
It's hard to tell what went wrong with the file, hopefully it's not corrupt. Maybe try reading it from the command Python environment instead, or restart the NanoLab GUI to see if that helps.