How to upgrade centFOAM
I have installed centFOAM early this May. How can I upgrade it to include OpenFOAM 2.1.1? Thanks.
|
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 |
Quote:
|
Thank you Bruno and Anton!
Quote:
|
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 |
Quote:
Code:
uname -m |
yes, the output is "x86_64"
Quote:
|
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? |
Code:
alias netgen="$HOME/centFOAM/netgen-4.9.14-svn//bin/./start_netgen" Quote:
|
OK, what does this output:
Code:
ldd $(which blockMesh) |
Right. But I still dont know which ones are missing.
Quote:
|
Quote:
This way we can try to figure out if there are any 32bit libraries that it is trying to load! |
Thanks.
Code:
libblockMesh.so => $HOME/centFOAM/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libblockMesh.so (0x00002b23eb280000) Quote:
|
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:
For more on this subject: Advanced tips for working with the OpenFOAM shell environment |
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:
|
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 |
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) Quote:
|
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/ Code:
rm -r $HOME/centFOAM/OpenFOAM/ThirdParty-2.1.0/platforms/linux64/gcc-4.6.2 |
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. |
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. |