|
[Sponsors] |
October 3, 2019, 10:07 |
running iocFoam in parallel
|
#1 |
New Member
anonymous
Join Date: Sep 2019
Location: North Carolina
Posts: 25
Rep Power: 7 |
I was able to run "icoFoam" in the terminal and the simulation ran fine. To speed up the process fro future simulations I will be running in parallel so I figured I would try it on this setup
When Code:
decomposePar Code:
mpirun -np 8 icoFoam -parallel | tee log Code:
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ Build : 7-6ef561967074 Exec : icoFoam -parallel Date : Oct 03 2019 Time : 08:41:49 Host : "taylor-Precision-T1700" PID : 4645 I/O : uncollated Case : /home/taylor/OpenFOAM/taylor-7/run/ten nProcs : 8 Slaves : 7 ( "taylor-Precision-T1700.4646" "taylor-Precision-T1700.4647" "taylor-Precision-T1700.4648" "taylor-Precision-T1700.4649" "taylor-Precision-T1700.4650" "taylor-Precision-T1700.4651" "taylor-Precision-T1700.4652" ) Pstream initialized with: floatTransfer : 0 nProcsSimpleSum : 0 commsType : nonBlocking polling iterations : 0 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10) allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Reading transportProperties Reading field p Reading field U Reading/calculating face flux field phi Starting time loop [0] [0] [0] --> FOAM FATAL ERROR: [0] Unknown function type surfaceRegion Valid functions are : 52 ( CourantNo Lambda2 MachNo PecletNo Q XiReactionRate add age blendingFactor components ddt div enstrophy fieldAverage fieldCoordinateSystemTransform fieldMinMax fieldValueDelta flowType grad histogram interfaceHeight log mag magSqr nearWallFields patchProbes pressure probes processorField psiReactionThermoMoleFractions randomise readFields regionSizeDistribution rhoReactionThermoMoleFractions scale sets streamFunction streamLine subtract surfaceFieldValue surfaceInterpolate surfaces turbulenceFields turbulenceIntensity volFieldValue vorticity wallHeatFlux wallHeatTransferCoeff wallShearStress writeCellCentres writeCellVolumes yPlus ) [0] [0] [0] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [0] in file db/functionObjects/functionObject/functionObject.C at line 100. [0] FOAM parallel run exiting [0] [1] [1] [1] --> FOAM FATAL ERROR: [1] Unknown function type surfaceRegion Valid functions are : 52 ( CourantNo Lambda2 MachNo PecletNo Q XiReactionRate add age blendingFactor components ddt div enstrophy fieldAverage fieldCoordinateSystemTransform fieldMinMax fieldValueDelta flowType grad histogram interfaceHeight log mag magSqr nearWallFields patchProbes pressure probes processorField psiReactionThermoMoleFractions randomise readFields regionSizeDistribution rhoReactionThermoMoleFractions scale sets streamFunction streamLine subtract surfaceFieldValue surfaceInterpolate surfaces turbulenceFields turbulenceIntensity volFieldValue vorticity wallHeatFlux wallHeatTransferCoeff wallShearStress writeCellCentres writeCellVolumes yPlus ) [1] [1] [1] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [1] in file db/functionObjects/functionObject/functionObject.C at line 100. [1] FOAM parallel run exiting [1] [3] [4] [4] [4] --> FOAM FATAL ERROR: [4] Unknown function type surfaceRegion Valid functions are : 52 ( CourantNo Lambda2 MachNo PecletNo Q XiReactionRate add age blendingFactor components ddt div enstrophy fieldAverage fieldCoordinateSystemTransform fieldMinMax fieldValueDelta flowType grad histogram interfaceHeight log mag magSqr nearWallFields patchProbes pressure probes processorField psiReactionThermoMoleFractions randomise readFields regionSizeDistribution rhoReactionThermoMoleFractions scale sets streamFunction streamLine subtract surfaceFieldValue surfaceInterpolate surfaces turbulenceFields turbulenceIntensity volFieldValue vorticity wallHeatFlux wallHeatTransferCoeff wallShearStress writeCellCentres writeCellVolumes yPlus ) [4] [4] [4] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [4] in file db/functionObjects/functionObject/functionObject.C at line 100. [4] FOAM parallel run exiting [4] [5] [5] [5] --> FOAM FATAL ERROR: [5] Unknown function type surfaceRegion Valid functions are : 52 ( CourantNo Lambda2 MachNo PecletNo Q XiReactionRate add age blendingFactor components ddt div enstrophy fieldAverage fieldCoordinateSystemTransform fieldMinMax fieldValueDelta flowType grad histogram interfaceHeight log mag magSqr nearWallFields patchProbes pressure probes processorField psiReactionThermoMoleFractions randomise readFields regionSizeDistribution rhoReactionThermoMoleFractions scale sets streamFunction streamLine subtract surfaceFieldValue surfaceInterpolate surfaces turbulenceFields turbulenceIntensity volFieldValue vorticity wallHeatFlux wallHeatTransferCoeff wallShearStress writeCellCentres writeCellVolumes yPlus ) [5] [5] [5] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [5] in file db/functionObjects/functionObject/functionObject.C at line 100. [5] FOAM parallel run exiting [5] [6] [6] [6] --> FOAM FATAL ERROR: [6] Unknown function type surfaceRegion Valid functions are : 52 ( CourantNo Lambda2 MachNo PecletNo Q XiReactionRate add age blendingFactor components ddt div enstrophy fieldAverage fieldCoordinateSystemTransform fieldMinMax fieldValueDelta flowType grad histogram interfaceHeight log mag magSqr nearWallFields patchProbes pressure probes processorField psiReactionThermoMoleFractions randomise readFields regionSizeDistribution rhoReactionThermoMoleFractions scale sets streamFunction streamLine subtract surfaceFieldValue surfaceInterpolate surfaces turbulenceFields turbulenceIntensity volFieldValue vorticity wallHeatFlux wallHeatTransferCoeff wallShearStress writeCellCentres writeCellVolumes yPlus ) [6] [6] [6] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [6] in file db/functionObjects/functionObject/functionObject.C at line 100. [6] FOAM parallel run exiting [6] [7] [7] [7] --> FOAM FATAL ERROR: [7] Unknown function type surfaceRegion Valid functions are : 52 ( CourantNo Lambda2 MachNo PecletNo Q XiReactionRate add age blendingFactor components ddt div enstrophy fieldAverage fieldCoordinateSystemTransform fieldMinMax fieldValueDelta flowType grad histogram interfaceHeight log mag magSqr nearWallFields patchProbes pressure probes processorField psiReactionThermoMoleFractions randomise readFields regionSizeDistribution rhoReactionThermoMoleFractions scale sets streamFunction streamLine subtract surfaceFieldValue surfaceInterpolate surfaces turbulenceFields turbulenceIntensity volFieldValue vorticity wallHeatFlux wallHeatTransferCoeff wallShearStress writeCellCentres writeCellVolumes yPlus ) [7] [7] [7] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [7] in file db/functionObjects/functionObject/functionObject.C at line 100. [7] FOAM parallel run exiting [7] -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 1 in communicator MPI COMMUNICATOR 3 SPLIT FROM 0 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. -------------------------------------------------------------------------- [3] [3] --> FOAM FATAL ERROR: [3] Unknown function type surfaceRegion Valid functions are : 52 ( CourantNo Lambda2 MachNo PecletNo Q XiReactionRate add age blendingFactor components ddt div enstrophy fieldAverage fieldCoordinateSystemTransform fieldMinMax fieldValueDelta flowType grad histogram interfaceHeight log mag magSqr nearWallFields patchProbes pressure probes processorField psiReactionThermoMoleFractions randomise readFields regionSizeDistribution rhoReactionThermoMoleFractions scale sets streamFunction streamLine subtract surfaceFieldValue surfaceInterpolate surfaces turbulenceFields turbulenceIntensity volFieldValue vorticity wallHeatFlux wallHeatTransferCoeff wallShearStress writeCellCentres writeCellVolumes yPlus ) [3] [3] [3] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&) [3] in file db/functionObjects/functionObject/functionObject.C at line 100. [3] FOAM parallel run exiting [3] [taylor-Precision-T1700:04639] 3 more processes have sent help message help-mpi-api.txt / mpi-abort [taylor-Precision-T1700:04639] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages This is what written to the log file Code:
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ Build : 7-6ef561967074 Exec : icoFoam -parallel Date : Oct 03 2019 Time : 08:41:49 Host : "taylor-Precision-T1700" PID : 4645 I/O : uncollated Case : /home/taylor/OpenFOAM/taylor-7/run/ten nProcs : 8 Slaves : 7 ( "taylor-Precision-T1700.4646" "taylor-Precision-T1700.4647" "taylor-Precision-T1700.4648" "taylor-Precision-T1700.4649" "taylor-Precision-T1700.4650" "taylor-Precision-T1700.4651" "taylor-Precision-T1700.4652" ) Pstream initialized with: floatTransfer : 0 nProcsSimpleSum : 0 commsType : nonBlocking polling iterations : 0 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10) allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Reading transportProperties Reading field p Reading field U Reading/calculating face flux field phi Starting time loop -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 1 in communicator MPI COMMUNICATOR 3 SPLIT FROM 0 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. -------------------------------------------------------------------------- Last edited by tenichols19; October 3, 2019 at 22:13. |
|
October 4, 2019, 09:05 |
|
#2 | |
New Member
anonymous
Join Date: Sep 2019
Location: North Carolina
Posts: 25
Rep Power: 7 |
Quote:
|
||
October 4, 2019, 10:03 |
|
#3 |
Senior Member
Carlo_P
Join Date: May 2019
Location: Italy
Posts: 176
Rep Power: 8 |
Seems that there's an error in the functionobject.
Are you sure that the same code works in serial? Maybe the problem is in the decomposition. Maybe the surface is divided in more processors. I can suggest you to try to run the solver without the functionObjects I can suggest you to try to use different decomposition methods or setups. Let me know! |
|
October 4, 2019, 11:44 |
|
#4 |
New Member
anonymous
Join Date: Sep 2019
Location: North Carolina
Posts: 25
Rep Power: 7 |
Yes I was able to get it to run.
I tried 2 ways to decompose it. This was the first way. Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 8; method scotch; // ************************************************************************* // After this didn't work I tried this way. Code:
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 8; method simple; simpleCoeffs { n (8 1 1); delta 0.001; } hierarchicalCoeffs { n (1 1 1); delta 0.001; order xyz; } manualCoeffs { dataFile ""; } distributed no; roots ( ); // ************************************************************************* // What does the functionObjects do? Thanks for the help. |
|
October 4, 2019, 11:58 |
|
#5 |
Senior Member
Carlo_P
Join Date: May 2019
Location: Italy
Posts: 176
Rep Power: 8 |
Hey,
seems that your error is linked to the function: surfaceRegion. Can you check if this function is called your controlDict? This seems to be the error. I have no idea why this function complain in parallel and not in serial. I suppose that maybe the surface you are calcolating the value in controlDict has some problems during the decomposition. Do you have some like this in your controlDict? surfaceRegion1 { type surfaceRegion; libs ("libfieldFunctionObjects.so"); log true; writeControl writeTime; writeFields true; surfaceFormat none; regionType faceZone; name f0; operation sum; weightField alpha1; fields ( p phi U ); } Cheers |
|
October 4, 2019, 16:34 |
|
#6 |
New Member
anonymous
Join Date: Sep 2019
Location: North Carolina
Posts: 25
Rep Power: 7 |
I have been following this tutorial and he used this as his controlDict.. SurfaceRegion is called in here. https://www.youtube.com/watch?v=2Yfd...Pv0vfw&index=3
Here is the controlDict file. Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application icoFoam; startFrom startTime; startTime 0; //stopAt writeNow; stopAt endTime; endTime 2; deltaT 0.01; writeControl timeStep; writeInterval 5; purgeWrite 0; writeFormat ascii; writePrecision 8; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; // ************************************************************************* // functions { /////////////////////////////////////////////////////////////////////////// minmaxdomain { type fieldMinMax; functionObjectLibs ("libfieldFunctionObjects.so"); enabled true; //true or false mode component; writeControl timeStep; writeInterval 1; log true; fields (p U); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// massFlow_inlet { type surfaceRegion; functionObjectLibs ("libfieldFunctionObjects.so"); enabled true; //writeControl outputTime; writeControl timeStep; writeInterval 1; log true; writeFields false; regionType patch; name inlet; operation sum; fields ( phi ); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// massFlow_outlet { type surfaceRegion; functionObjectLibs ("libfieldFunctionObjects.so"); enabled true; //writeControl outputTime; writeControl timeStep; writeInterval 1; log true; writeFields false; regionType patch; name outlet; operation sum; fields ( phi ); } |
|
October 7, 2019, 05:44 |
|
#7 |
Senior Member
Carlo_P
Join Date: May 2019
Location: Italy
Posts: 176
Rep Power: 8 |
Ok, so, we found a workaround.
..but seems very strange that it works in serial but not in parallel. Seems that the library libfieldFunctionObjects.so is not present or doesn't work correctly. Strange,.. In the end, if you want this function, you can simply reconstruct the latest timestep with reconstruct -latestTime and run on iteration or only the postProcessing (with icoFoam -postProcess) in serial. |
|
Tags |
error, icofoam -parallel, openfoam |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Simulation just stops output writing, but keeps running | blaise | OpenFOAM Running, Solving & CFD | 6 | March 27, 2024 05:49 |
Error problem while running sadia d lts tutorial | kane | OpenFOAM Running, Solving & CFD | 2 | May 26, 2018 04:38 |
Error Running Design of Experiments in ANSYS Fluent | tytrzecki | FLUENT | 0 | April 22, 2018 16:01 |
Problem in running coarse mesh(on the other hand fine mesh is running) | ashokmoravaneni | OpenFOAM | 7 | July 17, 2017 05:56 |
Running Multiple Simulations from Workbench 12.1 | Josh | CFX | 3 | August 10, 2010 20:51 |