|
[Sponsors] |
November 24, 2017, 16:18 |
reconstrucPar error
|
#1 |
Member
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 9 |
hello,
I've been trying to reconstruct form a parallel run but i keep getting this error Code:
Create time --> FOAM FATAL ERROR: No processor* directories found From function int main(int, char**) in file reconstructPar.C at line 217. FOAM exiting |
|
November 24, 2017, 17:21 |
|
#2 |
Senior Member
|
Hi,
Let's read the error: Code:
No processor* directories found So, you can check if a) you are running reconstructPar in the folder, where you ran parallel case, b) your data is not automatically reconstructed. |
|
November 24, 2017, 17:47 |
|
#3 |
Member
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 9 |
thank you for your answer!
I just copied a case that ran well in other folder, and ran ir wihtout any major modifications, so there should be no problem |
|
November 24, 2017, 17:59 |
|
#4 |
Senior Member
|
OK. Maybe there SHOULD be no problem, BUT since you post question here, there IS a problem.
Could you at least post "ls" command output in the folder, where you run reconstructPar? |
|
November 25, 2017, 12:59 |
|
#5 |
Member
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 9 |
hi again
I've got these files/directories in the running directory Code:
0/ postProcessing/ processor3/ log.blockMesh log.postChannel 0.orig/ processor0/ system/ log.decomposePar log.reconstructPar 1e-05/ processor1/ Allclean* log.ls log.renumberMesh constant/ processor2/ Allrun* log.pimpleLPTFoam |
|
November 25, 2017, 13:56 |
|
#6 |
Senior Member
|
Hi,
If we take a look at the code, which produces error: Code:
// Determine the processor count label nProcs = fileHandler().nProcs(args.path(), regionDirs[0]); if (!nProcs) { FatalErrorInFunction << "No processor* directories found" << exit(FatalError); } Code:
label nProcs = 0; while ( isDir ( dir /(word("processor") + name(nProcs)) /"constant" /local /polyMesh::meshSubDir ) ) { ++nProcs; } |
|
November 25, 2017, 14:22 |
|
#7 |
Member
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 9 |
You are right,
there is no "constant" in any processor* directory, but checking decomposePar log there are no errors. I think the problem comes when running renumberMesh, it creates a new "1e-5" folder with the renumbered polymesh and fields and then decomposePar doesn't create a constant subfolder into processor*. So I guess I have to move the renumbered polymesh to constant and after that run decomposePar, am I right? |
|
November 25, 2017, 14:37 |
|
#8 |
Senior Member
|
You can just run renumberMesh with -overwrite flag, this way it writes renumbered mesh in constant folder.
|
|
December 28, 2017, 17:09 |
|
#9 |
Senior Member
Canakkale Dardanelspor
Join Date: Aug 2012
Posts: 135
Rep Power: 14 |
For future reference:
The piece of code Alexeym kindly highlighted is different in OF 1706 version: Code:
// determine the processor count directly label nProcs = 0; while (isDir(args.path()/(word("processor") + name(nProcs)))) |
|
December 29, 2017, 05:35 |
|
#10 |
Senior Member
|
@HakikiCanakkaleli
Just for the future reference: Code:
isDir(args.path()/(word("processor") + name(nProcs))) |
|
December 29, 2017, 06:29 |
|
#11 | |
Senior Member
Canakkale Dardanelspor
Join Date: Aug 2012
Posts: 135
Rep Power: 14 |
Hi,
I think some confusion arose, and likely I led it to happen. I meant with the above piece of code that the sub-subfolder "constant" and other n level deep folders were not looked up, based on your kindly sharing of the following code: Quote:
|
||
December 29, 2017, 07:17 |
|
#12 |
Senior Member
|
Hi,
ESI OpenFOAM v1706 is based on Foundation OpenFOAM 4.x and in 4.x the code is the same (i.e. simple while loop with subfolder check). I have posted snippets from OpenFOAM 5.x. So, yes, there was certain confusion on my side. |
|
December 29, 2017, 07:19 |
|
#13 |
Senior Member
Canakkale Dardanelspor
Join Date: Aug 2012
Posts: 135
Rep Power: 14 |
My apologies
|
|
April 16, 2018, 06:43 |
|
#14 |
Senior Member
Deep
Join Date: Oct 2017
Posts: 180
Rep Power: 9 |
This discussion was very useful. Thank you.
I am wondering however, since I already have this sort of situation due to renumberMesh without overwrite tag, if at all is it possible to visualize the results. I don't really wish to give up hours of simulation data. |
|
April 21, 2018, 05:01 |
|
#15 |
Senior Member
|
Hi,
Since you can not visualize your results, you can not be sure if the results are meaningful. So in addition to possibility of losing time waiting for the answer, you still can lose all these hours of simulation data, as the data can be complete nonsense. Could you describe exact steps to reproduce your error? Small test case could be also useful. |
|
April 22, 2018, 11:39 |
|
#16 | |
Senior Member
Deep
Join Date: Oct 2017
Posts: 180
Rep Power: 9 |
Quote:
|
||
August 24, 2018, 13:41 |
|
#17 |
New Member
mahdi
Join Date: Aug 2016
Posts: 1
Rep Power: 0 |
you can also manually make a constant directory in each processor directory and move polyMesh which is in "processor*/0 or 1".
|
|
October 16, 2018, 10:38 |
|
#18 |
Member
Join Date: Nov 2013
Posts: 35
Rep Power: 13 |
Hello everyone,
since my topic is related to the one above, I wonder if someone knows why the following problem arises and how I can avoid it. I have to use the "-fileHandler collated" option for my cases due to a file number limitation. The OF Version is 5.0. So, these are my steps: 1. decomposePar -fileHandler collated #(for 1000 cores ... works perfectly) 2. mpirun -np 1000 renumberMesh -overwrite -parallel -fileHandler collated #(works) 3. mpirun -np 1000 pisoFoam -parallel -fileHandler collated #(no problem) 4. reconstructPar -fileHandler collated #(problem) At step 4 (reconstructPar), I get the following error: ================================================== ==== --> FOAM FATAL IO ERROR: Could not detect processor number from objectPath:"caseName/constant/polyMesh/pointZones" file: caseName/processors/constant/polyMesh/pointZones at line 15. From function virtual Foam::autoPtr<Foam::ISstream> Foam::fileOperations::masterUncollatedFileOperatio n::readStream(Foam::regIOobject&, const Foam::fileName&, const Foam::word&, bool) const in file global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C at line 1105. FOAM exiting ================================================== ===== If I rerun my steps above but do not use the renumbering in step 2 everything works - including the reconstruction. So, the problem comes from renumberMesh in combination with the -fileHandler collated. Any ideas how to get this working and to be able to use the benefit of renumberMesh and still be able to reconstruct the case? The file caseName/processors/constant/polyMesh/pointZones exists and looks OK ... cheers! |
|
October 16, 2018, 11:15 |
|
#19 |
Member
Join Date: Nov 2013
Posts: 35
Rep Power: 13 |
Update:
I figured it out myself ... two minutes after I submitted my previous post =) For everybody who face the same problem: Delete or rename the following files that the renumberMesh utility writes and then the reconstructPar should work: - processors/constant/polyMesh/pointZones - processors/constant/polyMesh/faceZones - processors/constant/polyMesh/cellZones Cheers! |
|
November 27, 2018, 18:34 |
decomposed case
|
#20 | |
Member
Join Date: Nov 2015
Posts: 38
Rep Power: 11 |
Quote:
Cheers! |
||
Tags |
processor, reconstructpar |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[OpenFOAM.org] compile error in dynamicMesh and thermophysicalModels libraries | NickG | OpenFOAM Installation | 3 | December 30, 2019 01:21 |
[blockMesh] blockMesh with double grading. | spwater | OpenFOAM Meshing & Mesh Conversion | 92 | January 12, 2019 10:00 |
[swak4Foam] GroovyBC the dynamic cousin of funkySetFields that lives on the suburb of the mesh | gschaider | OpenFOAM Community Contributions | 300 | October 29, 2014 19:00 |
OpenFOAM without MPI | kokizzu | OpenFOAM Installation | 4 | May 26, 2014 10:17 |
DecomposePar links against liblamso0 with OpenMPI | jens_klostermann | OpenFOAM Bugs | 11 | June 28, 2007 18:51 |