<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">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<span class="HOEnZb"><br>
      </span><br>
      <br>
      On 18/04/13 20:06, Robert Maynard wrote:<br>
    </div>
    <blockquote
cite="mid:CAFzjYVrtPJrwwOU14c93SHQ+4RF6GVi1NfUF0DJb6Dg50CFdOw@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html;
        charset=windows-1252">
      <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
            moz-do-not-send="true"
href="http://www-vis.lbl.gov/NERSC/Software/ensight/doc/OnlineHelp/UM-C11.pdf">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">&lt;<a moz-do-not-send="true"
              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 "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 class="HOEnZb"><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 moz-do-not-send="true"
                href="tel:%2B49%2089%20289%2015237"
                value="+498928915237" target="_blank">+49 89 289 15237</a><br>
              fax <a moz-do-not-send="true"
                href="tel:%2B49%2089%20289%2015301"
                value="+498928915301" target="_blank">+49 89 289 15301</a><br>
              <a moz-do-not-send="true"
                href="mailto:hammerl@lnm.mw.tum.de" target="_blank">hammerl@lnm.mw.tum.de</a><br>
              <a moz-do-not-send="true" href="http://www.lnm.mw.tum.de"
                target="_blank">http://www.lnm.mw.tum.de</a><br>
              <br>
            </span><br>
            _______________________________________________<br>
            Powered by <a moz-do-not-send="true"
              href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
            <br>
            Visit other Kitware open-source projects at <a
              moz-do-not-send="true"
              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
              moz-do-not-send="true"
              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 moz-do-not-send="true"
              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 class="moz-signature" 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 +49 89 289 15237
fax +49 89 289 15301 
<a class="moz-txt-link-abbreviated" href="mailto:hammerl@lnm.mw.tum.de">hammerl@lnm.mw.tum.de</a>
<a class="moz-txt-link-freetext" href="http://www.lnm.mw.tum.de">http://www.lnm.mw.tum.de</a>
</pre>
  </body>
</html>