PDI supports loose coupling of simulation codes with libraries:
- the simulation code is annotated in a library-agnostic way,
- libraries are used from the specification tree.
This approach works well for a number of concerns including: parameters reading, data initialization, post-processing, result storage to disk, visualization, fault tolerance, logging, inclusion as part of code-coupling, inclusion as part of an ensemble run, etc.
I initially created PDI through the funding of the EoCoE grant. Since then, many people worked on PDI, including: