CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   Error in channelFoam Run in parallel (http://www.cfd-online.com/Forums/openfoam/98009-error-channelfoam-run-parallel.html)

dhruv March 1, 2012 09:18

Error in channelFoam Run in parallel
 
Hi,

I am running channelFoam while trying to simulate a flow through a channel having obstructions. The turbulence model is LES and I try to run it on a 4 core machine. However, I am having the following error message, while running it in parallel.

Quote:


[3] #0 [1] #0 Foam::error::printStack(Foam::Ostream&)Foam::error ::printStack(Foam::Ostream&) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[3] #1 Foam::sigSegv::sigHandler(int) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #1 Foam::sigSegv::sigHandler(int) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[3] #2 in "/lib/libc.so.6"
[3] #3 Foam::processorPolyPatch::updateMesh(Foam::Pstream Buffers&) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #2 in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[3] #4 Foam::polyBoundaryMesh::updateMesh() in "/lib/libc.so.6"
[1] #3 Foam::processorPolyPatch::updateMesh(Foam::Pstream Buffers&) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #4 Foam::polyBoundaryMesh::updateMesh() in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[3] #5 Foam::polyMesh::polyMesh(Foam::IOobject const&) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[3] #6 Foam::fvMesh::fvMesh(Foam::IOobject const&) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #5 Foam::polyMesh::polyMesh(Foam::IOobject const&) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #6 Foam::fvMesh::fvMesh(Foam::IOobject const&) in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
[3] #7 in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
[1] #7

[3] in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/channelFoam"
[3] #8 __libc_start_main in "/lib/libc.so.6"
[3] #9 [1] in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/channelFoam"
[1] #8 __libc_start_main in "/lib/libc.so.6"
[1] #9

[1] in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/channelFoam"
[pcdeszr100998:29192] *** Process received signal ***
[pcdeszr100998:29192] Signal: Segmentation fault (11)
[pcdeszr100998:29192] Signal code: (-6)
[pcdeszr100998:29192] Failing at address: 0x3eb00007208
[pcdeszr100998:29192] [ 0] /lib/libc.so.6(+0x33af0) [0x7f15260eeaf0]
[pcdeszr100998:29192] [ 1] /lib/libc.so.6(gsignal+0x35) [0x7f15260eea75]
[pcdeszr100998:29192] [ 2] /lib/libc.so.6(+0x33af0) [0x7f15260eeaf0]
[pcdeszr100998:29192] [ 3] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam18processorPolyPatch10updat eMeshERNS_14PstreamBuffersE+0x2e6) [0x7f15270d9846]
[pcdeszr100998:29192] [ 4] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam16polyBoundaryMesh10updateM eshEv+0x2b1) [0x7f15270dee21]
[pcdeszr100998:29192] [ 5] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam8polyMeshC2ERKNS_8IOobjectE +0xd16) [0x7f1527132386]
[pcdeszr100998:29192] [ 6] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so(_ZN4Foam6fvMeshC1ERKNS_8IOobjec tE+0x19) [0x7f1527de1599]
[pcdeszr100998:29192] [ 7] channelFoam() [0x4194d0]
[pcdeszr100998:29192] [ 8] /lib/libc.so.6(__libc_start_main+0xfd) [0x7f15260d9c4d]
[pcdeszr100998:29192] [ 9] channelFoam() [0x4174c9]
[pcdeszr100998:29192] *** End of error message ***
[3] in "/soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/channelFoam"
[pcdeszr100998:29194] *** Process received signal ***
[pcdeszr100998:29194] Signal: Segmentation fault (11)
[pcdeszr100998:29194] Signal code: (-6)
[pcdeszr100998:29194] Failing at address: 0x3eb0000720a
[pcdeszr100998:29194] [ 0] /lib/libc.so.6(+0x33af0) [0x7f5c588ccaf0]
[pcdeszr100998:29194] [ 1] /lib/libc.so.6(gsignal+0x35) [0x7f5c588cca75]
[pcdeszr100998:29194] [ 2] /lib/libc.so.6(+0x33af0) [0x7f5c588ccaf0]
[pcdeszr100998:29194] [ 3] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam18processorPolyPatch10updat eMeshERNS_14PstreamBuffersE+0x2da) [0x7f5c598b783a]
[pcdeszr100998:29194] [ 4] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam16polyBoundaryMesh10updateM eshEv+0x2b1) [0x7f5c598bce21]
[pcdeszr100998:29194] [ 5] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam8polyMeshC2ERKNS_8IOobjectE +0xd16) [0x7f5c59910386]
[pcdeszr100998:29194] [ 6] /soft/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so(_ZN4Foam6fvMeshC1ERKNS_8IOobjec tE+0x19) [0x7f5c5a5bf599]
[pcdeszr100998:29194] [ 7] channelFoam() [0x4194d0]
[pcdeszr100998:29194] [ 8] /lib/libc.so.6(__libc_start_main+0xfd) [0x7f5c588b7c4d]
[pcdeszr100998:29194] [ 9] channelFoam() [0x4174c9]
[pcdeszr100998:29194] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 1 with PID 29192 on node pcdeszr100998 exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------
If I start running the same case on a single processor, it works perfectly, but takes a lot of time. I had read on the forum that there are some problems in parallel run, if the boundaries are not in correct order. To avoid this, I created my boundaries using createPatch. However, it doesn't work in this case either.

Can someone help me out here.

Thanks,
Dhruv.

morard March 2, 2012 04:13

Hi Dhruv,

Some time ago I also got that error as you because I mapped results from better mesh to coarser one and then did decomposition... LES model could also be a problem. Which one do you use?

Just try to play around with different models and meshes. Turbulent channel should be a straightforward case (unless you don't want to repeat DNS results).

calim_cfd March 2, 2012 06:27

Hello dhr!

try decomposing with scotch, it should avoid these segmentation errors i guess
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.0.1                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.com                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    note        "mesh decomposition control dictionary";
    location    "system";
    object      decomposeParDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

numberOfSubdomains  4;

//- Keep owner and neighbour on same processor for faces in zones:
// preserveFaceZones (heater solid1 solid3);

method          scotch;
// method      ptscotch; // need to active this one to decompose then change back to scotch to run
// method          hierarchical;
// method          simple;
// method          manual;

simpleCoeffs
{
    n          (2 2 1);
    delta      0.001;
}

hierarchicalCoeffs
{
    n          (2 2 1);
    delta      0.001;
    order      xyz;
}

scotchCoeffs
{
    //processorWeights
    //(
    //    1
    //    1
    //    1
    //    1
    //);
    //writeGraph  true;
    //strategy "b";
}

manualCoeffs
{
    dataFile    "decompositionData";
}


//// Is the case distributed
//distributed    yes;
//// Per slave (so nProcs-1 entries) the directory above the case.
//roots
//(
//    "/tmp"
//    "/tmp"
//);


// ************************************************************************* //

pay attention cuz to decompose you need to set it to ptscotch and then change the dict back to scotch, im pretty sure u have to do this to work with scotch, unless the developers have changed it in 2.1.0 and i haven't noticed it so far.. you should get an error telling u what to do regarding decomposition

hope it helps!
/calim

niaz March 2, 2012 06:36

Dear dhrv
you have problem with segmentation.
firstly, check your decomposition file that has 4 parts not other numbers.
then use decompose -force to decompose it again.


All times are GMT -4. The time now is 20:24.