<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 &lt;<a href="mailto:rhaas@aei.mpg.de">rhaas@aei.mpg.de</a>&gt; 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> &nbsp;the HDF5 output of Multipole<br></blockquote><div><br></div><div>I have thought about this a fair amount before. &nbsp;Many thorns use their own output routines because Cactus does not provide what they need. &nbsp;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. &nbsp;For example, AHFinderDirect and Multipole. &nbsp;PunctureTracker handles this by creating Cactus variables for its data. &nbsp;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. &nbsp;Multipole cannot use this mechanism, because it wants to write ascii files with different names for different l,m,r,var combinations. &nbsp;It could use a 5-dimensional grid array for this, but this would be very wasteful, and also impossible for humans to read. &nbsp;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". &nbsp;These tables would have named "columns", and the "files" could be real ASCII files, or extensible datasets in HDF5 files. &nbsp;The "rows" of the tables would correspond to output iterations. &nbsp;The data would not have to correspond to Cactus variables. &nbsp;Output would happen via aliased function calls. &nbsp;Probably we would have an initial call to "register" the output table, and subsequent calls to add to it. &nbsp;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). &nbsp;</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. &nbsp;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>--&nbsp;</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>