sophie_l |
April 29, 2013 06:35 |
decomposePar field transfer of particle positions failed
Hi there,
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'.
Quote:
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
"/OpenFOAM/mparallel/processor0/0/lagrangian/defaultCloud"
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
Quote:
template<class ParticleType>
void Foam::Cloud<ParticleType>::initCloud(const bool checkClass)
{
readCloudUniformProperties();
IOPosition<ParticleType> ioP(*this);
if (ioP.headerOk())
{
ioP.readData(*this, checkClass);
ioP.close();
if (this->size())
{
readFields();
}
}
else
{
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.
Sophie
|