CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Installation

Installing OpenFOAM 1.7.1 on AIX 5.3

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   October 26, 2010, 06:49
Default Installing OpenFOAM 1.7.1 on AIX 5.3
  #1
hrn
New Member
 
Join Date: Oct 2010
Posts: 2
Rep Power: 0
hrn is on a distinguished road
Hi,

I have for several years been installing OpenFOAM on an IBM P575+ supercomputer with AIX 5.3 and g++ 4.4.3. I have developed a patch for both OpenFOAM-1.7.1 and a patch for Thirdparty-1.7.1, so that OpenFOAM can be used on our supercomputer.

However, where the tutorials/interFoam/damBreak example from OpenFOAM 1.5.x from February 24, 2010 works just fine, the tutorials/multiphase/interFoam/ras/damBreak from OpenFOAM 1.7.1 gives me INF as result. See the attached file. As you can see, the change happens quite suddenly for Min(alpha1) that goes from a normal number to -4.07145e+155 in a single time-step

Are you interested in my patches?
Do you have an idea to what could be the problem?

Best regards,

Henrik
Attached Files
File Type: txt OpenFOAM-log.txt (21.4 KB, 21 views)
hrn is offline   Reply With Quote

Old   October 27, 2010, 08:22
Default
  #2
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,258
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Greetings Henrik and welcome to the forum!

My experience in changing OpenFOAM code to make it work in supercomputers is pretty much none, since I don't have access to one

But I do have some experience in adapting OpenFOAM code to make it work in Windows and Linux.

So, my question is: what are the primary modifications you have done to the code? Were they:
  • make it build statically or how library loading is done;
  • some changes to make it work with the system's MPI;
  • some changes to make it work with the file system;
  • change how memory/object pointers are handled (including static and const type casts);
  • change how mathematical operations are made (e.g. vector operations).
AFAIK, only the last two should affect operationability of the RAS model library.

The other possibility is that you're getting a bug in OpenFOAM 1.7.1 that has already been fixed in 1.7.x. So, it would be good if you could test running the same cases you have in a dual or quad core x86(_64) machine to validate if it should work or not... although you might have already done this, but you didn't tell us

So, before we get to the patches, if you could provide some more general information about your changes, it would helpful for either me or someone else in the forum community to help you!

Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   October 29, 2010, 04:58
Default
  #3
hrn
New Member
 
Join Date: Oct 2010
Posts: 2
Rep Power: 0
hrn is on a distinguished road
Quote:
Greetings Henrik and welcome to the forum!
Thank you. Just to make it clear: I am a system administrator and not a person who knows a lot about CFD.

Quote:
My experience in changing OpenFOAM code to make it work in supercomputers is pretty much none, since I don't have access to one
We have an additional minor IBM P575+ supercomputer for testing purposes that we could give the developers behind OpenFOAM access to.

Quote:
  • make it build statically or how library loading is done;
Yes, there are actually quite a few loader options in the patch that I no longer remember the purpose of. I will try to compile OpenFOAM 1.7.1 without them and see what happens.

Quote:
  • some changes to make it work with the system's MPI;
Yes, one must use IBM's version of MPI on AIX. There is no alternative.

Quote:
  • some changes to make it work with the file system;
No

Quote:
  • change how memory/object pointers are handled (including static and const type casts);
Yes, the transFunc define in floatScalar.H does not work on AIX for the functions j0, j1, jn, y0, and y1, so for these special functions, I had to use aixTransFunc:

Code:
#define transFunc(func)            \
inline Scalar func(const Scalar s) \
{                                  \
    return ::func##f(s);           \
}

#define aixTransFunc(func)         \
inline Scalar func(const Scalar s) \
{                                  \
    return ::func(static_cast<double>(s)); \
}
Quote:
  • change how mathematical operations are made (e.g. vector operations).
No

Quote:
The other possibility is that you're getting a bug in OpenFOAM 1.7.1 that has already been fixed in 1.7.x. So, it would be good if you could test running the same cases you have in a dual or quad core x86(_64) machine to validate if it should work or not... although you might have already done this, but you didn't tell us
I have also installed OpenFOAM 1.7.1 and a recent version of 1.6.x on 2 Linux clusters. I have tested this case on all versions without any problems there. I will also try the latest version of 1.7.x and tell you how that goes, but I doubt that this part of the code has been changed, since there are no problems with it on Linux AFAIK. We have users who for years have used other parts of OpenFOAM on our supercomputer, apparently without encountering any problems with it.

Best regards,

Henrik
hrn is offline   Reply With Quote

Old   October 30, 2010, 07:33
Default
  #4
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,258
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi Henrik,

Quote:
Originally Posted by hrn View Post
We have an additional minor IBM P575+ supercomputer for testing purposes that we could give the developers behind OpenFOAM access to.
Then you better ask OpenCFD for support, since they're the developers behind OpenFOAM

Quote:
Originally Posted by hrn View Post
Yes, one must use IBM's version of MPI on AIX. There is no alternative.
I assume you only needed to change/add the linking rules for that MPI, without changing the OpenFOAM library Pstream. But still, this probably isn't the reason.

Quote:
Originally Posted by hrn View Post
Yes, the transFunc define in floatScalar.H does not work on AIX for the functions j0, j1, jn, y0, and y1, so for these special functions, I had to use aixTransFunc:

Code:
#define transFunc(func)            \
inline Scalar func(const Scalar s) \
{                                  \
    return ::func##f(s);           \
}

#define aixTransFunc(func)         \
inline Scalar func(const Scalar s) \
{                                  \
    return ::func(static_cast<double>(s)); \
}
I suggest testing this with gcc 4.3.3 and 4.4.3, with both OpenFOAM 1.6.x and 1.7.1. Something might have changed from gcc 4.3.3 to 4.4.3 that will require some additional tweaking of your code for using aixTransFunc. For example, before OpenFOAM 1.7.1, OpenFOAM did build with gcc 4.5.0, but there was an incompatibility in the code that made some applications break, only because gcc had changed some optimizations from 4.4 to 4.5. So something similar might have happened for your modifications as well.

Best regards,
Bruno
wyldckat is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
OpenFOAM 1.6.x - CentOS 5.3 x86_64 linnemann OpenFOAM Installation 68 April 22, 2013 11:03
Re : Problem Installing OpenFOAM on Centos -5.3 mohanphy OpenFOAM Installation 1 February 7, 2010 20:09
OpenFOAM 1.6 package - CentOS 5.3 x86_64 linnemann OpenFOAM Installation 36 September 2, 2009 12:46
OpenFOAM 1.5.x package - CentOS 5.3 x86_64 linnemann OpenFOAM Installation 7 July 30, 2009 03:14
Adventure of fisrst openfoam installation on Ubuntu 710 jussi OpenFOAM Installation 0 April 24, 2008 14:25


All times are GMT -4. The time now is 21:00.