CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (http://www.cfd-online.com/Forums/openfoam-installation/)
-   -   Install OpenFOAM-1.7.1 on openSUSE 12.1 (http://www.cfd-online.com/Forums/openfoam-installation/105440-install-openfoam-1-7-1-opensuse-12-1-a.html)

matthi July 31, 2012 05:57

Install OpenFOAM-1.7.1 on openSUSE 12.1
 
Hello Everybody,

I work since long time with OpenFOAM-1.7.1 and try to use it on a new machine running openSUSE12.1 (x86_64). The problem occurs installing the Thirdparty modules. It has something to do with the installation of OpenMPI. In Thirdparty-1.7.1 the openmpi-1.4.1 is included. But, I tried also openmpi-1.5.3. Using both versions the same errors occur:

========================================
Build ParMetis decomposition. Requires MPI.
+ cd ParMetis-3.1
+ cpMakeFiles ParMetis
+ set +x
cpMakeFiles ParMetis .
+ wmake libso METISLib
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lmpi
collect2: ld returned 1 exit status
make: *** [/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.5.3/libmetis-parmetis.so] Fehler 1
+ wmake libso ParMETISLib
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lmpi
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lmetis-parmetis
collect2: ld returned 1 exit status
make: *** [/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.5.3/libparmetis.so] Fehler 1
========================================

I found out, that in the directory “OpenFOAM/OpenFOAM1.7.1/lib/linux64GccDPOpt” the libraries

libPstream.so, libmetis-Parmetis.so, libParmetisDecomp.so, libParmetis.so


are not existent … but they should. I had no problems using an older version of linux.

Since hours I search in the output for informations what could be wrong.
The ONLY errors I can find in the output are the following, but I don`t know if they are severe or have something to do with the problem:

mv: Aufruf von stat fĂĽr â.deps/libutil_la-hash.Tpoâ nicht möglich: Datei oder Verzeichnis nicht gefunden
make[5]: *** [libutil_la-hash.lo] Fehler 1
make[5]: Leaving directory `/home/ow4349/OpenFOAM/ThirdParty-1.7.1/openmpi-1.5.3/ompi/contrib/vt/vt/util'
make[4]: *** [all-recursive] Fehler 1
make[4]: Leaving directory `/home/ow4349/OpenFOAM/ThirdParty-1.7.1/openmpi-1.5.3/ompi/contrib/vt/vt'
make[3]: *** [all] Fehler 2
make[3]: Leaving directory `/home/ow4349/OpenFOAM/ThirdParty-1.7.1/openmpi-1.5.3/ompi/contrib/vt/vt'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/home/ow4349/OpenFOAM/ThirdParty-1.7.1/openmpi-1.5.3/ompi/contrib/vt'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/ow4349/OpenFOAM/ThirdParty-1.7.1/openmpi-1.5.3/ompi'
make: *** [all-recursive] Fehler 1

I would be grateful if yomeone would give a hint who to proceed.

Many greetings Matthi

wyldckat July 31, 2012 06:46

Greetings Matthias,

This was reported for OpenFOAM 2.1 and is valid for any OpenFOAM version, given the issue is related to the new definitions used in openSUSE: http://www.openfoam.org/mantisbt/view.php?id=400

The bug fix is shown here: https://github.com/OpenFOAM/OpenFOAM...36376f1c7ed7f6 - but I'm not sure it can be used directly in OpenFOAM 1.7.1... you might have to locate the same files in "linux64Gcc" instead of "General".

Best regards,
Bruno

matthi July 31, 2012 10:54

Dear Bruno,

you`re great. Thanks for the very fast and helpful answer.
According to the link http://www.openfoam.org/mantisbt/view.php?id=400
I added the following lines to the 3rd Party's Allwmake script, right after Open-MPI's "make install":

if [ -d "$MPI_ARCH_PATH/lib64" -a ! -d "$MPI_ARCH_PATH/lib" ]; then
ln -s $MPI_ARCH_PATH/lib64 $MPI_ARCH_PATH/lib
fi

And ... the installation of the ThirdParties works !!!

To compare, if the same error occurs with a newer version (despite the fact that I don`t want to use it), I tried to install OpenFOAM-2.1.1. There, it seems to work WITHOUT adding the lines. At least "foamInstallationTest" tells me that everything is all right.

But back to Version OpenFOAM-1.7.1. Sorry, but unfortunately there is another error. I traced back the error. Now, "Allwmake" isn`t able to install the applications. If I change to directory applications and use "Allwmake" I get the following errors:

+ wmake all solvers
make[1]: Entering directory `/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/solvers/basic'
make[2]: Entering directory `/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/solvers/basic/laplacianFoam'
make[2]: »/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/bin/linux64GccDPOpt/laplacianFoam« ist bereits aktualisiert.
make[2]: Leaving directory `/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/solvers/basic/laplacianFoam'
make[2]: Entering directory `/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/solvers/basic/potentialFoam'
g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-40 -I/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude -I/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/src/OSspecific/POSIX/lnInclude -fPIC Make/linux64GccDPOpt/potentialFoam.o -L/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt \
-lfiniteVolume -lOpenFOAM -liberty -ldl -lm -o /home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/bin/linux64GccDPOpt/potentialFoam
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: Make/linux64GccDPOpt/potentialFoam.o: undefined reference to symbol 'Foam::OPstream::write(Foam::Pstream::commsTypes, int, char const*, long)'
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: note: 'Foam::OPstream::write(Foam::Pstream::commsTypes, int, char const*, long)' is defined in DSO /home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.4.1/libPstream.so so try adding it to the linker command line
/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.4.1/libPstream.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/bin/linux64GccDPOpt/potentialFoam] Fehler 1
make[2]: Leaving directory `/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/solvers/basic/potentialFoam'
make[1]: *** [potentialFoam] Fehler 2

As the script telle, the /home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.4.1/libPstream.so is not present.
But why some solvers can be translated and others not?

Again thanks a lot and many greetings

Matthias

matthi July 31, 2012 11:11

Dear Bruno,

sorry, I gave a wrong information:

/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.4.1/libPstream.so

IS present.

Greetings

Matthias

wyldckat July 31, 2012 16:59

Hi Matthias,

OpenFOAM 2.1.1 already has this problem solved.

But I don't understand now... is there still a problem with OpenFOAM 1.7.1?

Best regards,
Bruno

matthi August 1, 2012 03:50

Hello Bruno,

Sorry that my question was misleading. Thanks to your help I installed the ThirsParties of Version 1.7.1. successfully.

But, now there is an additional error installing OpenFOAM-1.7.1 itself. The compiling fails for some of the solvers (i. e. potentialFoam). I showed the error messages two posts before. It has something to do with "libPstream.so".

Maybe I shoud open another thread?

Greetings Matthias

wyldckat August 1, 2012 05:10

Hi Matthias,

I completely forgot about the Gcc version that openSUSE 12.1 uses by default :( Gcc 4.6 can't be used with OpenFOAM 1.7.1 as-is.
Here's a page showing the compatibility list: http://openfoamwiki.net/index.php/In...ibility_Matrix

I believe that openSUSE 12.1 has in it's package manager an older version of GCC (don't forget g++) which is compatible with OpenFOAM 1.7.1. To then use that version, see this thread for ideas: OpenFOAM install on RHEL 5.5

Best regards,
Bruno

matthi August 1, 2012 05:28

Dear Bruno,

many thanks for your information. I´ll try my best and post the results of my trials here.

Greetings Matthias

matthi August 16, 2012 03:56

Install OpenFoam.1.7.1 on an openSUSE12.1 (x86_64) System
 
For other readers one sentence about the topic:
=====================================
My aim is to install OpenFoam.1.7.1 on an openSUSE12.1 (x86_64) System. The "normal" gcc-4.6 is not compatible with this OF-Version:
Here's a page showing the compatibility list: http://openfoamwiki.net/index.php/In...ibility_Matrix

========
Dear Bruno,
========

it took a little bit time, because our admin was in hollydays ...

What we did:
==========
We installed successfully gcc-4.5 in openSUSE12.1 using the online package manager. To be sure not to have old stuff in the OF-Folders I unpacked again the OF-Version1.7.1. I changed the gcc-Version in ~/OpenFOAM/OpenFOAM-1.7.1/etc/bahsrc. The relevant section now reads:

64)
WM_ARCH=linux64
export WM_COMPILER_LIB_ARCH=64
export WM_CC='gcc-4.5'
export WM_CXX='g++-4.5'
export WM_CFLAGS='-m64 -fPIC'
export WM_CXXFLAGS='-m64 -fPIC'
export WM_LDFLAGS='-m64'

But, there are still the same errors as before. I encircled the problematic section (translation of applications). The first error occurs translating PotentialFoam. To be sure that all is right with the gcc I edited the file

~/OpenFOAM/OpenFOAM-1.7.1/applications

and put some lines in it to echo the compiler-Version. So my new Allwmake is:

set -x
echo $WM_ARCH
echo $WM_CC
echo $WM_CXX
wmake all solvers/basic/potentialFoam
#wmake all solvers
#wmake all utilities

After performing Allwmake I get the output:

+ echo linux64
linux64
+ echo gcc-4.5
gcc-4.5
+ echo g++-4.5
g++-4.5
+ wmake all solvers/basic/potentialFoam
g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-40 -I/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/src/OpenFOAM/lnInclude -I/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/src/OSspecific/POSIX/lnInclude -fPIC Make/linux64GccDPOpt/potentialFoam.o -L/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt \
-lfiniteVolume -lOpenFOAM -liberty -ldl -lm -o /home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/bin/linux64GccDPOpt/potentialFoam
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: Make/linux64GccDPOpt/potentialFoam.o: undefined reference to symbol 'Foam::OPstream::write(Foam::Pstream::commsTypes, int, char const*, long)'
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: note: 'Foam::OPstream::write(Foam::Pstream::commsTypes, int, char const*, long)' is defined in DSO /home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.4.1/libPstream.so so try adding it to the linker command line
/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/lib/linux64GccDPOpt/openmpi-1.4.1/libPstream.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [/home/ow4349/OpenFOAM/OpenFOAM-1.7.1/applications/bin/linux64GccDPOpt/potentialFoam] Fehler 1

First you see, that the compiler Version is the right one. What makes me a bit surprising is the fact, that inbetween the following path occurs:
"/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld

Why appears here the number 4.6? Maybe this is the problem? But it seems, that this this is only a relative path? Maybe the gcc-4.5 should also be registered in other files than only in bashrc?

I hope someone can give a hint to solve the problem

Many Greetings Matthias

wyldckat August 16, 2012 17:10

Hi Matthias,

If you had said a week ago that you couldn't perform the tests sooner, I could have looked into this last week...
Anyway, this weekend I'll look into this.

In the mean time, you can check the reference links from my blog page dedicated to manually building OpenFOAM: Unofficial OpenFOAM installation instructions: Install and build OpenFOAM by hand

Best regards,
Bruno

wyldckat August 19, 2012 08:27

Hi Matthias,

All done! You can find the tutorial here: http://openfoamwiki.net/index.php/In...#openSUSE_12.1
Those instructions require additional system packages to be installed, so I hope there isn't a problem. If you can't, I can have a look at the instructions and add info on how to use OpenFOAM's Open-MPI.

Best regards,
Bruno

matthi September 12, 2012 10:14

Installation of OpenFOAM-1.7.1 in openSUSE12.1
 
Dear Bruno,

SUCCESS! The code works properly!
First of all many thanks for your work. I`m very pleased about your help.

To come forth, I used your tutorial: http://openfoamwiki.net/index.php/In...#openSUSE_12.1

I left step 1, because we installed gcc4.5 some days ago using the update manager of Suse. Therefore, I first performed step 2. I also left step 3 because the code was downloaded before. Next, I performed the commands concerning the rules files in step 4 for option X86_64. The export of the right shell variables WM_CC and WM_CXX in step 3 was done and proven before by editing the file ~/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc (see my attempts above). Afterwards OpenFOAM was builded (steps 5 and 6). I tested the code with icofoam and my own application and it works properly. I left step 8, because I don`t use Paraview so far.

At this point, I was not sure about the background of the primary problem.
Therefore, I replied the whole process just described again step by step. I found out, that the solution of my problem was NOT the execution of step 2. It was the execution of the update and fixing of the rules files in step 3 (unfortunately, I don`t understand what the background of these steps is).

Thanks again for your help. I hope the thread and your tutorial helps other foamers as well to install OpenFOAM-1.7.1 in openSUSE12.1.

Many greetings

Matthias


All times are GMT -4. The time now is 07:19.