CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   ParaView (https://www.cfd-online.com/Forums/paraview/)
-   -   [OpenFOAM] Native ParaView Reader Bugs (https://www.cfd-online.com/Forums/paraview/61047-native-paraview-reader-bugs.html)

jam April 3, 2008 10:40

Hi Takuya, I am having troubl
 
Hi Takuya,
I am having trouble reading the foam files: I suppose the reader should appear as a list of possible readers in the pop-up list; it is not!

I compiled as per your instructions, I grep the reader in the library files, it is there.
I am using OF1.4.1-dev an Paraview3.2

Where should I look to get it to work?

jam April 3, 2008 18:08

Sorry, I should have downloade
 
Sorry, I should have downloaded Paraview3.3.? instead.

7islands April 3, 2008 19:01

Hi Alain, You can use ParaV
 
Hi Alain,

You can use ParaView 3.2.1. In that case you have to add<pre> <Reader name="OpenFOAMReader"
extensions="foam"
file_description="OpenFOAM Files">
</reader></pre> to somewhere in ParaView3.2.1/Qt/Components/Resources/XML/ParaViewReaders.xml.

Takuya

jam April 4, 2008 07:25

Thank you Takuya, All I can s
 
Thank you Takuya,
All I can say is WOW!
-Alain

kar April 12, 2008 10:07

Hello, tried compiling Para
 
Hello,

tried compiling ParaView 3.2.1 and 3.3-dev, but hit in the problems with gl* things.

For 3.2.1 one sample is this:

/home/cpp/OpenFOAM/linux64/4compile/ParaView3/VTK/GUISupport/Qt/QVTKWidget.cxx: In member function 'void QVTKWidget::x11_setup_window()':
/home/cpp/OpenFOAM/linux64/4compile/ParaView3/VTK/GUISupport/Qt/QVTKWidget.cxx:1 305: error: 'XVisualInfo' was not declared in this scope
/home/cpp/OpenFOAM/linux64/4compile/ParaView3/VTK/GUISupport/Qt/QVTKWidget.cxx:1 305: error: 'vi' was not declared in this scope
/home/cpp/OpenFOAM/linux64/4compile/ParaView3/VTK/GUISupport/Qt/QVTKWidget.cxx:1 306: error: 'Colormap' was not declared in this scope
/home/cpp/OpenFOAM/linux64/4compile/ParaView3/VTK/GUISupport/Qt/QVTKWidget.cxx:1 306: error: expected `;' before 'cmap'

For 3.3-dev I received bunch of unresolved or undefined functions whose name begin with "gl".

Relevant ccmake variables:

OPENGL_gl_LIBRARY OPENGL_gl_LIBRARY-NOTFOUND
OPENGL_glu_LIBRARY /usr/lib/libGLU.so
OPENGL_xmesa_INCLUDE_DIR /usr/include

Tried 4.2.3 for PV 3.2.1 and 4.3.? for 3.3-dev; last one was emerged with portage.
That is amd64 machine. Obviously something is wrong with gl - it cannot be found. How to fix that? Thanks!

Kārlis

7islands April 12, 2008 10:37

Hi Kārlis, Hmm I have never
 
Hi Kārlis,
Hmm I have never had such a problem... anyone else?

Guessing from your use of emerge are you a Gentoo user? I recently found a bug tracker page for ParaView-3.2.1 on Gentoo [1]. Looking through the page the ParaView package on Gentoo seems to have the 20071023 version of the native reader included, but I haven't tried by myself as I'm not a Gentoo user. You might (or might not) be able to try the package as a starting point if you are a Gentoo user.

[1] http://bugs.gentoo.org/show_bug.cgi?id=202685

Takuya

kar April 12, 2008 11:23

Hi Takuya! Sure, I tried to
 
Hi Takuya!

Sure, I tried to emerge ParaView, but since it was paraview 3.2.1 and it didn't tried to take qt 4.2.3 (4.(<3)) as a dependency, I stopped to believe it will work good. Isn't paraview3.2.1 requiring qt 4.2.3?

I tried like this too:
OPENGL_gl_LIBRARY /usr/lib/libGLw.so <--- no libGL.so present there...
OPENGL_glu_LIBRARY /usr/lib/libGLU.so

But compile gave me this 2>

/tmp/ccG1spNb.s: Assembler messages:
/tmp/ccG1spNb.s:799: Error: suffix or operands invalid for `xchg'
make[2]: *** [VTK/GUISupport/Qt/CMakeFiles/QVTKWidgetPlugin.dir/Q4VTKWidgetPlugin.o] Error 1

Also paraview on gentoo amd64 is masked, which indicates some problems. Not sure, but amd64 could be affected platform.

So, openGL is installed somehow by default; this time it has to be reinstalled, I guess...

Kārlis

kar April 12, 2008 11:31

Forgot to mention one more thi
 
Forgot to mention one more thing: there is no driver for my particular video card installed but "vesa", which doesn't support direct rendering etc. Maybe that is the problem? I'll check how PV servers are compiled with no hardware rendering (but this is ridiculous - I have Radeon X1200!).

philippose April 12, 2008 12:54

Hello Kārlis, You mentione
 
Hello Kārlis,

You mentioned that you have a Radeon X1200... have you tried installing the ATI Drivers for Linux? Normally, you should have the fglrx driver, which gives you complete hardware acceleration, and the works.

As for the open source version... Fedora comes with an open source version of the ATI drivers.. I think its called "radeon". I think the same drivers are also available for OpenSuse, and I dont see any reason why it would not be available for Gentoo also...

I am not sure if the normal "vesa" fallback vga drivers would support OpenGL...

Also, have you checked in the "/usr/lib64", if there are either the opengl libraries, or a sub-folder with the opengl libraries on your system?

Have a nice day!

Philippose

kar April 12, 2008 13:31

Hello Philippose, thanks fo
 
Hello Philippose,

thanks for advices, but the thing is: since fglrx binary failed to work with my kernel, I have to use radeonhd<- driver, which is still in testing stage (radeon is too old)...

Suppose, opengl fails to work with vesa, but it fails to compile!
Some clearance about openGL/mesa would be useful here...

amd ~ # ls /usr/lib64/libGL*so
/usr/lib64/libGL.so /usr/lib64/libGLU.so /usr/lib64/libGLw.so

/usr/include has GL folder, but
OPENGL_xmesa_INCLUDE_DIR /usr/include -- where should that be?

Well, if you have some idea...

K.

philippose April 12, 2008 14:27

Hello again, I was just loo
 
Hello again,

I was just looking through my CMake configuration list (which can be obtained by using cmake -LA [source root]), and these are the paths I got for the OpenGL related settings:

OPENGL_INCLUDE_DIR:PATH=/usr/include
OPENGL_gl_LIBRARY:FILEPATH=/usr/lib/libGL.so
OPENGL_glu_LIBRARY:FILEPATH=/usr/lib/libGLU.so
OPENGL_xmesa_INCLUDE_DIR:PATH=/usr/include

And these are the OpenGL related libraries I have (I use a 32-bit system...so...):

/usr/lib/libGLEW.so
/usr/lib/libGL.so
/usr/lib/libGLU.so

In my /usr/include folder, I have a sub-folder known as "GL"... in this sub-folder, I have the following headers:

glext.h
gl.h
gl_mangle.h
glu.h
glu_mangle.h
glxext.h
glx.h
glxint.h
glx_mangle.h
glxmd.h
glxproto.h
glxtokens.h
internal
xmesa.h
xmesa_xf86.h
xmesa_x.h

Since cmake uses "/usr/include" as the path for the OpenGL and the xmesa headers, I am assuming that it automatically appends the "GL" bit to it to get to the header files....

You need to check if you have these files in the include folder... if not, you need to install the "devel" package for mesa and glx...

I think in Gentoo, that would be something like typing "emerge mesa" as root on the command-line.

As for the ATI drivers... I am sure you have already found this website... but then... here it is anyway :-)! Maybe you can get the drivers working...:

http://gentoo-wiki.com/HOWTO_ATI_Drivers


Hope this helps :-)!

Enjoy!

Philippose

kar April 12, 2008 14:47

Ok, just successfully compiled
 
Ok, just successfully compiled ParaView-3.3dev.
At least these things where wrong:

1. needed to set

OPENGL_INCLUDE_DIR: /usr/include
OPENGL_gl_LIBRARY: /usr/lib64/libGL.so
OPENGL_glu_LIBRARY: /usr/lib64/libGLU.so
OPENGL_xmesa_INCLUDE_DIR: /usr/include

2. needed to compile with gcc 4.2, not 4.1.

Now I get errors because of GLX. But that is a videocard problem... Progress has been achieved http://www.cfd-online.com/OpenFOAM_D...part/happy.gif

Now I'll try to fight radeonhd.

Kārlis

philippose April 12, 2008 17:39

Hi Kārlis, Cool to see tha
 
Hi Kārlis,

Cool to see that you got it working :-)!

One comment though... its really weird that you had to compile Paraview with gcc 4.2, because I use gcc 4.1.2 on my system.... So it must be due to some other dependencies that it did not work with gcc 4.1, unless the minor version "4.1.2" made a difference in my case.

As for the radeon drivers.... I am sure it is not too difficult to get the hardware rendering versions up and running....

Have a nice day!

Philippose

kar April 14, 2008 15:46

Hello again, this time AVI
 
Hello again,

this time AVI video file creating problems:

ERROR: In /home/cpp/OpenFOAM/linux64/4compile/ParaView-3.3dev/VTK/IO/vtkFFMPEGWriter.cxx, line 447
vtkFFMPEGWriter (0x1241350): Error initializing video stream.

Looking at ccmake configuration I have:

FFMPEG_INCLUDE_DIR /usr/include
FFMPEG_avcodec_LIBRARY /usr/lib64/libavcodec.so
FFMPEG_avformat_LIBRARY /usr/lib64/libavformat.so
FFMPEG_avutil_LIBRARY /usr/lib64/libavutil.so
FFMPEG_dc1394_LIBRARY /usr/lib64/libdc1394_control.so
FFMPEG_dts_LIBRARY FFMPEG_dts_LIBRARY-NOTFOUND
FFMPEG_gsm_LIBRARY /usr/lib64/libgsm.so
FFMPEG_theora_LIBRARY /usr/lib64/libtheora.so
FFMPEG_vorbis_LIBRARY /usr/lib64/libvorbis.so
FFMPEG_vorbisenc_LIBRARY /usr/lib64/libvorbisenc.so

Couldn't find how to install FFMPEG_dts_LIBRARY.. Maybe that is the one making problem? Not sure, because libdts's supplicant is libdca - a free DTS Coherent Acoustics decoder.

Kārlis

philippose April 15, 2008 13:10

Hi, and a Good Evening :-)!
 
Hi, and a Good Evening :-)!

Soo... AVI Creation problems... Since I had never tried it with ParaView in Linux before, I only realised that this problem existed last evening :-)!

Anyway.... if you run ParaView from the command line, in the console you will see a couple more error messages before ParaView opens up the message window to show the "Error initializing video stream" error.

Basically, it seems to be a bug in the vtkFFMPEGWriter.cxx file... or, an inconsistency in the ffmpeg libraries.

The "real" error is... "bitrate tolerance too small for selected bitrate" or something to that effect.

This is thrown by the ffmpeg codec initialisation function, because in vtkFFMPEGWriter, no value has been set for the ffmpeg variable "bit_rate_tolerance", which is required during the initialisation.

After a little checking around online, and a little snooping around in vtkFFMPEGWriter, I was able to solve the problem by adding the following line at source-code line 161 in vtkFFMPEGWriter.cxx:

c->bit_rate_tolerance = c->bit_rate * 20;

I know.... you may be wondering why the tolerance on bit-rate variation would be 20 times the bit-rate itself :-)! Well... that seems to be the default value used by some other programs which use the FFMPEG libraries :-)!

Funnily, I tried various more "logical" values like 1% of bit-rate..... 50% of bit-rate... etc...etc.... It only started working when I set the tolerance to be equal to the bit-rate and higher.... :-)!

A recompile of Paraview after this change... and poof... it worked....

However.... I was not able to play the resulting animation with the VLC Player (I have experienced this with some AVI files in Linux before)... the writer uses the MPEG4 codec, and I dont know if there is a problem with this codec and VLC...

Enjoy :-)!

Philippose

jaswi May 12, 2008 11:18

Hi Philippose Thanks for th
 
Hi Philippose

Thanks for the information :-).
Just wanted to cross check about the modification:

I have added this line

c->bit_rate_tolerance = c->bit_rate * 20;

after the closing bracket of this switch

switch (this->Writer->GetQuality())
{
case_0:
c->bit_rate = 3*1024*1024;
break;
case_1:
c->bit_rate = 6*1024*1024;
break;
default:
c->bit_rate = 12*1024*1024;
break;
}

Regards
Jaswi

philippose May 12, 2008 12:03

Hello Jaswinder, That shoul
 
Hello Jaswinder,

That should be about right...

But then.... I found that though this works, as I mentioned in the post, I was not able to play any of the animations created by Paraview in Linux.

What I do now, is to save the images as a sequence of JPGs, and then use "mencoder" to convert the sequence into an AVI.

This method comes up with really nice looking high resolution animations, and you have much better control over the frame-rates, etc....

Have a nice day!

Philippose

jaswi May 12, 2008 12:30

Hi Philippose Thanks for th
 
Hi Philippose

Thanks for the confirmation.

There is one more thing troubling me. I have installed SUSE 10.3 and it comes with Qt 4.3.1. While processing CMakeList.txt for the paraview compilation, the cmake says it doesn't supports Qt 4.3.1 and suggests to use Qt 4.2

For the time being, I have ignored that error and the compilation is in process.

Do you think that will be a problem later ?.

Regards
Jaswi

kar May 12, 2008 12:31

Philippose, I wanted to say t
 
Philippose,
I wanted to say thank you for your responsiveness and optimism!
That is probably the best idea to use jpg->avi with some other soft., because this far ParaView is not very handy for avi-s. Actually there are quite many little, incomplete parts and some doesn't work at all, but that's another thing... (however, as long as encoders are used externally, process is much longer and sometimes redundant)

k.

7islands May 12, 2008 19:05

Hi Jaswinder, I'm afraid it w
 
Hi Jaswinder,
I'm afraid it will (as far as I tested on openSUSE 10.3 x86_64+stock Qt 4.3.1). After you click the VCR Play button the VCR control buttons will all be grayed out and can't stop the animation until all frames are drawn. As far as I know the simple solutions are to compile Qt-4.2 by yourself or use the 3.3-CVS version of ParaView. Backporting the fix in 3.3-CVS to 3.2.1 may be possible but I have never tried it.

If you go to the PV3.2.1+Qt4.2 way I recommend setting CMAKE_USE_RPATH to on and run the binary in-place (without doing make install) so that the correct Qt version is bound.

Takuya


All times are GMT -4. The time now is 15:02.