CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   decomposePar error (https://www.cfd-online.com/Forums/openfoam-pre-processing/188307-decomposepar-error.html)

chia87 May 27, 2017 12:06

decomposePar error
 
Hi Foamers,

I could run waveFoam on my school HPC , however when I tried to run decomposePar

i had some error

Quote:

Reading g

Reading waveProperties

Reading waveProperties
Reading field p_rgh

--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 3 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
Quote:

--> FOAM FATAL ERROR:

request for dictionary waveProperties from objectRegistry region0 failed
available objects of type dictionary are

4
(
decomposeParDict
fvSchemes
fvSolution
data
)


From function objectRegistry::lookupObject<Type>(const word&) const
in file /apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 198.

FOAM aborting

#0 Foam::error::printStack(Foam::Ostream&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
#1 Foam::error::abort() in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so"
#2 Foam::IOdictionary const& Foam::objectRegistry::lookupObject<Foam::IOdiction ary>(Foam::word const&) const in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so"
#3 Foam::waveTheories::waveTheory::New(Foam::word const&, Foam::fvMesh const&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib/libwaves2Foam.so"
#4 Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatc hScalarField(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib/libwaves2Foam.so"
#5 Foam::fvPatchField<double>::adddictionaryConstruct orToTable<Foam::waveAlphaFvPatchScalarField>::New( Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib/libwaves2Foam.so"
#6 Foam::fvPatchField<double>::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#7 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::readField( Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#8 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readFields(Foam::dictionary const&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#9 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readFields() in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#10 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricField(Foam::IOobject const&, Foam::fvMesh const&) in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#11 ? in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#12 ? in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#13 __libc_start_main in "/lib64/libc.so.6"
#14 ? in "/apps/newcastle/OpenFOAM/3.0.1/1/default/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/bin/decomposePar"
/var/spool/sge_prod/g10s14n4/job_scripts/6025526: line 14: 97996 Aborted (core dumped) decomposePar
[0]
[0]
[0] [1]
[1]
[1] --> FOAM FATAL IO ERROR:
[1] cannot find file
[1]
[1] file: /home/polaris_ncl1/ncldwc/processor1/0/p_rgh at line 0.
[1]
[1] From function regIOobject::readStream()
[1] in file db/regIOobject/regIOobjectRead.C at line 73.
[1]
FOAM parallel run exiting
[1]
--> FOAM FATAL IO ERROR:
[0] cannot find file
[0]
[0] file: /home/polaris_ncl1/ncldwc/processor0/0/p_rgh at line 0.
[0]
[0] From function regIOobject::readStream()
[0] in file db/regIOobject/regIOobjectRead.C at line 73.
[0]
FOAM parallel run exiting
[0]
[2]
[2]
[2] --> FOAM FATAL IO ERROR:
[2] cannot find file
[2]
[2] file: /home/polaris_ncl1/ncldwc/processor2/0/p_rgh at line 0.
[2]
[2] From function regIOobject::readStream()
[2] in file db/regIOobject/regIOobjectRead.C at line 73.
[2]
FOAM parallel run exiting
[2]
[8]
[8]
[8] --> FOAM FATAL IO ERROR:
[8] cannot find file
[8]
[8] file: /home/polaris_ncl1/ncldwc/processor8/0/p_rgh at line 0.
[8]
[8] From function regIOobject::readStream()
[8] in file db/regIOobject/regIOobjectRead.C at line 73.
[8]
FOAM parallel run exiting
My command list is

Quote:

decomposePar
mpirun waveFoam -parallel
Is there any difference to using OF231 and OF301 , in terms of using the decomposePar ?
In my system half way across the earth, i could use decomposePar in OF231, however I couldnt use it in OF301 (when i import the exact same case and files over)

Any help would be tremendously appreciated :)

alexeym May 28, 2017 15:23

Hi,

In fact the error is caused by waveAlpha boundary condition for p_rgh (and the root of the problem is design of waveTheory::New method). Currently it asks for waveProperties in object registry (waveFoam reads this dictionary and puts it into object registry, while decomposePar knows nothing about this dictionary).

So, you have several solutions

1. Remove waveAlpha BC from p_rgh.
2. Remove waveAlpha BC from p_rgh, decompose case, correct Bfs in decomposed case.
3. Correct waveTheory::New method (so it looks up dictionary in the registry first and if it fails, reads the dictionary) submit patch upstream. I.e. this piece of code

Code:

    {
        const dictionary coeffDict_
        (
            (mesh_.thisDb().lookupObject<IOdictionary>("waveProperties"))
          .subDict(subDictName + "Coeffs")
        );

        coeffDict_.lookup("waveType") >> waveTheoryTypeName;
    }

should become something like

Code:

    {
        if (mesh_.thisDb().foundObject<IOdictionary>("waveProperties")
        {
            const dictionary coeffDict
            (
                (mesh_.thisDb().lookupObject<IOdictionary>("waveProperties"))
              .subDict(subDictName + "Coeffs")
            );
            coeffDict.lookup("waveType") >> waveTheoryTypeName;
        }
        else
        {
            const IOdictionary waveDict(
                IOobject(
                    "waveProperties", mesh_.time().constant(), mesh_,
                    IOobject::MUST_READ, IOobject::NO_WRITE, false)
            );
            waveDict.subDict(subDictName + "Coeffs").lookup("waveType") >> waveTheoryTypeName;
        }       
    }



All times are GMT -4. The time now is 13:32.