fixedJumpAMI does not work for Distributed Parallel
Summary
When using the 'fixedJumpAMI' boundary condition with distributed AMI, OpenFOAM will crash in cyclicAMIFvPatchField.c at line 600 with the error:
--> FOAM FATAL ERROR: (openfoam-2406)
Outstanding recv request(s) on patch [fixedJumpAMI patch] field [field]
It would seem that the underlying AMI is unable to communicate between processors. A work-around is to constrain the patches that use 'fixedJumpAMI' to the same processor in the decomposeParDict. Either by:
Create a faceSet 'f1' with the patches and supply to the decoposeParDict:
constraint
{
processors
{
type singleProcessorFaceSets;
sets ((f1 -1));
enabled true;
}
}
or use the preservePatches constraint:
constraint
{
processors
{
type preservePatches;
patches (Side-1-Patch Side-2-Patch);
enabled true;
}
}
However, both will result in sub-optimal decomposition when using 'scotch.'
Steps to reproduce
Example case
One could use the propeller tutorial and treat the inlet and outlet patches as cyclicAMI boundaries. For the 0/U, 0/k, and 0/epsilon, use cyclicAMI with a translational offset. For 0/p, use the fixedJumpAMI so that the kinematic pressure decreases from inlet to outlet. This should simulate an infinite, translational array of propellers.
What is the current bug behaviour?
The solver will crash when it gets to solve the 'p' field with the above error.
What is the expected correct behavior?
The solver should be able to receive information from different processors.
Relevant logs and/or images
Environment information
- OpenFOAM version : v2406
- Operating system : Red Hat Enterprise Linux v8.10 (Ootpa)
- Compiler : Installed from Package (Build _52c02cff-20240620)