If we want to ship openPMD BP5 + variable based encoding as new defaults, e.g., in ImpactX, then the read of those files must be friction less.
As of 0.17.1, such output must read with Access.read_linear / read_iterations() and random-access reads on variable-based series miss iterations (openPMD-api itself warns about this). This is super cumbersome for users, and especially our implementations in openPMD-viewer and ParaView, because one cannot seamless switch backends and encodings and has to add further options during read. Even more problematic, information that ones needs to have before even opening the series.
I think the logic we need to implement is that if a user opens a BP5 series that has variable based encoding with the wrong Access. mode, we switch to the right one. Probably even silently, because there is no way for a user to know upfront before opening the a .bp5 file if it uses that encoding.
Then, we need to make sure they can query at runtime if the current access mode supports random-access or only linear access to iterations, so we can branch accordingly when opening iterations.
What do you think? @franzpoeschel @guj @pnorbert
If we want to ship openPMD BP5 + variable based encoding as new defaults, e.g., in ImpactX, then the read of those files must be friction less.
As of 0.17.1, such output must read with
Access.read_linear/read_iterations()and random-access reads on variable-based series miss iterations (openPMD-api itself warns about this). This is super cumbersome for users, and especially our implementations in openPMD-viewer and ParaView, because one cannot seamless switch backends and encodings and has to add further options during read. Even more problematic, information that ones needs to have before even opening the series.I think the logic we need to implement is that if a user opens a BP5 series that has variable based encoding with the wrong
Access.mode, we switch to the right one. Probably even silently, because there is no way for a user to know upfront before opening the a.bp5file if it uses that encoding.Then, we need to make sure they can query at runtime if the current access mode supports random-access or only linear access to iterations, so we can branch accordingly when opening iterations.
What do you think? @franzpoeschel @guj @pnorbert