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

reconstrucPar error

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree6Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 24, 2017, 16:18
Default reconstrucPar error
  #1
Member
 
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 8
cojua8 is on a distinguished road
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
what can i do?
cojua8 is offline   Reply With Quote

Old   November 24, 2017, 17:21
Default
  #2
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,930
Rep Power: 38
alexeym has a spectacular aura aboutalexeym has a spectacular aura about
Send a message via Skype™ to alexeym
Hi,

Let's read the error:

Code:
No processor* directories found
It means, there is no processor* folders in the directory, where you are running reconstructPar (in general parallel cases are decomposed into processor* folders, though now there is collated output).

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.
alexeym is offline   Reply With Quote

Old   November 24, 2017, 17:47
Default
  #3
Member
 
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 8
cojua8 is on a distinguished road
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
cojua8 is offline   Reply With Quote

Old   November 24, 2017, 17:59
Default
  #4
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,930
Rep Power: 38
alexeym has a spectacular aura aboutalexeym has a spectacular aura about
Send a message via Skype™ to alexeym
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?
alexeym is offline   Reply With Quote

Old   November 25, 2017, 12:59
Default
  #5
Member
 
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 8
cojua8 is on a distinguished road
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
cojua8 is offline   Reply With Quote

Old   November 25, 2017, 13:56
Default
  #6
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,930
Rep Power: 38
alexeym has a spectacular aura aboutalexeym has a spectacular aura about
Send a message via Skype™ to alexeym
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);
    }
If fileHandler().nProcs(...) returns 0, fatal error raised. Here is how nProcs is calculated:

Code:
    label nProcs = 0;
    while
    (
        isDir
        (
            dir
           /(word("processor") + name(nProcs))
           /"constant"
           /local
           /polyMesh::meshSubDir
        )
    )
    {
        ++nProcs;
    }
So question is do you have mesh subfolders in these processor folders.
alexeym is offline   Reply With Quote

Old   November 25, 2017, 14:22
Default
  #7
Member
 
Joaquín Neira
Join Date: Oct 2017
Posts: 38
Rep Power: 8
cojua8 is on a distinguished road
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?
cojua8 is offline   Reply With Quote

Old   November 25, 2017, 14:37
Default
  #8
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,930
Rep Power: 38
alexeym has a spectacular aura aboutalexeym has a spectacular aura about
Send a message via Skype™ to alexeym
You can just run renumberMesh with -overwrite flag, this way it writes renumbered mesh in constant folder.
alexeym is offline   Reply With Quote

Old   December 28, 2017, 17:09
Default
  #9
Senior Member
 
Canakkale Dardanelspor
Join Date: Aug 2012
Posts: 135
Rep Power: 13
HakikiCanakkaleli is on a distinguished road
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))))
It therefore seems no subfolder is in search for this particular version, or might be for other versions as well.
HakikiCanakkaleli is offline   Reply With Quote

Old   December 29, 2017, 05:35
Default
  #10
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,930
Rep Power: 38
alexeym has a spectacular aura aboutalexeym has a spectacular aura about
Send a message via Skype™ to alexeym
@HakikiCanakkaleli

Just for the future reference:

Code:
isDir(args.path()/(word("processor") + name(nProcs)))
is a check for the SUBFOLDER with a name "processor*". isDir checks if argument is a directory, args.path() returns case path, word("processor") + name(nProcs) constructs name of subfolder, and finally / is overloaded concatenation operator for file names.
alexeym is offline   Reply With Quote

Old   December 29, 2017, 06:29
Default
  #11
Senior Member
 
Canakkale Dardanelspor
Join Date: Aug 2012
Posts: 135
Rep Power: 13
HakikiCanakkaleli is on a distinguished road
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:
label nProcs = 0; while ( isDir ( dir /(word("processor") + name(nProcs)) /"constant" /local /polyMesh::meshSubDir ) ) { ++nProcs; }
HakikiCanakkaleli is offline   Reply With Quote

Old   December 29, 2017, 07:17
Default
  #12
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,930
Rep Power: 38
alexeym has a spectacular aura aboutalexeym has a spectacular aura about
Send a message via Skype™ to alexeym
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.
alexeym is offline   Reply With Quote

Old   December 29, 2017, 07:19
Default
  #13
Senior Member
 
Canakkale Dardanelspor
Join Date: Aug 2012
Posts: 135
Rep Power: 13
HakikiCanakkaleli is on a distinguished road
My apologies
HakikiCanakkaleli is offline   Reply With Quote

Old   April 16, 2018, 06:43
Default
  #14
Senior Member
 
Deep
Join Date: Oct 2017
Posts: 180
Rep Power: 8
deepbandivadekar is on a distinguished road
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.
deepbandivadekar is offline   Reply With Quote

Old   April 21, 2018, 05:01
Default
  #15
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,930
Rep Power: 38
alexeym has a spectacular aura aboutalexeym has a spectacular aura about
Send a message via Skype™ to alexeym
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.
alexeym is offline   Reply With Quote

Old   April 22, 2018, 11:39
Default
  #16
Senior Member
 
Deep
Join Date: Oct 2017
Posts: 180
Rep Power: 8
deepbandivadekar is on a distinguished road
Quote:
Originally Posted by alexeym View Post
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.
I realised what caused the error. I had mistakenly forgotten to provide correct writeInterval when I changed the writeControl to adjustable type. Since I never reached that point not a single directory was written during the run. That's why the error.
deepbandivadekar is offline   Reply With Quote

Old   August 24, 2018, 13:41
Default
  #17
New Member
 
mahdi
Join Date: Aug 2016
Posts: 1
Rep Power: 0
9434 is on a distinguished road
Quote:
Originally Posted by cojua8 View Post
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
what can i do?
you can also manually make a constant directory in each processor directory and move polyMesh which is in "processor*/0 or 1".
9434 is offline   Reply With Quote

Old   October 16, 2018, 10:38
Default
  #18
Member
 
Join Date: Nov 2013
Posts: 35
Rep Power: 12
beatlejuice is on a distinguished road
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!
Ramzy1990 likes this.
beatlejuice is offline   Reply With Quote

Old   October 16, 2018, 11:15
Default
  #19
Member
 
Join Date: Nov 2013
Posts: 35
Rep Power: 12
beatlejuice is on a distinguished road
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!
Ramzy1990 likes this.
beatlejuice is offline   Reply With Quote

Old   November 27, 2018, 18:34
Default decomposed case
  #20
Member
 
Join Date: Nov 2015
Posts: 38
Rep Power: 10
WaterHammer1985 is on a distinguished road
Quote:
Originally Posted by beatlejuice View Post
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!
Appreciate you replying back with your solution! Do you know how to view the decomposed results in ParaView when the processors are collated? I've made the same changes above but nothing loads when I try to bring it into ParaView.

Cheers!
WaterHammer1985 is offline   Reply With Quote

Reply

Tags
processor, reconstructpar

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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
[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


All times are GMT -4. The time now is 06:38.