CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM (
-   -   Reconstruction after parallel run with dynamic mesh refinement (

sebonator August 25, 2009 08:33

Reconstruction after parallel run with dynamic mesh refinement
Hi everybody,

I got a problem with reconstructing my fields after running "interDyMFoam" with "dynamicRefineFvMesh" in parallel.

A first thing to say is that I am sure the simulation completed successfully, because I can postprocess the results for each processor alone.

The reconstruction of the mesh using "reconstructParMesh" still works fine, although I think I did not use the easiest way, as I have to use "reconstructParMesh -time x.xx" for every single timestep.

My problem occurs when doing "reconstructPar" to reconstruct the fields. When I am trying it from inside a case directory, the function aborts already during the first timestep. I found a tip in another thread that it might help to use it like "reconstructPar -case xxxxx" from outside the case directory. I was kind of surprised that it almost worked this way. But still, after about the half of the timesteps, the function aborts, always showing the same error:

| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5.x |
| \\ / A nd | Web: |
| \\/ M anipulation | |
Exec : reconstructPar -time 0.56
Date : Aug 25 2009
Time : 16:09:30
Host : ttdws69
PID : 25049
Case : /home/lang/OpenFOAM/lang-1.5.x/run/SebLangBachelorArbeit/03-DuharColin-3DStroemung-Vorarbeiten/06-AdaptiveGitterverfeinerung/03-BrokenDamMit2
nProcs : 1

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0.8

Time = 0.56

#0 Foam::error::printStack(Foam::Ostream&) in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/"
#1 Foam::sigSegv::sigSegvHandler(int) in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/"
#2 Uninterpreted:
#3 Foam::objectRegistry::checkOut(Foam::regIOobject&) const in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/"
#4 Foam::regIOobject::checkOut() in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/"
#5 Foam::regIOobject::~regIOobject() in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/"
#6 Foam::IOList<int>::~IOList() in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/applications/bin/linuxGccDPOpt/reconstructPar"
#7 Foam::processorMeshes::read() in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/applications/bin/linuxGccDPOpt/reconstructPar"
#8 Foam::processorMeshes::readUpdate() in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/applications/bin/linuxGccDPOpt/reconstructPar"
#9 main in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/applications/bin/linuxGccDPOpt/reconstructPar"
#10 __libc_start_main in "/lib/tls/i686/cmov/"
#11 __gxx_personality_v0 at ../sysdeps/i386/elf/start.S:122

I do not know why the last line is written in german, but I think it can be translated as memory access error (Do not know if its exactly called like this in english).

Has anybody got an idea how to solve this problem? I also tried running the case on a single processor and this worked absolutely fine, but for those cases I want to use it a single processor will work for weeks, so that is no option.

Thanks a lot for your help!

Greetings Sebastian

sega August 25, 2009 10:19

Dear Sebastian.

I used a small bash-script for such cases:


timeList=$(ls processor0/ | awk '$1!="constant"');

for line in $timeList
    echo "Recontructing mesh for t = "$line" s";
    reconstructParMesh -time $line > logTmp;

    echo "Reconstructing fields for t = "$line" s";
    reconstructPar -time $line > logTmp;

    echo "";

rm logTmp;

Basically it's doing reconstructParMesh and reconstructPar alternating.
Maybe you can try this, but if there is a problem with the single commands it will be of no help ...

sebonator August 26, 2009 10:55

Danke Sebastian!

Ich schreibe übrigens die Nachfolgearbeit zu deiner Studienarbeit am TTD!

Gruß Sebastian

sebonator August 27, 2009 03:14

Works fine!
Dear Sebastian,

Thanks for your help with this script. Seems to be working fine, although I do not think that I tried anything else than reconstructParMesh and reconstructPar before.

Well, after using computers for more than eight years I got comfortable with solving problems without knowing how ;)

Thanks again,
Greetings Sebastian

mattijs August 27, 2009 16:47

Did you checkMesh the mesh resulting from reconstructParMesh? It uses a geometric tolerance so might get things wrong for large refinement levels. If the problem persists in 1.6.x. can you report a bug+testcase in OpenFOAM-bugs?

sebonator August 29, 2009 05:26

Hi mattijs,

no, I did not checkMesh the reconstructed Mesh, but I used a refinement level of only 1! This would mean there is a general problem, I think.

But as I replied to Sebastian above, the Script that alternates reconstructParMesh and reconstructPar works fine. I only tried to reconstructParMesh for all time and after that reconstructPar for all time. Maybe this was the Problem, I will check that up on Monday.

Bye, Sebastian

sebonator August 31, 2009 04:16


I just tried to manually alternate reconstructParMesh and reconstructPar. It worked fine, without any problem.

The reason for my problems must have been that I tried to do reconstructParMesh fol all time and after that reconstructPar for all time.

As I can not check it up with 1.6.x, I will not report a bug+testcase.
But it does not seem to be a general problem anyway, I think.

Thanks for your help!

Greets Sebastian

openfoam_user June 8, 2010 10:38


the script works fine with OpenFOAM-1.6.x.

Manually it works (for example):
reconstructParMesh -time 0.002
reconstructPar -time 0.002



liping_he August 11, 2011 03:56

Hi sega

I am a newcomer. I have the same problem when I do reconstruction. So I hope you can tell me how to use your code mentioned in the thread detailedly. Step by step is the best. Thank you very much.

Good luck

Liping He

All times are GMT -4. The time now is 23:59.