CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (https://www.cfd-online.com/Forums/openfoam-installation/)
-   -   How to upgrade centFOAM (https://www.cfd-online.com/Forums/openfoam-installation/105685-how-upgrade-centfoam.html)

sukye August 6, 2012 17:14

How to upgrade centFOAM
 
I have installed centFOAM early this May. How can I upgrade it to include OpenFOAM 2.1.1? Thanks.

akidess August 7, 2012 04:41

Compile from source: http://www.openfoam.org/download/source.php

Edit: Alternatively rerun the centFOAM script. It has been updated to include OF-2.1.1 recently

wyldckat August 7, 2012 06:59

Quote:

Originally Posted by akidess (Post 375726)
Edit: Alternatively rerun the centFOAM script. It has been updated to include OF-2.1.1 recently

Don't forget to update the centFOAM.py script first, by downloading the latest version from here: http://sourceforge.net/projects/centfoam/files/ ;)

sukye August 7, 2012 13:09

Thank you Bruno and Anton!

Quote:

Originally Posted by wyldckat (Post 375755)
Don't forget to update the centFOAM.py script first, by downloading the latest version from here: http://sourceforge.net/projects/centfoam/files/ ;)


sukye August 13, 2012 15:23

when I input "blockMesh", the error comes

Code:

$HOME/centFOAM/OpenFOAM/ThirdParty-2.1.1/platforms/linux64Gcc/openmpi-1.5.3/lib/libmpi.so.1: ELF file OS ABI invalid
I know it means that the Application Binary Interface is non compatible between binaries used. How to fix this issue?

wyldckat August 13, 2012 16:55

Quote:

Originally Posted by sukye (Post 376866)
when I input "blockMesh", the error comes

Code:

$HOME/centFOAM/OpenFOAM/ThirdParty-2.1.1/platforms/linux64Gcc/openmpi-1.5.3/lib/libmpi.so.1: ELF file OS ABI invalid
I know it means that the Application Binary Interface is non compatible between binaries used. How to fix this issue?

That's strange... what does the following command output?
Code:

uname -m
If it does not output "x86_64", then that's the reason why you're getting that message.

sukye August 13, 2012 16:57

yes, the output is "x86_64"

Quote:

Originally Posted by wyldckat (Post 376882)
That's strange... what does the following command output?
Code:

uname -m
If it does not output "x86_64", then that's the reason why you're getting that message.


wyldckat August 13, 2012 17:09

After you installed CentFOAM, did you modify anything in your personal "~/.bashrc" file?
Or better yet, did you change the reference from 2.1.0 to 2.1.1 or is there a repeated/similar line?

sukye August 13, 2012 17:12

Code:

alias netgen="$HOME/centFOAM/netgen-4.9.14-svn//bin/./start_netgen"
alias engrid="$HOME/centFOAM/engrid-1.3//bin/./start_engrid"
alias paraview="$HOME/centFOAM/paraview-3.10.1//bin/start_paraview"
alias gmsh="$HOME/centFOAM/gmsh-2.5.0//bin/./start_gmsh"
alias OF21=". $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1//etc/bashrc"
alias paraFoam='paraFoam -builtin'

OF21


Quote:

Originally Posted by wyldckat (Post 376889)
After you installed CentFOAM, did you modify anything in your personal "~/.bashrc" file?
Or better yet, did you change the reference from 2.1.0 to 2.1.1 or is there a repeated/similar line?


wyldckat August 13, 2012 17:15

OK, what does this output:
Code:

ldd $(which blockMesh)
This should give you a list of libraries to which blockMesh is expected to load.

sukye August 13, 2012 17:18

Right. But I still dont know which ones are missing.

Quote:

Originally Posted by wyldckat (Post 376891)
OK, what does this output:
Code:

ldd $(which blockMesh)
This should give you a list of libraries to which blockMesh is expected to load.


wyldckat August 13, 2012 17:20

Quote:

Originally Posted by sukye (Post 376892)
Right. But I still dont know which ones are missing.

I forgot to indicate that this command will show what libraries it's expected to load and from where it will try to load them!
This way we can try to figure out if there are any 32bit libraries that it is trying to load!

sukye August 13, 2012 17:24

Thanks.

Code:

        libblockMesh.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libblockMesh.so (0x00002b23eb280000)
        libmeshTools.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libmeshTools.so (0x00002b23eb4b8000)
        libdynamicMesh.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libdynamicMesh.so (0x00002b23eb939000)
        libOpenFOAM.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so (0x00002b23ebe29000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003a64200000)
        libstdc++.so.6 => $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/gcc-4.6.2/lib64/libstdc++.so.6 (0x00002b23ec56a000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003a63e00000)
        libgcc_s.so.1 => $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/gcc-4.6.2/lib64/libgcc_s.so.1 (0x00002b23ec86f000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003a63a00000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003a64600000)
        libtriSurface.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libtriSurface.so (0x00002b23eca85000)
        libfiniteVolume.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libfiniteVolume.so (0x00002b23eccf8000)
        libPstream.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/openmpi-1.5.3/libPstream.so (0x00002b23ededc000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x0000003a64a00000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003a63600000)
        libfileFormats.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libfileFormats.so (0x00002b23ee0e7000)
        libmpi.so.1 => $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64Gcc/openmpi-1.5.3/lib/libmpi.so.1 (0x00002b23ee2f0000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003a6d800000)
        libutil.so.1 => /lib64/libutil.so.1 (0x0000003a72400000)

No 32bit libraries were called.

Quote:

Originally Posted by wyldckat (Post 376893)
I forgot to indicate that this command will show what libraries it's expected to load and from where it will try to load them!
This way we can try to figure out if there are any 32bit libraries that it is trying to load!


wyldckat August 13, 2012 17:32

Maybe it doesn't load any 32bit libraries, but then why is every single OpenFOAM related library being called from "OpenFOAM-2.1.0" and "ThirdParty-2.1.0" instead of the ones from 2.1.1?

Check in your "~/.bashrc" and see if you don't have more than one definition of "alias OF21"!? Because if you do, then you could/should:
  1. Remove the first call to OF21, which is loading 2.1.0.
  2. Rename the first "alias OF21=*" to "OF210", to avoid collision of definitions.
Then start a new terminal and try again!

For more on this subject: Advanced tips for working with the OpenFOAM shell environment

sukye August 13, 2012 17:44

Sorry, I just changed OF21 to call 2.1.0 and did not realized it when ldd $(which blockMesh) was run.

Now everything should be pointed to 2.1.1 and the output is
Code:

$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: error while loading shared libraries: $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.1/platforms/linux64Gcc/openmpi-1.5.3/lib/libmpi.so.1: ELF file OS ABI invalid


Quote:

Originally Posted by wyldckat (Post 376895)
Maybe it doesn't load any 32bit libraries, but then why is every single OpenFOAM related library being called from "OpenFOAM-2.1.0" and "ThirdParty-2.1.0" instead of the ones from 2.1.1?

Check in your "~/.bashrc" and see if you don't have more than one definition of "alias OF21"!? Because if you do, then you could/should:
  1. Remove the first call to OF21, which is loading 2.1.0.
  2. Rename the first "alias OF21=*" to "OF210", to avoid collision of definitions.
Then start a new terminal and try again!

For more on this subject: Advanced tips for working with the OpenFOAM shell environment


wyldckat August 13, 2012 17:53

Mmm... weird... OK, let's try to use the ThirdParty folder from 2.1.0 with OpenFOAM 2.1.1:
Code:

cd $HOME/centFOAM/OpenFOAM
mv ThirdParty-2.1.1 ThirdParty-2.1.1_real
ln -s ThirdParty-2.1.0 ThirdParty-2.1.1
ldd $(which blockMesh)


sukye August 13, 2012 18:29

Looks like GLIBCXX is missing.

Code:

$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libblockMesh.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libblockMesh.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libmeshTools.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libmeshTools.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libdynamicMesh.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libdynamicMesh.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libtriSurface.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libtriSurface.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libfiniteVolume.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libfiniteVolume.so)
$HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/blockMesh: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libfileFormats.so)
        libblockMesh.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libblockMesh.so (0x00002af24b456000)
        libmeshTools.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libmeshTools.so (0x00002af24b68a000)
        libdynamicMesh.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libdynamicMesh.so (0x00002af24bb14000)
        libOpenFOAM.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so (0x00002af24c03d000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003a64200000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003a6a200000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003a63e00000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003a69e00000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003a63a00000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003a64600000)
        libtriSurface.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libtriSurface.so (0x00002af24c79f000)
        libfiniteVolume.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libfiniteVolume.so (0x00002af24ca0f000)
        libPstream.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/openmpi-1.5.3/libPstream.so (0x00002af24dbf0000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x0000003a64a00000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003a63600000)
        libfileFormats.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libfileFormats.so (0x00002af24ddfa000)
        libmpi.so.1 => $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.1/platforms/linux64Gcc/openmpi-1.5.3/lib/libmpi.so.1 (0x00002af24e002000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003a6d800000)
        libutil.so.1 => /lib64/libutil.so.1 (0x0000003a72400000)


Quote:

Originally Posted by wyldckat (Post 376899)
Mmm... weird... OK, let's try to use the ThirdParty folder from 2.1.0 with OpenFOAM 2.1.1:
Code:

cd $HOME/centFOAM/OpenFOAM
mv ThirdParty-2.1.1 ThirdParty-2.1.1_real
ln -s ThirdParty-2.1.0 ThirdParty-2.1.1
ldd $(which blockMesh)



wyldckat August 13, 2012 18:44

OK, I'm guessing the GCC version used is different... try copying the GCC 4.6.2 build from 2.1.1 to 2.1.0:
Code:

cp -r $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.1_real/platforms/linux64/gcc-4.6.2 $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/gcc-4.6.2

If this doesn't work, check what GCC version OpenFOAM 2.1.0 is using:
Code:

ls -l  $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/
You can remove the "gcc-4.6.2" and create a symbolic link to it, e.g.:
Code:

rm -r $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/gcc-4.6.2
ln -s $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/gcc-4.6.1  $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/gcc-4.6.2


sukye August 13, 2012 19:00

Why do we need to copy the GCC 4.6.2 build from 2.1.1 to 2.1.0, if we try to make 2.1.1 work?

2.1.0 is using gcc-4.6.2.

Thanks.

wyldckat August 14, 2012 05:36

Because according to the other error message, the library "libstdc++.so" was not being found, which is located at GCC's lib folder.
This is why I was specifying the need for copying the other gcc version, because its folder was not being found and "/usr/lib64/libstdc++.so.6" is being picked up instead.


All times are GMT -4. The time now is 10:12.