||April 29, 2013 06:35
decomposePar field transfer of particle positions failed
I am using a lagrangian particle solver based on interFoam. It is ok when running in serial, but when running it in parallel, field transfer error occurs at the stage of 'decomposePar'.
Identified lagrangian data set: "defaultCloud"
Processor 0: field transfer
--> FOAM Warning :
From function Cloud<ParticleType>::initCloud(const bool checkClass)
in file /openfoam/OpenFOAM-1.7.1/src/lagrangian/basic/lnInclude/CloudIO.C at line 124
Cannot read particle positions file
assuming the initial cloud contains 0 particles.
The particle position file 'positions' is located in mparallel/0/lagrangian/defaultCloud. In the directory of mparallel/processor0/0/lagrangian/defaultCloud, a 'positions' file is created but it is not decomposed as all the particles are included in it. In other processor subfolders, no '/lagrangian/defaultCloud' is created neither are 'positions' files.
If I rename 'positions' to 'position', there is no problem with parallel running. However, the whole '/lagrangian/defaultCoud/' stuff are ignored and no particles are included from 'decomposePar' onwards.
I checked 'CloudIO.C' file and the code snippets are
void Foam::Cloud<ParticleType>::initCloud(const bool checkClass)
WarningIn("Cloud<ParticleType>::initCloud(const bool checkClass)")
<< "Cannot read particle positions file " << nl
<< " " << ioP.path() << nl
<< " assuming the initial cloud contains 0 particles." << endl;
So I think ioP.headerOk()) is false, but how can I correct it?
Thank you very much for your help in advance.