CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions

[PyFoam] First discussion thread about PyFoam

Register Blogs Community New Posts Updated Threads Search

Like Tree6Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 5, 2009, 08:29
Default Hi Bernhard, I tried updating
  #101
Member
 
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17
jason is on a distinguished road
Hi Bernhard,
I tried updating PyFoam to 0.5.1 so I can use it with OF v1.5.

Now I have the same problem as I had on the 8/11/07 above. The line you told me to change seems to already be changed in this new version. I added the line print mpirun and I get this error output:

user@linux:~/OpenFOAM/user-1.4.1/Trap> pyFoamPlotRunner.py --procnr=4 twoPhaseEulerFoam . cyclone1-newidea11
['mpirun', '--mca', 'pls_rsh_agent', 'rsh', '-np', '4', '-x', 'PATH', '-x', 'LD_LIBRARY_PATH', '-x', 'WM_PROJECT_DIR', '-x', 'FOAM_MPI_LIBBIN', '-x', 'MPI_BUFFER_SIZE', '/home/user/OpenFOAM/OpenFOAM-1.4.1/applications/bin/linuxGccDPOpt/twoPhaseEuler Foam', '.', 'cyclone1-newidea11', '-parallel']
[linux:11236] [0,0,0] ORTE_ERROR_LOG: Error in file runtime/orte_init_stage1.c at line 312
--------------------------------------------------------------------------
It looks like orte_init failed for some reason; your parallel process is
likely to abort. There are many reasons that a parallel process can
fail during orte_init; some of which are due to configuration or
environment problems. This failure appears to be an internal failure;
here's some additional information (which may only be relevant to an
Open MPI developer):

orte_pls_base_select failed
--> Returned value -1 instead of ORTE_SUCCESS

--------------------------------------------------------------------------
[linux:11236] [0,0,0] ORTE_ERROR_LOG: Error in file runtime/orte_system_init.c at line 42
[linux:11236] [0,0,0] ORTE_ERROR_LOG: Error in file runtime/orte_init.c at line 52
--------------------------------------------------------------------------
Open RTE was unable to initialize properly. The error occured while
attempting to orte_init(). Returned value -1 instead of ORTE_SUCCESS.
--------------------------------------------------------------------------
Getting LinuxMem: [Errno 2] No such file or directory: '/proc/11236/status'


Would appreciate any help.

Thanks

Jason
jason is offline   Reply With Quote

Old   March 5, 2009, 09:03
Default Hi Jason! No idea. Try runn
  #102
Assistant Moderator
 
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51
gschaider will become famous soon enoughgschaider will become famous soon enough
Hi Jason!

No idea. Try running the command "by hand" (basically the above list with spaces instead of '.'). Adapt the command line until it runs. Then use the settings (http://openfoamwiki.net/index.php/Co...call_to_mpirun) to emulate the working command line for PyFoam

BTW: check with "which mpirun" which mpirun you're using

Bernhard
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request
gschaider is offline   Reply With Quote

Old   March 7, 2009, 15:22
Default Hi everyone, first of all:
  #103
Senior Member
 
Tomislav Maric
Join Date: Mar 2009
Location: Darmstadt, Germany
Posts: 284
Blog Entries: 5
Rep Power: 21
tomislav_maric is on a distinguished road
Hi everyone,

first of all: thank You Berhhard for pyFoam. I'm having some problems and haven't been able to make full use of it, but even pyFoamCloneCase and pyFoamClearCase, etc. make my life easier.

Ok, now to the problems:

my configuration:

HP Compaq 6820s Notebook PC - Business Notebook (Laptop) and Tablet PC
Chipset
Mobile Intel® GM965
Memory
3 GB 667 MHz DDR2 SDRAM
OS
Ubuntu 8.10 Intrepid
FOAM
latest 1.5-dev from the SVN

my problem:

I've installed pyFoam as non-root user, tried the test, and used scripts like the ones mentioned above. I want to use Runner utilities and control the runs with Networking utilities, but when I tried pyFoamRunner, here's what happened:

tomislav@icarus:run$ pyFoamRunner.py icoFoam ./ cavity
Error in /home/tomislav/OpenFOAM/PyFOAM/bin/pyFoamRunner.py : Case /home/tomislav/OpenFOAM/tomislav-1.5-dev/run does not have a 'system' directory

and within a directory,

tomislav@icarus:run$ cd cavity/
tomislav@icarus:cavity$ pyFoamRunner.py icoFoam . .
/*---------------------------------------------------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.5-dev |
| \ / A nd | Web: http://www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/

Usage: icoFoam [-case dir] [-parallel] [-help] [-doc] [-srcDoc]


Wrong number of arguments, expected 0 found 2


FOAM exiting

Getting LinuxMem: [Errno 2] No such file or directory: '/proc/6074/status'
Exception in thread Thread-3 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner
File "/usr/lib/python2.5/threading.py", line 664, in run
File "/usr/lib/python2.5/threading.py", line 353, in set
File "/usr/lib/python2.5/threading.py", line 268, in notifyAll
<type>: 'NoneType' object is not callable

Here's the test:

tomislav@icarus:cavity$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyFoam
>>> from PyFoam import FoamInformation
>>> FoamInformation.
FoamInformation.__class__ FoamInformation.__reduce_ex__ FoamInformation.foamVersion
FoamInformation.__delattr__ FoamInformation.__repr__ FoamInformation.foamVersionNumber
FoamInformation.__dict__ FoamInformation.__setattr__ FoamInformation.getPathFromEnviron
FoamInformation.__doc__ FoamInformation.__str__ FoamInformation.injectVariables
FoamInformation.__file__ FoamInformation.changeFoamVersion FoamInformation.listdir
FoamInformation.__getattribute__ FoamInformation.config FoamInformation.oldAppConvention
FoamInformation.__hash__ FoamInformation.environ FoamInformation.path
FoamInformation.__init__ FoamInformation.error FoamInformation.popen4
FoamInformation.__name__ FoamInformation.foamInstalledVersions FoamInformation.re
FoamInformation.__new__ FoamInformation.foamMPI FoamInformation.warning
FoamInformation.__reduce__ FoamInformation.foamTutorials
>>> print FoamInformation.foamVersion
<function>
>>> print FoamInformation.foamVersion()
(1, 5, 'dev')
>>>

What am I doing wrong?

Thank you,

Tomislav
__________________
When asking a question, prepare a SSCCE.
tomislav_maric is offline   Reply With Quote

Old   March 9, 2009, 08:49
Default Hi Tomislav! As you're usin
  #104
Assistant Moderator
 
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51
gschaider will become famous soon enoughgschaider will become famous soon enough
Hi Tomislav!

As you're using a 1.5-version (which has a new calling convention) you'll also have to use that convention for the pyFoamRunner-stuff. So

pyFoamRunner.py icoFoam -case cavity

or from within the directory

pyFoamRunner.py icoFoam

If you want to use the 1.4.1-version instead

pyFoamRunner.py --foam=1.4.1 icoFoam . cavity
or
pyFoamRunner.py --foam=1.4.1 icoFoam . .

lets you do this

Bernhard
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request
gschaider is offline   Reply With Quote

Old   March 9, 2009, 09:02
Default Thanks, Bernhard. It works gre
  #105
Senior Member
 
Tomislav Maric
Join Date: Mar 2009
Location: Darmstadt, Germany
Posts: 284
Blog Entries: 5
Rep Power: 21
tomislav_maric is on a distinguished road
Thanks, Bernhard. It works great now.
__________________
When asking a question, prepare a SSCCE.
tomislav_maric is offline   Reply With Quote

Old   March 12, 2009, 09:46
Default Hi Bernhard, The next time
  #106
Member
 
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17
jason is on a distinguished road
Hi Bernhard,

The next time I come to use it it works fine with no errors? It works in both 1.4.1 and 1.5. Spooky.

for your info when running 1.4.1 'which mpirun' produced
/OpenFOAM/OpenFOAM-1.4.1/src/openmpi-1.2.3/platforms/linuxGccDPOpt/bin/mpirun
when running 1.5
/OpenFOAM/ThirdParty/openmpi-1.2.6/platforms/linuxGccDPOpt/bin/mpirun

Thanks Anyway

Jason
jason is offline   Reply With Quote

Old   March 12, 2009, 11:38
Default Hi Bernhard, Sorry I was be
  #107
Member
 
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17
jason is on a distinguished road
Hi Bernhard,

Sorry I was being stupid. It still doesn't work.

However if I manually type the following
mpirun --mca pls_rsh_agent rsh -np 4 -x PATH -x LD_LIBRARY_PATH -x WM_PROJECT_DIR /home/user/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoa m -parallel

I get the error from 05/03/09

I dont really know what I am doing but if I type

mpirun --mca pls_ssh_agent ssh -np 4 -x PATH -x LD_LIBRARY_PATH -x WM_PROJECT_DIR /home/user/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoa m -parallel

ie change rsh to ssh then the calculations progress but I dont see any graphs.

Do i need to make this change somewhere? If so where?

Thanks

Jason
jason is offline   Reply With Quote

Old   March 12, 2009, 12:59
Default Hi Jason! "Don't see graphs
  #108
Assistant Moderator
 
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51
gschaider will become famous soon enoughgschaider will become famous soon enough
Hi Jason!

"Don't see graphs": You mean "Because it is not run in the PlotRunner"

To make this permanent change the "_pre" variable as described in:
http://openfoamwiki.net/index.php/Co...call_to_mpirun

BTW: Just as your message arrived I finalized a new release of pyFoam. It doesn't directly address your problem but it has an additional switch in pyfoamrc

[Debug]
parallelExectuion = True

that outputs which call to mpirun PyFoam uses.
Other features of the new release (among this better suppor for paraview) are listed in http://openfoamwiki.net/index.php/Co...PyFoam#History

Bernhard
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request
gschaider is offline   Reply With Quote

Old   March 12, 2009, 13:44
Default Hi, I must need glasses, to
  #109
Member
 
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17
jason is on a distinguished road
Hi,

I must need glasses, to me its not clear on the wiki which file to change so I changed this one in my source code.

~/PyFoam/PyFoam-0.5.1/PyFoam/Infrastructure/Configuration.py

and then reinstalled and now everything works.

Thanks

Jason
jason is offline   Reply With Quote

Old   March 13, 2009, 05:47
Default Hi Jason! As described in t
  #110
Assistant Moderator
 
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51
gschaider will become famous soon enoughgschaider will become famous soon enough
Hi Jason!

As described in the section above: either /etc/pyfoamrc (for system-wide changes) or ~/.pyFoam/pyfoamrc (just for you). You'll propably have to create these files

Changing the source-code is an alternative but will break your setup with the next update

Bernhard
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request
gschaider is offline   Reply With Quote

Old   March 13, 2009, 06:45
Default Thanks Bernhard, I got conf
  #111
Member
 
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17
jason is on a distinguished road
Thanks Bernhard,

I got confused because I couldn't find the files and didn't think of creating them myself.

Everything is working fine now.

Regards

Jason
jason is offline   Reply With Quote

Old   March 28, 2009, 11:00
Default
  #112
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Hi all!

Would you please help, how to tell pyFoamPlotWatcher to plot data for each ITERATION rather than for each TIMESTEP? I use customRegexp to plot data I need, but still graphics output is produced for each time step depended on deltaT, ignoring all other lines which meet regex.

Thank you!
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Old   March 31, 2009, 05:35
Default
  #113
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
There is a line:

Quote:
LogAnalysis/TimeLineAnalyzer.py: timeRegExp="^Time = (.+)$"
which controls watcher objects time triggers. So there 2 possible solutions for my task (excepting modification of timeRegExp variable):
  1. Print "Time = iteration_number" after each iteration to use logfile from standard out to plot residual with pyFoamPlotWatcher. But then time-step information is messed with iterations output.
  2. So I preffer to print iteration residuals to other output stream/log file inside solver to display internal loop convergence separately with pyFoam switching off all other plots.
Perhaps there ara some better solutions, but this one do not require much modification to python scripts or solver source code.
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Old   March 31, 2009, 09:13
Default
  #114
Assistant Moderator
 
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51
gschaider will become famous soon enoughgschaider will become famous soon enough
Quote:
Originally Posted by makaveli_lcf View Post
There is a line:



which controls watcher objects time triggers. So there 2 possible solutions for my task (excepting modification of timeRegExp variable):
  1. Print "Time = iteration_number" after each iteration to use logfile from standard out to plot residual with pyFoamPlotWatcher. But then time-step information is messed with iterations output.
  2. So I preffer to print iteration residuals to other output stream/log file inside solver to display internal loop convergence separately with pyFoam switching off all other plots.
Perhaps there ara some better solutions, but this one do not require much modification to python scripts or solver source code.
Hi Alexander!

One of the reasons that only the accumulated value for the iterations is plotted is that to me it seemed to be the most general measure BUT the value for single iterations is already there. In the *.analyzed directory (use --write with the watcher, the Runner should create this files automatically) you will find for instance files linear_p (with the values of the first iteration in each timestep), linear_p_2 (with the values of the second iteration) and so on. So if you want to plot the number of iterations for each solution of p use these and Gnuplot (or the plotting program of your choice). This is more or less what you

If you want to do it online these lines in customRegexp might for instance plot the number of iterations the first and the last solution of p in a timestep need. And how often p is solved (if this is variable in you algorithm)

Code:
{"expr":".+  Solving for p, Initial residual .+ No Iterations (%f%)","name":"Last iteration","accumulation":"last"}
{"expr":".+  Solving for p, Initial residual .+ No Iterations (%f%)","name":"First iteration","accumulation":"first"}
{"expr":".+  Solving for p, Initial residual .+ No Iterations (%f%)","name":"Nr of iterations","accumulation":"count"}
This is only possible using the customRegexp-file not from the command line

I don't want to introduce the notion of internal-loops to the time-counting mechanism, because as you noted in point 1 there is not good way to plot both (unless you want to crowd the linear graphs with p, p_1 to p_42)

Bernhard
gschaider is offline   Reply With Quote

Old   April 12, 2009, 06:10
Default
  #115
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Quote:
Originally Posted by braennstroem View Post
Hi Bernhard,

I have one more question ... what do you think is the best way to run different solvers, e.g. potentialFoam / simpleFoam / turbFoam / oodles, one after another. Do you think one of your 'utilities' can do that?

Greetings!
Fabian
Hi Fabian,

I still feel that I am new to this field, what would you do after turbFoam? If you take the sequence of potentialFoam / simpleFoam / turbFoam / oodles.

you see in oodles you have to give the i.c. and b.c. in the beginning, but what's your custom to get these values from tubFoam, they are different after all. (eg. how could you get nuSgs nuTilda from nut k ...? )

Am I missing some secrets that you all know? Thanks

Daniel
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   April 18, 2009, 07:16
Default Installation
  #116
Senior Member
 
sega's Avatar
 
Sebastian Gatzka
Join Date: Mar 2009
Location: Frankfurt, Germany
Posts: 729
Rep Power: 20
sega is on a distinguished road
Hello World.

I'm not sure what went wrong, I followed the instruction to install as root.
This is what I get, when trying to test the installation:

Code:
>>> import PyFoam
>>> import PyFoam.FoamInstallation
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named FoamInstallation
>>> print PyFoam.FoamInstallation.foamTutorials()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'FoamInstallation'
>>> import sys
>>> print sys.path
['', '/home/sega/OpenFOAM/ThirdParty/ParaView3.3-cvs/platforms/linuxGcc/Utilitie                                                                                                 s/VTKPythonWrapping', '/usr/lib/python25.zip', '/usr/lib/python2.5', '/usr/lib/p                                                                                                 ython2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynl                                                                                                 oad', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-package                                                                                                 s', '/usr/lib/python2.5/site-packages/Numeric', '/var/lib/python-support/python2                                                                                                 .5', '/var/lib/python-support/python2.5/gtk-2.0']
Any ideas what went wrong?
__________________
Schrödingers wife: "What did you do to the cat? It's half dead!"
sega is offline   Reply With Quote

Old   April 18, 2009, 12:07
Default
  #117
Assistant Moderator
 
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51
gschaider will become famous soon enoughgschaider will become famous soon enough
Quote:
Originally Posted by sega View Post
Hello World.

I'm not sure what went wrong, I followed the instruction to install as root.
This is what I get, when trying to test the installation:

Code:
>>> import PyFoam
>>> import PyFoam.FoamInstallation
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named FoamInstallation
Any ideas what went wrong?
Yeah. You mistyped. On http://openfoamwiki.net/index.php/Co...e_installation
it says FoamInformation NOT FoamInstallation. What I usually recommend is copy/pasting that kind of stuff from the Browser to the Terminal

Bernhard
gschaider is offline   Reply With Quote

Old   April 18, 2009, 12:18
Default
  #118
Senior Member
 
sega's Avatar
 
Sebastian Gatzka
Join Date: Mar 2009
Location: Frankfurt, Germany
Posts: 729
Rep Power: 20
sega is on a distinguished road
Well, this is embarrassing. My fault & Thank you!
__________________
Schrödingers wife: "What did you do to the cat? It's half dead!"
sega is offline   Reply With Quote

Old   April 25, 2009, 04:43
Default
  #119
Member
 
Sebastian
Join Date: Mar 2009
Location: Munich, Germany
Posts: 30
Rep Power: 17
fightingfalcon23 is on a distinguished road
Hi all together,

I am using pyFoam and never had problems untill now. But after updating ubuntu to Version 9.04, everytime I want to start a calculation, I get the following message:

"
/usr/local/lib/python2.6/dist-packages/PyFoam/FoamInformation.py:5: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
from popen2 import popen4
Traceback (most recent call last):
File "/usr/local/bin/pyFoamPlotRunner.py", line 3, in <module>
from PyFoam.Applications.PlotRunner import PlotRunner
File "/usr/local/lib/python2.6/dist-packages/PyFoam/Applications/PlotRunner.py", line 8, in <module>
from PyFoam.Execution.GnuplotRunner import GnuplotRunner
File "/usr/local/lib/python2.6/dist-packages/PyFoam/Execution/GnuplotRunner.py", line 86
with="steps",
^
SyntaxError: invalid syntax
"

At the beginning of the thread, I wrote about about a mistake with the pythonpath, but I don't know, how to deal with it. I tried to install pyFoam completely new (as root using "sudo") but after installation, I see the same message again!

Thanks for reading
fightingfalcon23
fightingfalcon23 is offline   Reply With Quote

Old   April 25, 2009, 05:23
Default
  #120
Member
 
Sebastian
Join Date: Mar 2009
Location: Munich, Germany
Posts: 30
Rep Power: 17
fightingfalcon23 is on a distinguished road
Some more information,
when I try to install PyFoam as root (using "sudo"), I get two errors. But the the installation runs further.

The errors:

running install_lib
byte-compiling /usr/local/lib/python2.6/dist-packages/PyFoam/Basics/GnuplotTimelines.py to GnuplotTimelines.pyc
SyntaxError: ('invalid syntax', ('/usr/local/lib/python2.6/dist-packages/PyFoam/Basics/GnuplotTimelines.py', 17, 21, ' with="lines",\n'))

byte-compiling /usr/local/lib/python2.6/dist-packages/PyFoam/Execution/GnuplotRunner.py to GnuplotRunner.pyc
SyntaxError: ('invalid syntax', ('/usr/local/lib/python2.6/dist-packages/PyFoam/Execution/GnuplotRunner.py', 86, 52, ' with="steps",\n'))
fightingfalcon23 is offline   Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Divergence detected in AMG solver: k when udf loaded google9002 Fluent UDF and Scheme Programming 3 November 8, 2019 00:34
udf problem jane Fluent UDF and Scheme Programming 37 February 20, 2018 05:17
Guide: Getting Started with the CFD Online Discussion Forums pete Site Help, Feedback & Discussions 8 July 29, 2016 06:00
Error messages atg enGrid 7 August 30, 2013 12:16
Phase locked average in run time panara OpenFOAM 2 February 20, 2008 15:37


All times are GMT -4. The time now is 04:47.