Skip to content

ENH: processorFaPatch: use internal-edge algos for processor edges to ensure parallel consistency

Kutalmış Berçin requested to merge fa-parallel-consistency-improvements into develop

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

Merge request reports