IO#

ATS IO includes three types: Visualization_, Observation_, and Checkpoint_. The latter is mostly an internal format that supports checkpoint/restart capabilities to allow runs to be continued.

The first two are both ways that the user interacts with simulation results. Visualization is dense in space but sparse in time. It saves every grid cell’s values, but realistically can only be done at a subset of timesteps. Observations are sparse in space but dense in time. They typically integrate or average a quantity across (a subset of) cells, but can be saved much more frequently (even every timestep). Therefore, they are complementary, and care should be taken to use the right one to adress a given goal.

Control of how frequently to write IO is shared across all three – each include an IOEvent_ as a part of their spec.