Input/Output for a PIC-based inhomogeneity strategy in walker

This page collects some ideas and requirements for software design of file-based input and output of large field data in Walker, using a particle-in-cell (PIC) strategy. For more details, advantages and disadvantages, on PIC-, and SPH-based inhomogeneity strategies, see the page on Strategies for inhomogeneous problems in walker.

Input format requirements

An algorithm based on a PIC-based inhomogeneity strategy in walker would require an Eulerian mesh. At this time, the plan is to keep it simple, and only support a Cartesian mesh for structured grid-applications and pure-tetrahedron unstructured meshes. Examples of supported mesh generators:

Input mesh file formats supported

See the page on MeshConv.

File output types

  1. Eulerian-mesh
  2. Checkpoint-Restart (particle and/or field, should be combined with existing support in Charm++)
  3. Diagnostics (small text of integral data)
  4. Statistics
  5. Probability density functions (PDF), joint PDFs, marginal PDFs, conditional PDFs, etc.

Output policies

  1. New time step overwrites existing file
  2. Multiple files for multiple time step data
  3. Store time evolution in single file

Input/Output requirements

  1. Fields I/O:
    • For large binary fields I/O we use ExodusII HDF5 (single file and multiple files), and Quinoa's native mesh format could be based on an ADIOS schema and .bp format.
    • For Exodus I/O we use the Seacas/ExodusII library in Trilinos.
  2. Particles I/O:
    • For large binary particle I/O we have interfaced with H5Part, a particle-centric I/O format based on HDF5.
    • We may also develop a native particles format based on an ADIOS schema and .bp format.
  3. Fields + Particles I/O:
    • For large binary field + particle I/O (same or separate file) a potential solution is to use the ADIOS library, which facilitates both file-based and stream-based I/O.
    • The stream-based ADIOS I/O API can then be used for both file-based and stream-based I/O, the latter facilitating staging and in-situ visualization (and debugging), e.g., via DataSpaces, NSSI, DataTap, DIMES, FlexPath, and/or ParaView/Catalyst.
    • We could develop our native fields + particles format based on ADIOS schema and .bp format.
    • Using an ADIOS visualization schema (or pulling our own) we could write our own ParaView reader plugin.