FIX: redistributePar problems with lagrangian

- the fileHandler changes included setting cacheLevel(0) to avoid
  blocking with redistributePar. However, this meant if clouds
  were not uniformly present on all ranks the fileHandler would follow
  different code paths and lead to blocking.

  Now switch to distributed mode for the lagrangian operations within
  redistributePar based on the cacheLevel information.

FIX: avoid triggering a false processor check in argList

- when redistributing to few ranks
This commit is contained in:
Mark Olesen
2023-12-20 14:59:36 +01:00
parent 88be9ef5c6
commit de133af526
6 changed files with 133 additions and 32 deletions

View File

@ -3,6 +3,10 @@ cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
fileHandler="-fileHandler collated"
unset fileHandler
## decompDict5="-decomposeParDict system/decomposeParDict.5"
# Create mesh
runApplication blockMesh
@ -18,12 +22,29 @@ runApplication createBaffles -overwrite
runApplication $(getApplication)
#- RedistributePar to do decomposition
runParallel redistributePar -decompose -cellDist
runParallel redistributePar -decompose -cellDist $fileHandler
#- Continue running for a bit more
runParallel -s parallel $(getApplication)
runParallel -s parallel $(getApplication) $fileHandler
#- Reconstruct all times
runParallel -s 1 redistributePar -reconstruct
if :
then
#- Reconstruct all times
runParallel -s reconstruct \
redistributePar -reconstruct $fileHandler
else
# Not yet entirely working...
#- Send to more ranks
runParallel -s more-ranks $decompDict5 redistributePar $fileHandler
#- Continue running for a bit more
runParallel -s more-ranks $decompDict5 $(getApplication) $fileHandler
#- Reconstruct all times
runParallel -s reconstruct $decompDict5 \
redistributePar -reconstruct $fileHandler -latestTime
fi
#------------------------------------------------------------------------------

View File

@ -0,0 +1,32 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 5;
method scotch;
constraints
{
//- Keep owner and neighbour on same processor for faces in zones:
faces
{
type preserveFaceZones;
zones (cycLeft cycRight);
}
}
// ************************************************************************* //