redistributePar -decompose and -reconstruct issue with collated I/O
Summary
(1) In general, it seems that the redistributePar -decompose does not distribute the sets (with or without collated IO).
(2) redistributePar -reconstruct when used with collated fileHandler does not reconstruct the lagrangian fields.
Steps to reproduce
Use the below commands to set up a case that has lagrangian fields and/or requires sets to be decomposed:
runApplication blockMesh
runApplication topoSet
runParallel -s decompose redistributePar -decompose -fileHandler collated #-ioRanks '(0 2 4)'
mpirun -np 4 $(getApplication) -parallel -fileHandler collated #-ioRanks '(0 2 4)'
runParallel -s reconstruct redistributePar -reconstruct -fileHandler collated #-ioRanks '(0 2 4)'
Example case
(1) Take simplifiedSiwek of lagrangian/coalChemistryFoam tutorial
(2) Use the above commands in Allrun-parallel in place of the original commands ---> You see the crash due to the absence of ignition sets in the decomposed mesh
(3) Comment the "source1" in constant/fvOptions to be able to run the case
(4) Set "the end"stopAt" to "writeNow" to run for 1 time step
(5) Re-execute the modified "Allrun-parallel" script ---> You will see that the lagrangian fields have not been reconstructed.
I have attached the two scripts:
What is the current bug behaviour?
What is the expected correct behavior?
Relevant logs and/or images
Environment information
- OpenFOAM version : 2212, 2306
- Operating system :Linux
- Hardware info :
- Compiler :Gcc 10.5
Possible fixes
Regarding the issue in reconstructing lagrangian fields, I think "findClouds" function in "parLagrangianDistributor" class searches in wrong paths i.e. old-style uncollated paths (processor0/ processor1/ ... etc) such that "cloudNames" object is empty. Unfortunately I do not know how to change the path to the collated style path i.e. processorsXX/
Regarding the decomposing of the sets issue, I have no idea!