<div dir="ltr">The file index is required by Ensight for all transient single file formats. The documentation also states that Ensight automatically writes out the file index information, so I would consider any transient single file format that doesn't have it be malformed.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Apr 19, 2013 at 7:57 AM, Georg Hammerl <span dir="ltr"><<a href="mailto:hammerl@lnm.mw.tum.de" target="_blank">hammerl@lnm.mw.tum.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Robert,<br>
<br>
thanks for the hint with the file index. The ensight gold files I
have available come with a file index. I have tried to use it in
Paraview, however it seems that the
VTK/IO/Ensight/vtkEnSightGoldBinaryReader does not make use of the
index. <br>
Unfortunately, I do not have enough insight into the inner
workings of VTK, so I cannot see myself creating a clean
implementation for using the file index.<br>
<br>
As the file index is just optional, I think it should be worth
implementing an efficient way of reading ensight gold format even
without the file index.<br>
<br>
Cheers,<br>
<br>
Georg<div><div class="h5"><span><br>
</span><br>
<br>
On 18/04/13 20:06, Robert Maynard wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">Hi Georg,
<div><br>
</div>
<div>You are correct that a more efficient solution is possible.
After reading the Ensight Gold binary format ( <a href="http://www-vis.lbl.gov/NERSC/Software/ensight/doc/OnlineHelp/UM-C11.pdf" target="_blank">http://www-vis.lbl.gov/NERSC/Software/ensight/doc/OnlineHelp/UM-C11.pdf</a>
) I have discovered how you can do this more efficiently.</div>
<div><br>
</div>
<div>If you are start at 11-37 you will see that they state:</div>
<div><br>
</div>
<blockquote>
<div>
<div>"Note 3: Efficient reading of each file (especially
binary) is facilitated by </div>
</div>
<div>
<div>appending each file with a file index. A file index
contains appropriate </div>
</div>
<div>
<div>information to access the file byte positions of each
time step in the file. (EnSight </div>
</div>
<div>
<div>automatically appends a file index to each file when
exporting in transient single </div>
</div>
<div>
<div>file format.) If used, the file index must follow the
last END TIME STEP</div>
</div>
<div>
<div>wrapper in each file."</div>
</div>
<div>
<div><br>
</div>
</div>
<div>
<div>File Index Usage:</div>
</div>
<div>
<div>ASCII, Binary, Item, Description</div>
</div>
<div>
<div>“%20d\n”, sizeof(int), n, Total number of data time
steps in the file.</div>
</div>
<div>
<div>“%20d\n”, sizeof(long), fb1, File byte loc for contents
of 1st time step*</div>
</div>
<div>
<div>“%20d\n”, sizeof(long), fb2, File byte loc for contents
of 2nd time step*</div>
</div>
<div>
<div>
<div>. . ., . . ., . . ., . . .</div>
</div>
</div>
<div>
<div>
<div>“%20d\n”, sizeof(long), fbn, File byte loc for
contents of nth time step*</div>
</div>
</div>
<div>
<div>
<div>“%20d\n”, sizeof(int), flag, Miscellaneous flag (= 0
for now)</div>
</div>
</div>
<div>
<div>
<div>“%20d\n”, sizeof(long), fb, of item n File byte loc
for Item n above</div>
</div>
</div>
<div>
<div>
<div>“%s\n”, sizeof(char)*80, “FILE_INDEX”, File index
keyword</div>
</div>
</div>
<div>
<div>* Each file byte location is the first byte that
follows the BEGIN TIME STEP record</div>
</div>
</blockquote>
<div><br>
</div>
<div>To me the best way is to read the file in reverse looking
for FILE_INDEX as the last 80 characters. From that you parse
the previous long as</div>
<div>the new seek position which jumps you to the start of the
file index records. After reading the file index records you
have a lookup table for all seek positions of the time steps
in that ensight file.</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Mar 6, 2013 at 4:23 AM, Georg
Hammerl <span dir="ltr"><<a href="mailto:hammerl@lnm.mw.tum.de" target="_blank">hammerl@lnm.mw.tum.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote">Hello,<br>
<br>
I have already posted this issue on the paraview mailing
list, but then I realized that it is more of a VTK problem.<br>
I can load the first time step of my results but when I
switch to the next step (in which 4 points are added),
paraview freezes and htop shows 100% load for this process.
Surprisingly, this only happens when I use binary ensight
gold format. The same results written in ascii ensight gold
format work. The ens_checker tells me for both cases that I
have valid output files.<br>
<br>
Meanwhile I had a look into the source code and discovered
the issue. Whenever the variable-files are read for a time
steps greater than 1, Paraview has to jump in the binary
file to the desired timestep. This is done by partially
parsing and skipping blocks until the correct "BEGIN TIME
STEP" is found. In order to skip the correct block length,
Paraview uses the number of points (numPts) from the current
geometry step. This breaks with a varying number of points
per timestep.<br>
As an example my first step contains 2 points and the second
step 6 points, therefore when Paraview skips the first time
step, it skips a block length equivalent to 6 points. The
correct number would be 2 points. It therefore skips past
the next "BEGIN TIME STEP".<br>
<br>
In order to verify my theory I have implemented a little
hack which looks for the next "BEGIN TIME STEP" by brute
force. In case someone wants to try this I have attached a
patch which can be used in conjunction with the attached
examples.<br>
<br>
A clean solution would be to skip the correct number of
points for every given timestep. Unfortunately I do not have
enough insight into the VTK ensight reader to implement this
and would appreciate any help in finding a clean solution to
this.<br>
<br>
Cheers,<br>
<br>
Georg<span><br>
<br>
-- <br>
Dipl.-Ing. Georg Hammerl<br>
Lehrstuhl für Numerische Mechanik<br>
Technische Universität München<br>
Boltzmannstrasse 15, D-85747 Garching b. München<br>
phone <a href="tel:%2B49%2089%20289%2015237" value="+498928915237" target="_blank">+49 89 289 15237</a><br>
fax <a href="tel:%2B49%2089%20289%2015301" value="+498928915301" target="_blank">+49 89 289 15301</a><br>
<a href="mailto:hammerl@lnm.mw.tum.de" target="_blank">hammerl@lnm.mw.tum.de</a><br>
<a href="http://www.lnm.mw.tum.de" target="_blank">http://www.lnm.mw.tum.de</a><br>
<br>
</span><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br>
</blockquote>
</div>
<br>
<br>
<div><br>
</div>
-- <br>
Robert Maynard
</div>
</blockquote>
<br>
<br>
<pre cols="72">--
Dipl.-Ing. Georg Hammerl
Lehrstuhl für Numerische Mechanik
Technische Universität München
Boltzmannstrasse 15, D-85747 Garching b. München
phone <a href="tel:%2B49%2089%20289%2015237" value="+498928915237" target="_blank">+49 89 289 15237</a>
fax <a href="tel:%2B49%2089%20289%2015301" value="+498928915301" target="_blank">+49 89 289 15301</a>
<a href="mailto:hammerl@lnm.mw.tum.de" target="_blank">hammerl@lnm.mw.tum.de</a>
<a href="http://www.lnm.mw.tum.de" target="_blank">http://www.lnm.mw.tum.de</a>
</pre>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Robert Maynard
</div>