<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&#39;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">&lt;<a href="mailto:hammerl@lnm.mw.tum.de" target="_blank">hammerl@lnm.mw.tum.de</a>&gt;</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>&quot;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.&quot;</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">&lt;<a href="mailto:hammerl@lnm.mw.tum.de" target="_blank">hammerl@lnm.mw.tum.de</a>&gt;</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 &quot;BEGIN TIME
            STEP&quot; 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 &quot;BEGIN TIME STEP&quot;.<br>
            <br>
            In order to verify my theory I have implemented a little
            hack which looks for the next &quot;BEGIN TIME STEP&quot; 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>