Reconstruction after parallel run with dynamic mesh refinement
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: http://www.OpenFOAM.org |
| \\/ 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 mesh for time = 0.8
Time = 0.56
#0 Foam::error::printStack(Foam::Ostream&) in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::sigSegv::sigSegvHandler(int) in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/libOpenFOAM.so"
#3 Foam::objectRegistry::checkOut(Foam::regIOobject&) const in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/libOpenFOAM.so"
#4 Foam::regIOobject::checkOut() in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/libOpenFOAM.so"
#5 Foam::regIOobject::~regIOobject() in "/home/lang/OpenFOAM/OpenFOAM-1.5.x/lib/linuxGccDPOpt/libOpenFOAM.so"
#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/libc.so.6"
#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!
I used a small bash-script for such cases:
Maybe you can try this, but if there is a problem with the single commands it will be of no help ...
Ich schreibe übrigens die Nachfolgearbeit zu deiner Studienarbeit am TTD!
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 ;)
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?
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.
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!
the script works fine with OpenFOAM-1.6.x.
Manually it works (for example):
reconstructParMesh -time 0.002
reconstructPar -time 0.002
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.
|All times are GMT -4. The time now is 22:10.|