CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Post-Processing (
-   -   Post processing a parallel case (

Gearb0x April 8, 2010 10:33

Post processing a parallel case

I have a case which is decomposed using the "metis" method.

How can I see the different parts of the mesh? And their results?
I tried to run parafoam in the case/processor0 directory but it didn't work.

Thanks for your help.

erklaerbaer April 8, 2010 14:32

I am not familiar with the "metis" method but did you try "reconstructPar" to get your results back together?

Gearb0x April 8, 2010 15:37


Thanks for your answer. In fact getting the cases back together is, indeed, done by typing 'reconstructPar' but what I would to are the part separated and not together :) To see how the mesh was separated.

By curiosity, How do you use the other methods (other than metis) ? Do you have a tutorial or something?

Thanks for your help

erklaerbaer April 8, 2010 15:46

Perhaps this helps you

Till now i just used simple and was able to start Paraforam in the "processorX" folder, maybe paraFoarm cant handle the way metis splits up the Mesh

You could try "foamToVTK" an then paraview but thats just a guess.
Perhaps simpleViewer can also help you, but a am not shure what file it reads for showing the mesh.

Gearb0x April 8, 2010 16:39

Again, Thanks for the help! :)

But it's strange that paraFoam can't handle this :)

wyldckat April 8, 2010 17:01

Greetings Gearb0x and erklaerbaer,

Uhm, I just read diagonally the pdf from the link that Andreas has posted, and I found on the penultimate page:

When post-processing cases that have been run in parallel the user has two options:
reconstruction of the mesh and field data to recreate the complete domain and fields, which can be post-processed as normal;
post-processing each segment of decomposed domain individually;
Although it doesn't specifically say how, and I haven't tested this right now, but my guess is that if you execute paraFoam at the base folder of the case, the PV3FoamReader plugin will detect the processor partitions and allow you to see them independently, by picking them from the list, just as the fields!

By the way, just in case the snapshot "0 seconds" doesn't show anything, try the next snapshot... I have had problems in the past with the first snapshot in single core runs, due to some discrepancy between meshes or boundaries or something like that :(

Best regards,

herbert April 15, 2010 09:17


just type "paraFoam -case processorX" to see only the result of processor X.

Good luck

f0208secretx May 28, 2014 00:52


I want to visualize the master mesh after running parallelized snappyHexMesh, so I use the utility reconstructParMesh

reconstructParMesh -mergeTol 1E-6 -time 0
and yet I keep getting the error

No times selected

    From function reconstructParMesh
    in file reconstructParMesh.C at line 578.

FOAM exiting

I can see the individual mesh without any problem. I can also resemble the master mesh in paraview by loading all of them in. So really I was just wondering why this doesn't work as opposed to desperately trying to get it work. Thanks for any advise anyway.


Bernhard May 28, 2014 02:41

I see this thread is quite old, but I wrote a script a time ago that might help you.

Step 1. Create .foam files in all directories

for dd in `find -name 'proc*' -type d`
 echo $dd
 cd $dd
 echo $PWD
 touch `basename $PWD`".foam"
 cd ..

Step 2. Run the following Python script from the Paraview Python shell (some user input in the source is not automated)

try: paraview.simple
except: from paraview.simple import *

import random

procs = 64
for proc in range(procs):
 print proc
 processor0_foam = OpenFOAMReader(FileName = foamfile)

 processor0_foam.CellArrays = []
 processor0_foam.LagrangianArrays = []
 processor0_foam.MeshRegions = ['internalMesh']
 processor0_foam.PointArrays = []
 processor0_foam.CellArrays = []
 mr0 = GetDisplayProperties(processor0_foam)
 #mr0.DiffuseColor = [1, 1, float(proc)/float(procs-1)]
 mr0.DiffuseColor = [random.random(), random.random(), random.random() ]
 RenderView1 = GetRenderView()
 DataRepresentation2 = Show()


I hope someone can use these scripts :)

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