Some IO (e.g. solution) works with a file per variable, 2decomp&fft handles opening and closing a file and writing into it. Others (e.g. restart, outflow) works with a single file and the application is responsible for opening, passing a file handle to the writer and then closing the file. When trying to interface all with ADIOS2 this presents a challenge, the single file idea is close to ADIOS2 but with the explicit MPIIO calls results in many "#ifdef ADIOS2" which is generally undesirable. As a solution 2decopm&fft should handle file/engine handles for MPIIO/ADIOS2 on open/close and writing/reading will be given the appropriate handle, this makes the application oblivious to the IO backend.
Some IO (e.g. solution) works with a file per variable, 2decomp&fft handles opening and closing a file and writing into it. Others (e.g. restart, outflow) works with a single file and the application is responsible for opening, passing a file handle to the writer and then closing the file. When trying to interface all with ADIOS2 this presents a challenge, the single file idea is close to ADIOS2 but with the explicit MPIIO calls results in many "#ifdef ADIOS2" which is generally undesirable. As a solution 2decopm&fft should handle file/engine handles for MPIIO/ADIOS2 on open/close and writing/reading will be given the appropriate handle, this makes the application oblivious to the IO backend.