<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On 31 Aug 2015, at 17:53, Roland Haas <<a href="mailto:rhaas@aei.mpg.de">rhaas@aei.mpg.de</a>> wrote:</div><div><br></div><blockquote type="cite">writing timeseries data into hdf5:<br>* Frank would like to use this for things like the Hamiltonian norm<br>* HDF5 supports extensible datasets, an example on how to use this is<br> the HDF5 output of Multipole<br></blockquote><div><br></div><div>I have thought about this a fair amount before. Many thorns use their own output routines because Cactus does not provide what they need. The Cactus output methods are designed to output grid variables and grid arrays, but many thorns would like to output tables of data which do not correspond to Cactus variables. For example, AHFinderDirect and Multipole. PunctureTracker handles this by creating Cactus variables for its data. The down-side to this is that all the "trackers" are always output, leading to a very large number of columns in the ascii output, making it impossible for a human to understand without tedious column-counting. Multipole cannot use this mechanism, because it wants to write ascii files with different names for different l,m,r,var combinations. It could use a 5-dimensional grid array for this, but this would be very wasteful, and also impossible for humans to read. HDF5 output of grid arrays is very immature, and rarely does what you want (e.g. it usually creates one dataset per iteration, making reading the file very tedious).</div><div><br></div><div>Instead, I think there should be a Cactus mechanism for outputting "tables" of data to "files". These tables would have named "columns", and the "files" could be real ASCII files, or extensible datasets in HDF5 files. The "rows" of the tables would correspond to output iterations. The data would not have to correspond to Cactus variables. Output would happen via aliased function calls. Probably we would have an initial call to "register" the output table, and subsequent calls to add to it. Whether the output happens via ascii or hdf5 should be transparent to the application code, controlled just by an option somewhere (either in the application, maybe a parameter, similar to how the interpolator options are handled). </div><div><br></div><div>Such a system would allow a fair amount of duplicated code and logic to be eliminated, and provide nice clean consistent output files across all thorns that need them. This would also simplify parsing of these files by analysis tools, as the formats would be guaranteed to be the same.</div><div><br></div></div><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>-- </div><div>Ian Hinder</div><div><a href="http://members.aei.mpg.de/ianhin">http://members.aei.mpg.de/ianhin</a></div></div></div></div></div>
</div>
<br></body></html>