Peter Hill
Peter Hill
I've started looking at this in earnest now, and there are some design decisions we need to make. This post is quite long, but there's a fair bit to consider,...
Thanks John, some really useful points to think about there. Some more scattered thoughts in response! - For a parallel I/O option: now we've got generic factories, converting to an...
So a pretty severe limitation of netCDF is not being able to get the current extent of individual variables, only the maximum extent of an unlimited dimension (i.e. time). I've...
For context, the current `Ncxx4` implementation of `Dataformat` tracks the latest time index for each variable with a `map` in the `Ncxx4` instance (whereas `H5Format` can just query this information)....
That's the dimension IDs, rather than the dimensions themselves. It turns out if you just define a dimension like we currently do, netCDF basically just makes an empty dataset. If...
I've made some decent progress on this, but there's (at least) three points that need a bit of thinking about: 1. What should the new API look like? 2. Who...
A complication for automatic upgrading: some variables are only conditionally written. Here's an example from `test-drift-instability`: ```cpp if (evolve_ajpar) { solver->add(Ajpar, "Ajpar"); comms.add(Ajpar); output.write("ajpar\n"); } else { initial_profile("Ajpar", Ajpar); if...
That looks good! I'll have a go at implementing that. One slightly annoying thing is that we basically want the `Options::value_type` variant, but pointers instead of values. That would simplify...
I think the issue is that xarray doesn't read groups out of the box, but if you know what groups to read, it works? But yes, I would also like...
Ah good point! We'll need to keep track of `time_dimension` somehow -- it will either need to be stored in the `Monitor` base class, or `Solver` stores a vector of...