CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (http://www.cfd-online.com/Forums/openfoam-installation/)
-   -   OpenFOAM 1.6.x Installer for Ubuntu (http://www.cfd-online.com/Forums/openfoam-installation/73805-openfoam-1-6-x-installer-ubuntu.html)

Canesin March 17, 2010 10:48

OpenFOAM 1.6.x Installer for Ubuntu
 
Hi, I'm proud to announce an Installer for Ubuntu (x86 and x64) for OpenFOAM 1.6.x ... This is an automatic script that take many needed fix into account.

It has been developed as a fork of the cfd-online script by the following users of CFD-online forum:
Mads Reck - Original author
Anton Kidess - Revision
Bruno Santos - Ubuntu 9.10 Libc fix

You can find the project on: http://code.google.com/p/openfoam-ubuntu


You can find alternate locations for download the original script on:
http://www.hvirvel.dk/ - Mads Reck webblog

Usage:
$sudo chmod +x installOF
$./installOF

Than choose your location (or the closest one) and wait a quite bit.
PLEASE USE THE TOPIC FOR ERRORS.

Javed March 17, 2010 12:52

it is not working on 32bit system.

Canesin March 17, 2010 13:30

Quote:

Originally Posted by Javed (Post 250457)
it is not working on 32bit system.

Can you copy and paste the error for me please ?

Fistulator March 19, 2010 15:44

Hello,

I tried the script too, but it failed at line 50 of the script at my 32 bit Notebook.

The error message:
cd: /home/Fistulator/OpenFOAM/ThirdParty-1.6/gcc-4.3.3/platforms/linux64/lib64: No such file or directory

But this script is a great idea, especially if you are not so fimiliar with linux like me.

Canesin March 19, 2010 15:51

Can you tell me what Ubuntu distribution you are using ?

vex March 19, 2010 16:08

Quote:

Originally Posted by Canesin (Post 250861)
Can you tell me what Ubuntu distribution you are using ?

I'm getting the same error and I'm using Ubuntu 9.10 x64 Bit (let me know if you need additional information)
the specific error I get is:
Code:

./installOF9.10: line 50: cd: /home/vex/OpenFOAM/ThirdParty-1.6/gcc-4.3.3/platforms/linux64/lib64

vex March 19, 2010 16:12

It appears that the file archetecture doesn't dictate a lib64 when I go hunting for it. I see only ...linux64/lib but no lib64, what I think may need to be done is just simply alter lib64 to lib, let me double check on my system and see what happens. Will post later

Yeah, so that appears to NOT be the problem. If I alter the script to look in the lib you will get
Code:

FIX up for Ubuntu 9.10
mv: cannot stat 'libstdc++.so.6': No such file or directory

Also I'm getting the echo of:
Quote:

Your system appears to be 32 BIT. Acting accordingly
It's definitely 64 bit

vex March 19, 2010 16:55

I know this is going to get annoying but it looks like the ARCH="XXX" is not reassigned with the uname -m > $ARCH

When I echo out the $ARCH I get XXX

Canesin March 19, 2010 16:58

---EDITED----
http://code.google.com/p/openfoam-ubuntu

vex March 19, 2010 17:12

Quote:

Originally Posted by Canesin (Post 250869)
------ Try the version of the script in www.canesin.com/node/4 ----
I will setup a repository in google code this weekend

I'll try that one if what I did didn't work for me (Basically commented out everything concerning the uname -m check and just manually dictated the script to look at the "x86_64" if statement). So far I haven't hit any errors and I'm working on the Compiling OpenFOAM portion right now.

vex March 20, 2010 01:49

well, I got it up and running. No errors this time around (though my computer did do some funny shut downs when it attempted to compile, but I think that's more a hardware issue than anything).

Thanks for your help!

Fistulator March 20, 2010 04:36

Quote:

Originally Posted by Canesin (Post 250861)
Can you tell me what Ubuntu distribution you are using ?

Hello, I have Ubuntu 9.10 and a 32 bit notebook. Please tell me if you have further information.

Canesin March 20, 2010 08:58

Quote:

Originally Posted by Fistulator (Post 250892)
Hello, I have Ubuntu 9.10 and a 32 bit notebook. Please tell me if you have further information.

I have done an update on the script, please try it again (from the link above).. If it doesn't work, please tell me here in the forum, here is 9 o'clock, this afternoon I will review the script, maybe do a GUI install, I still have to take another look to it.

wyldckat March 20, 2010 10:29

Greetings Fabio,

I was waiting until I had some more results for your script, but since you'll be doing some tuning and tweaking this afternoon, here is something that can help you detect what Ubuntu version is it running on.

On my Ubuntu installation, I've already got a command line ready for getting the version from the "/etc/lsb-release" file, but I'm in Windows right now and only in a couple of hours will I be switching to it :(


edit: Here you go, the command line that gives you the Ubuntu version installed:
Code:

cat /etc/lsb-release | grep DISTRIB_RELEASE= | sed s/DISTRIB_RELEASE=/$1/g
The output will be simply "9.10" or "9.04" or which ever version you have installed.

So, the version identification could now be:
Code:

version=`cat /etc/lsb-release | grep DISTRIB_RELEASE= | sed s/DISTRIB_RELEASE=/$1/g`
Additionally, I've got a question: why are you using two square brackets instead of one, for when you do the if commands:
Code:

if [[ "$arch" == "x86_64" ]]; then
One should be enough... at least by what I know... like so:
Code:

if [ "$arch" == "x86_64" ]; then
In a couple of hours I hope to have a few additional tested tweaks on Ubuntu's 8.04, 9.04 and 9.10, both i386 and x86_64 architectures. Ah, the wonders of virtual machines...

Best regards,
Bruno

Canesin March 20, 2010 14:15

Greetings Bruno,

Hi.. Thanks, I don't have VMs that can compile OF fast enough now.. and my workstation run 9.10 so part of the coding was theoretical work..
But I was thinking a little more deep, as you know better I believe will be more acurrated to make many diffs in the sources and based in the version the user is running than apply the diffs with patch.. I will also make possible installations with Paraview-pvserver only (no GUI), with MPI and python support for server installs...
I have put an Google-Code page for the script:
http://code.google.com/p/openfoam-ubuntu/

Please mail me for become an member and submit changes to the code.

If you have ready my blog I'm building an cluster solution, that consist of 3 machines at least.. one for data serving (OpenSolaris zraid), one for visualization (ubuntu10.04 pvserver) and the last one for hosting OpenFOAM (ubuntu10.04)...
The reason I choose 10.04 is because of it LTS status...
Do you wanna join this offjob project ??

wyldckat March 20, 2010 19:53

Hi Fabio,

Quote:

Originally Posted by Canesin (Post 250939)
Hi.. Thanks, I don't have VMs that can compile OF fast enough now.. and my workstation run 9.10 so part of the coding was theoretical work..

Well, I use VMWare's VMPlayer 3.0, that has multi-core vcpus. With 2-3GB of RAM on the real machine, 10GB of hard drive to spare per VM, and a CPU in the range of the 2.0GHz and up, one can drive an Ubuntu VM nearly as smoothly as in a real host! Well, at least for compiling OpenFOAM, I've gotten build timings near real time. And my computer's Athlon 64 X2 5200+ doesn't even have that special VM smart bit that modern CPUs have!

Quote:

Originally Posted by Canesin (Post 250939)
But I was thinking a little more deep, as you know better I believe will be more acurrated to make many diffs in the sources and based in the version the user is running than apply the diffs with patch.. I will also make possible installations with Paraview-pvserver only (no GUI), with MPI and python support for server installs...
I have put an Google-Code page for the script:
http://code.google.com/p/openfoam-ubuntu/

Uhm... for now, the only diffs/patches that I can think of are for the files:
Code:

OpenFOAM/etc/bashrc
OpenFOAM/etc/settings.sh
ThirdParty/makeGcc
ThirdParty/makeParaview (maybe)

For the rest, I think the OpenCFD team has done a terrific job.
The things I have in mind of tweaking are:
  • options to use system gcc, or build 4.3.3 from ThirdParty or use the precompiled one;
  • patch the bashrc file to have a multi-core detection for automatically using all cores for compiling OpenFOAM;
  • patch bashrc for the 32 bit version (I still don't know how the current 32bit cookbook versions have magically worked :confused:);
  • launch makeParaview or use the precompiled one... or even getting the Ubuntu apt-get version (with -dev).
  • oh, and that "upgrade" thing in apt-get should be optional... sometimes upgrading some packages can lead to trouble :(
For the second and third, I've already done for Mandriva a while ago, available in this thread. Ah, and Anton's startfoam alias thing is one sweet trick! Very useful for my cross-compiling endeavor, and could prove useful for making a "one size fits all" install script!
EDIT: The fix for gcc-4.3.3 that comes with the Third Party General package is available on this post. Later on that same thread, there is a fix for makeGcc, to remove some unecessary folders and a variant of makeGcc that builds gcc in x86_64 without the 32bit part. As for Paraview, building instructions for Qt, CMake and Paraview are available on this thread.

Quote:

Originally Posted by Canesin (Post 250939)
Please mail me for become an member and submit changes to the code.

As soon as I get things going, I'll send you one. I was hoping to have made the tweaks and tests this afternoon, but some things came up. I've been meaning to help Mads with the cookbook (since two months ago or so), but never got around to it :( But lately, as I've seen more and more issues arise, I felt compelled to pitch in and make a bulk contribution, based on my experiences with cross-compiling OpenFOAM with mingw32 and mingw-w64.

Quote:

Originally Posted by Canesin (Post 250939)
If you have ready my blog I'm building an cluster solution, that consist of 3 machines at least.. one for data serving (OpenSolaris zraid), one for visualization (ubuntu10.04 pvserver) and the last one for hosting OpenFOAM (ubuntu10.04)...
The reason I choose 10.04 is because of it LTS status...
Do you wanna join this offjob project ??

I did see your blog, but now I'm still a bit confused... you don't have a suitable computer for building OpenFOAM in a VM, but you do have access to clusters, PVMs and to develop VM appliances :confused:
Well, sadly I'll have to pass on joining this project :( At least for now. I still have lots to fix with the cross-compiled mingw32/-w64 versions (wiki page here), and have yet to fix them. Additionally, there are somethings I want to add to the wiki, but haven't had the time for them. And OpenFOAM 1.7 version will come around the end of July, so... well, I'm already worried about it, because of the things there are yet to be done :(
Nonetheless, if you have any questions or are stumped but some compiling or scripting issue, I may be of some help! Additionally, there are at least two other people I can think of that you can talk to about your project:
  • Alberto Passalacqua has an OpenSUSE based OpenFOAM distribution, on this thread;
  • Niels Nielsen made a install script for CentOS, on this thread.
I think it's something that all three could add value in all those projects by cooperating!

Uhm, I ended up writing a long post... sorry about that :p As I said, as soon as I've got news for you, I'll send you an email, or at the very least post here ;)

Best regards,
Bruno

Canesin March 21, 2010 17:15

Quote:

I did see your blog, but now I'm still a bit confused... you don't have a suitable computer for building OpenFOAM in a VM, but you do have access to clusters, PVMs and to develop VM appliances
I'm doing this script in the weekends, where I use my personal computer that is an macbook pro with 2G of RAM ... memory is what is keeping me slow..
I my internship at POLO (www.polo.ufsc.br) I have A LOT more resources, as an SGI hack as example, but there I have much more bureaucracy ...

Backing now... MANY thanks for the contributions.. I will read the topics with care. If you have seen the Google-Code page, I have setup an mercurial repository for the script, you don't need to be an very active commiter.. help as you can =) .. I'm compromising myself to make regular commits with fix and improvements in the code, but the others members of the project can help with testing and once in a while commits..

wyldckat March 21, 2010 23:54

1 Attachment(s)
Quote:

Originally Posted by Canesin (Post 251042)
I'm doing this script in the weekends, where I use my personal computer that is an macbook pro with 2G of RAM ... memory is what is keeping me slow..
I my internship at POLO (www.polo.ufsc.br) I have A LOT more resources, as an SGI hack as example, but there I have much more bureaucracy ...

Sweet! Uhm, Mac pro with 2GB... I've got no clue as to the GHz power and number of cores, but you can still run a VM with Ubuntu 32bits and 1.3GB of RAM, with near real time build times ;)

OK, as for the new buffed up script, is attached to this post. I've tested it only in two Ubuntu VM boxes so far:
  1. Ubuntu 8.04.4 32 bit, no package updates made; comes with gcc 4.2.4 and Qt 4.3.4. The attached script worked well, but needs to add Qt 4.3.5 to the list of stuff to build. So, the icoFoam tutorial cases worked well, but no Paraview/paraFoam is available. Took about 2 hours to run Allwmake, with 2 virtual cores.
  2. Ubuntu 9.04 64 bit, no package updates made; comes with gcc-4.3.3 and Qt 4.5.0. The attached script worked well. The icoFoam tutorial cases worked well, and paraFoam worked without additional build commands required post-script.
    But the VM lagged a lot and it took about 5h30m to run Allwmake :( Even using dual virtual cores. VMPlayer must be missing something when it comes to virtualizing 64 bit processing :(
Script's release notes:
* Compacted cookbook script multi-architecture to a single block, instead of two
* Automatic search for closest sourceforge mirror
* Default options set at the beginning of the script
* upgrade in apt-get is now optional
* interaction is optionable, but for now only via default settings
* added option to build OpenFOAM code documentation, but lacks adding needed packages to apt-get
* added option for using startFoam alias for OpenFOAM environment, instead of making OpenFOAM be always set
* the script makes a log of its self execution
* estimate (based on bogomips) and actual timing of Allwmake is also made
* this script doubled in size...

Yet to do / limitations:
- Multi-language support, since this script has only been tested in Ubuntu's standard english
- add option to build OpenFOAM's gcc, but also will need patching of 3 missing files (I've already posted the patches on this forum, somewhere :confused:)
- Add Qt 4.3.5 building, especially for Ubuntu 8.04 LTS
- Add building Paraview, with or without python
- Add packages to apt-get for building OpenFOAM's gcc and code documentation

Stuff I've just remembered that are still to do:
- Add fixes for building ccm26ToFoam and option to run it (also available somewhere on this forum)
- Add command line option to run with the script's defaults
- Add the possibility of compiling 32 bit on a 64 bit machine, as well as 32 bit single precision. Here the "alias startFoam" come in handy!
- Ubuntu's Paraview hasn't got a "-dev" package, so it won't be possible to get the PV3FOAMReader to work with it, only using foamToVTK... sooo... scrap that possibility?


More notes to users: After the comments area in the head of the script, there is a default options area. One can edit the options, and then use it for automatic installations, without the need for user interface.

From my previous list of ideas, I think at least half have been implemented and the remainder are already listed in this post. Oh, and that "alias startFoam" has been added as an option too :)


Sooo, this new script is a bit more daunting to read then the original cookbooks, but this was made with the intent of reducing the need for a copy-paste line by line execution of this script, and be more of a plug-n-play robot cooking machine :P.

Finally, when one needs to update OpenFOAM to the latest git version, if I'm not mistaken, just do:
Code:

cd $WM_PROJECT_DIR
git pull
./Allwmake >make.log 2>&1

Uhm, adding these three lines to a script could be useful... but maybe it's best for new users to feel the need to do that themselves, since OpenFOAM is a heavily script and hands on CFD king size tool-kit :cool:


So, I'm signing off for now, and I hope this new script can serve as an inspiration for future upgrades to it :D

Best regards,
Bruno

Canesin March 22, 2010 00:51

Wow, that was a lot of changes.. =)
I have pushed the changes to the mercurial repository.. I'm reading it, I'm writing some user interface using dialog, it is nice because is cool and is command line, so it will run in server installs.
Have added you to the project in googlecode, see your email, did some commit now for start the "coding goodpratice" of the guidelines below.. from now please use commit message to publish changing, this topic for users have "some kind" of support.
To commit use:
hg update
hg diff installOF.sh
hg commit installOF.sh -m "YOUR COMMIT CHANGES, PRESS ENTER TO DO MULTI LINE COMMIT MESSAGES"
hg push
To update local use:
hg pull -u
----------------------
Guidelines to the project:
- Have always the option for "Fresh Install" working in 9.10 and 9.04, is new code in that area, comment that with markup %NEW
- Develop GUI (Graphical User Interface) using dialog -> NO OTHER EXTERNAL LIB
- TODOS added in the header of the code, TODOS will have number priority, being 1 the highest.


Again, very good job in this last changes =) !

PS: I know have only you and me pushing the code right now, but who knows the future ??

akidess March 22, 2010 17:44

Fantastic work guys, I'm impressed with where this script is heading!


All times are GMT -4. The time now is 18:43.