View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001868 | OpenFOAM | Bug | public | 2015-10-15 10:27 | 2015-10-17 20:25 |
Reporter | Assigned To | henry | |||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x86_64 | OS | GNU/Linux Debian | OS Version | Jessie 8.2 |
Summary | 0001868: boundaryFoam in parallel | ||||
Description | Errors in use of the solver boundaryFoam in parallel : If i consider more than 2 domains for the decomposition, the solver crashs. With 2 domains decomposition, the solver runs. mpirun -np 4 boundaryFoam -parallel /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.4.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.4.0-dcea1e13ff76 Exec : boundaryFoam -parallel Date : Oct 15 2015 Time : 11:00:54 Host : "xxxxxxxxxxxx" PID : 1230 Case : /.xxxxxxxxxxxxxxxxxxxx/boundaryLaunderSharma nProcs : 4 Slaves : 3 ( "xxxxxxxxxxx.1231" "xxxxxxxxxxx.1232" "xxxxxxxxxxx.1233" ) Pstream initialized with: floatTransfer : 0 nProcsSimpleSum : 0 commsType : nonBlocking polling iterations : 0 fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Reading field U Creating face flux Selecting incompressible transport model Newtonian Selecting RAS turbulence model LaunderSharmaKE LaunderSharmaKECoeffs { Cmu 0.09; C1 1.44; C2 1.92; sigmaEps 1.3; } Generating wall data for patch: lowerWall Height to first cell centre y0 = 2.80937e-05 Starting time loop [1] [1] [1] --> FOAM FATAL ERROR: [1] No wall patches identified [1] [1] From function boundaryFoam [1] in file interrogateWallPatches.H at line 57. [1] FOAM parallel run exiting [1] [2] [2] [2] --> FOAM FATAL ERROR: [2] No wall patches identified [2] [2] From function boundaryFoam [2] in file interrogateWallPatches.H at line 57. [2] FOAM parallel run exiting [2] -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 1 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. -------------------------------------------------------------------------- Time = 1 -------------------------------------------------------------------------- mpirun has exited due to process rank 2 with PID 1232 on node xxxxxxxxxx exiting improperly. There are two reasons this could occur: 1. this process did not call "init" before exiting, but others in the job did. This can cause a job to hang indefinitely while it waits for all processes to call "init". By rule, if one process calls "init", then ALL processes must call "init" prior to termination. 2. this process called "init", but exited without calling "finalize". By rule, all processes that call "init" MUST call "finalize" prior to exiting or it will be considered an "abnormal termination" This may have caused other processes in the application to be terminated by signals sent by mpirun (as reported here). -------------------------------------------------------------------------- [xxxxxxxxxxx:01229] 1 more process has sent help message help-mpi-api.txt / mpi-abort [xxxxxxxxxxx:01229] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages | ||||
Steps To Reproduce | source openfoam_bashrc cp -r $FOAM_TUTORIALS/incompressible/boundaryFoam/boundaryLaunderSharma . cd boundaryLaunderSharma blockMesh (use of attached decomposeparDict in system directory) decomposePar mpirun -np 4 boundaryFoam -parallel | ||||
Additional Information | The decomposeparDict file : /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 1.7.1 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method scotch; preservePatches (front back); | ||||
Tags | No tags attached. | ||||
|
AFAIK, boundaryFoam is mostly a proof-of-concept solver, designed for generating a 2D flow profile, for testing a turbulence model and wall treatment are working as intended. It's fairly hard-coded to work as a single process and as far as I can remember, making it work in parallel isn't straight forward. One workaround is to use the "simple" or "hierarchical" decomposition and make sure that all processors have access to the reference wall. For example, in the "boundaryLaunderSharma", divide only along the length of the wall/channel. |
|
Currently boundaryFoam is setup for serial operation only. Given that it is a 1D solver parallelization would not be beneficial unless VERY high resolution is used. It would be possible to write a parallel version but quite a bit of work. If this is a particular requirement you could have a go yourself or fund us to write the solver for you. To avoid further confusion I have explicitly removed the 'parallel' option from boundaryFoam: OpenFOAM-dev: commit 18376369645f3cd7784c0e11c7818ef0294bf65c |