ENH: processorFaPatch: use internal-edge algos for processor edges to ensure parallel consistency
Summary
The edgeInterpolation
routines have been found to exhibit inconsistent parallel behavior in certain edge cases involving finite area meshes. This inconsistency arises because different algorithms are applied to internal edges and processor edges.
makeLPN
makeWeights
makeDeltaCoeffs
makeCorrectionVectors
makeSkewCorrectionVectors
The initial tests are carried out using a small test application: Test-faMesh-edgeInterpolation.zip.
The test matrix for these edge cases is shown below:
Case index | Planar | Equidistant | Skewness/Non-orthogonality |
---|---|---|---|
Case 1 | Yes | Yes | Zero |
Case 2 | Yes | No | Zero |
Case 3 | Yes | Yes | Non-zero |
Case 4 | Yes | No | Non-zero |
Case 5 | No (45deg) | Yes | Zero |
Case 6 | No (45deg) | No | Zero |
Case 7 | No (45deg) | No | Non-zero |
Case 8 | No (60deg) | No | Non-zero |
The test cases are shared below:
Case 1
Case: 1-case.zip
Case 2
Case: 2-case.zip
Case 3
Case: 3-case.zip
Case 4
Case: 4-case.zip
Case 5
Case: 5-case.zip
Case 6
Case: 6-case.zip
Case 7
Case: 7-case.zip
Case 8
Case: 8-case.zip
Resolved bugs
Chair case
Case (2 processors): 1-z-2procs.zip
Case (3 processors - problematic): 2-z-3procs.zip
Risks
Expect output changes in corner finite-area cases.
Metadata
-
linux64ClangDPInt32Opt (clang15) -
linux64GccDPInt32Opt -
linux64GccSPDPInt64Debug -
Alltest: No new error/No change in existing output -
No regression was observed in tutorial cases involving finite-area mesh (serial/parallel):
cylinder
drippingChair
filmPanel0
hotRoomWithThermalShell
inclinedPlaneFilm
liquidFilmStepWithSprinklers
pitzDailyWithSprinklers
planeTransport
sloshing2D
sphereTransport
splashPanelFilm
Edited by Kutalmış Berçin