feelpp / feelpp

:gem: Feel++: Finite Element Embedded Language and Library in C++
https://docs.feelpp.org
GNU Lesser General Public License v3.0
299 stars 66 forks source link

EnsightGold exporter is broken #621

Closed vincentchabannes closed 9 years ago

vincentchabannes commented 9 years ago

I can't visualize a field exported in ensightgold format. I tried on my macos and irma-atlas.

This is tested on qs_laplacian. There are no problem with ensight format.

aancel commented 9 years ago

Can you give us the code sample you used to be able to reproduce the crash ? I'll try to reproduce and fix the bug.

vincentchabannes commented 9 years ago

qs_laplacian_2d

prudhomm commented 9 years ago

@vincentchabannes is it with the develop branch ? or feature/fsi ?

vincentchabannes commented 9 years ago

develop

prudhomm commented 9 years ago

@vincentchabannes could you remove the directory feel/qs_laplacian re-run the application use paraviewand tell me how it works ?

vincentchabannes commented 9 years ago

remove the directory not solve the problem

vincentchabannes commented 9 years ago

There are something very strange! on irma-atlas, I look the size of file generated. It seems OK :

chabannes@irma-atlas:~/feel/qs_laplacian/np_1/ensightgold/qs_laplacian$ du -sh *
4.0K    qs_laplacian-1.sos
4.0K    qs_laplacian-paraview-1.sos
4.0K    qs_laplacian.case
20K qs_laplacian.g.scl.0001
128K    qs_laplacian.geo
24K qs_laplacian.pid.scl.0001
4.0K    qs_laplacian.timeset
20K qs_laplacian.u.scl.0001

but when I download this file on my laptop, I have this :

du -sh *
4,0K    qs_laplacian-1.sos
4,0K    qs_laplacian-paraview-1.sos
4,0K    qs_laplacian.case
 83M    qs_laplacian.g.scl.0001
128K    qs_laplacian.geo
 24K    qs_laplacian.pid.scl.0001
4,0K    qs_laplacian.timeset
 83M    qs_laplacian.u.scl.0001

The size of the fields exported is not the same and quite big. How it's possible? the files are broken?

This issue appears just after a git pull on the develop branch ( which was outdated about 15 days )

vincentchabannes commented 9 years ago

Also, It's a little better in // on irma-atlas (always crash on my macos), but still not good This is run with 3 process problemparaview

I notice that the partitioning is not standard, Partition 0 is divide in 2 parts: problemparaviewpart

prudhomm commented 9 years ago

@aancel can you reproduce @vincentchabannes's problem? @feelpp/feelpp do you have a similar issue ?

gdolle commented 9 years ago

I also have a problem with ensightgold on some of my codes that does not happen before the merge of IO optimization. I can't yet confirm it's exactly the same error, I'll try to reproduce the problem on a simple example.

2015-07-21 8:50 GMT+02:00 prudhomm notifications@github.com:

@aancel https://github.com/aancel can you reproduce @vincentchabannes https://github.com/vincentchabannes's problem? @feelpp/feelpp https://github.com/orgs/feelpp/teams/feelpp do you have a similar issue ?

— Reply to this email directly or view it on GitHub https://github.com/feelpp/feelpp/issues/621#issuecomment-123189709.

aancel commented 9 years ago

@prudhomm @vincentchabannes I tried to reproduce Vincent's problem, but the fields u and g seems to be ok on my side, but I also have a non-standard partitioning similar to Vincent where a processor has non-connex areas. Also I do not have the problem Vincent mentioned regarding to downloading data to my computer.

@vincentchabannes Do you use any specific options either at compilation/execution that would allow me to reproduce your bug ?

vincentchabannes commented 9 years ago

Thus, I am the only one to have this issue. I don't use specific options. On irma-atlas, I load these modules, Currently Loaded Modulefiles: 1) compilers/gcc-4.9.0.feelpp 3) libs/boost-1.58.feelpp 5) tools/ParaView-4.3.1.feelpp 7) libs/vmtk-1.2.feelpp 2) mpi/openmpi-1.8.5.feelpp 4) science/gmsh-2.9.4-svn_ompi185_petsc353.feelpp 6) feelpp.profile

and the compiler used is gcc4-9

I will try with another machine.

vincentchabannes commented 9 years ago

It works on irma-atlas if I change the compiler ( clang36 instead of gcc49). In my macos I use clang37. The compilers clang37 and gcc49 seem to be the guilty. Thus, for me, something wrong has been introduce in feel because it worked before.

gdolle commented 9 years ago

That might also explain my bug with ddt malloc which worked also well before.

prudhomm commented 9 years ago

I am checking currently with clang 3.5

prudhomm commented 9 years ago

results with clang 3.5 on qs_laplacian_2d/qs_laplacian_3d:

I forgot to add --config-file=qs_laplacian_*.cfg initially

/cc @vincentchabannes @aancel @gdolle

prudhomm commented 9 years ago

Ok feel++ and gcc4.9 have a problem

Ok here is what I get

screen shot 2015-07-22 at 15 59 11

probably a problem with the data associated to the particular subdomain in the ensight format.

@aancel did you find it ?

the data in ensight gold format with gcc49 (and it seems clang++3.7) is corrupted on one subdomain @youldrouis @aancel @vincentchabannes (and may be more)

aancel commented 9 years ago

@prudhomm I'll rebuild Feel++ with gcc to check on this. I find it a bit strange to have compiler specific corruptions, I'll check the code.

vincentchabannes commented 9 years ago

with clang37, it's not only one subdomain, it's impossible to see something, even the mesh

prudhomm commented 9 years ago

I think there is a data corruption, probably some pointer is overstepping its bounds and writes at the wrong place. Looks like a bug in the patch in the new MPIIO code @youldrouis @aancel. What do you think ?

prudhomm commented 9 years ago

In the mean time we work with clang 3.5 or clang 3.6 then

aancel commented 9 years ago

@vincentchabannes @prudhomm Does the ens_checker101 app tell you something specific when using it on the .case file of exported data ? (specifically an error) On my side, I have additional empty lines at the end of the file. I'll have a look at the code, it might an offset that is not right indeed.

vincentchabannes commented 9 years ago

with macos/clang37 :

sing CEI_HOME = /Applications/CEI
Using CEI_ARCH = apple_10.5

*****************************************************************
*  EnSight Data Format Checker                                  *
*  ===========================                                  *
*   Currently,                                                  *
*   1. Must be run from directory in which casefile is located. *
*   2. Handles EnSight6 and EnSight Gold formats only.          *
*   3. Does not process SOS casefiles.                          *
*****************************************************************
<Version: 2.038>
<Built: 1/7/2014>

====> Output Verbosity set for default, which includes:
        Problems + Warnings + Informational

   Note: You can change this via environment variable if desired
         setenv ENS_CHECKER_VERBOSITY n 

   Where: n = 0   For Problems only                       (no other feedback)
          n = 1   For Problems + Warnings
          n = 2   For Problems            + Informational (no warnings)
          n = 3   For Problems + Warnings + Informational (default)

Casefile to Process:
--------------------
exportFePressure.case   (Opened successfully)

---------------------
Major Sections Found:
---------------------
Required FORMAT   section    (at line 1)
Required GEOMETRY section    (at line 3)
Optional VARIABLE section    (at line 5)
Optional TIME     section    (at line 7)

---------------
FORMAT Section:
---------------
EnSight Gold Format   (set at line 2)

-------------
TIME section:
-------------
Info for timeset number: 1
----------------------------
Time set: 1   (at line 8)
   No description provided
   Number of steps:       1   (at line 9)
   Filename start number: 1   (at line 10)
   Filename increment:    1   (at line 11)
   Time values:           (starting on line 12)
                          time values[1] = 0

  >-------------------<
  > TIME section OKAY <
  >-------------------<

-----------------
GEOMETRY Section:
-----------------

--------
Model filename is:   exportFePressure.geo.****      (at line 4)

   Changing coordinate geometry (connectivity assumed at every step)
   Associated time set is: 1

   --------
   Opened exportFePressure.geo.0001 successfully

   File type is:    C Binary
   This is Step:    0
   Description 1:   exportFePressure.geo.0001
   Description 2:   elements
   node ids:        given
   element ids:     given
   No extents given

   Part 6:
      Description is: Marker 6 ()
      Unstructured Part
      Number of nodes is: 142
         Ids for (142) nodes found
         X Coordinates for (142) nodes found
         Y Coordinates for (142) nodes found
         Z Coordinates for (142) nodes found

===> Problem:
-------------
Looking for one of the following valid line types:
   coordinates       (unstructured coordinates)
   element type      (unstructured types, any of the following:
                         point    tria6    tetra10     penta15     nfaced
                         bar2     quad4    pyramid5    hexa8
                         bar3     quad8    pyramid13   hexa20
                         tria3    tetra4   penta6      nsided
                         g_point  g_tria6  g_tetra10   g_penta15
                         g_bar2   g_quad4  g_pyramid5  g_hexa8
                         g_bar3   g_quad8  g_pyramid13 g_hexa20
                         g_tria3  g_tetra4 g_penta6    g_nsided    g_nfaced
   block             (structured block)
   ghost_flags       (for structured block)
   node_ids          (for structured block)
   element_ids       (for structured block)
   part              (the next part)
but found 381 empty lines (which are not allowed), before reading:

  >-------------------------<
  > GEOMETRY section FAILED <
  >-------------------------<

  >-*-*-*-*-*-* bummer! *-*-*-*-*-*-<
  >                                 <
  > Verification of the data FAILED <
  >                                 <
  >-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-<
aancel commented 9 years ago

Ok thanks @vincentchabannes, I'll check if I can reproduce the error. Does the exportFePressure.geo.0001 file exist ? It is empty ?

vincentchabannes commented 9 years ago

I do a mistake (we must run ens_checker100 in the repository of exported files). My last msg is updated

youldrouis commented 9 years ago

Ok I am compiling the last version with gnu4.8. and I will check if I can reproduce/detect the bug.

prudhomm commented 9 years ago

@aancel @youldrouis here is what I get for qs_laplacian

there is clearly garbage generated when using gcc4.9 which we do not see with clang 3.5/3.6

         Connectivities for (264) g_tria3 elements found

  >-----------------------<
  > GEOMETRY section OKAY <
  >-----------------------<

-----------------
VARIABLE Section:
-----------------

scalar per node:   g      (at line 6)
   Filename is: qs_laplacian.g.scl.****
   Transient variable
   Associated time set is: 1

   --------
   Opened qs_laplacian.g.scl.0001 successfully

   Description: g

   Part ID variable fseek location in bytes: 160

   Part 5:
      (3223) Nodal scalar values found

===> Problem:
-------------
Looking for one of the following valid line types:
   coordinates       (unstructured coordinates)
   element type      (unstructured types, any of the following:
                         point    tria6    tetra10     penta15     nfaced
                         bar2     quad4    pyramid5    hexa8
                         bar3     quad8    pyramid13   hexa20
                         tria3    tetra4   penta6      nsided
                         g_point  g_tria6  g_tetra10   g_penta15
                         g_bar2   g_quad4  g_pyramid5  g_hexa8
                         g_bar3   g_quad8  g_pyramid13 g_hexa20
                         g_tria3  g_tetra4 g_penta6    g_nsided    g_nfaced
   block             (structured block)
   part              (the next part)
but found 640309 empty lines (which are not allowed), before reading:
??=?x???&??B??g?fU???P?Z???QE>???Nܭ??o?=lc????"??$?3p?}?D>?l?>e?e???3?

  >-------------------------<
  > VARIABLE section FAILED <
  >-------------------------<

  >-*-*-*-*-*-* bummer! *-*-*-*-*-*-<
  >                                 <
  > Verification of the data FAILED <
  >                                 <
  >-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-<
prudhomm commented 9 years ago

probably a character string is not well written or something like that

youldrouis commented 9 years ago

yes! it looks like something like that. I have just compiled the latest version, first of all, thanks for fixing the CLN linking problem, it is much easier this way

aancel commented 9 years ago

Ok it seems that Ensight is having trouble finding the type of element to use. So the problem should happen around here: https://github.com/feelpp/feelpp/blob/develop/feel/feelfilters/exporterensightgold_impl.hpp#L1529-1581

youldrouis commented 9 years ago

I deleted my answer as it might be a wrong pist...