Problème erratique avec les lignes de coupe dans SALOME et ParaView

Ce document décrit le problème rencontré lors de l'utilisation le logiciel ParaView, qu'il soit utilisé de façon
autonome ou au sein de plate-forme SALOME avec son module PARAVIS. Et ce quelle que soit la version. Le
problème a lieu avec une ligne de coupe d'un champ, issu du post-traitement d'un calcul en électro-magnétisme.
On illustre ci-dessous ce problème sur deux cas-tests, utilisant la solution de référence calculée par code_Carmel
temporel. Le logiciel ParaView ne parvient pas à trouver systématiquement l'élément qui contient le point de la ligne de coupe qui le traverse.

On trouvera en pièces jointes une notice détaillant ce problème (PDF, 9 pages) et une archive contenant toutes les données utilisées dans la notice.

Pour aller plus loin, ce problème est apparu sur de nombreuses versions (ParaView 3 et 4, SALOME 6.6.0 à 7.5.1),
quel que soit le format du maillage (MED et VTK testés). Ces différences apparaissent de manière erratique.
Deux cas ont permis d'illustrer et comprendre ces différences et savoir lequel fournit le résultat correct. Dans les
deux cas, ParaView comme SALOME/PARAVIS sont mis en défaut, car ParaView n'estime pas correctement
l'élément contenant certains points de la ligne de coupe : il en choisit un autre. Sur un cas caractérisé par un
maillage constitué de tétraèdres seulement, les différences sont observées sur un seul point de la ligne de coupe, et les résultats sont relativement proches. Il se pourrait que cela soit dû à une précision insuffisante de SALOME,
ce point étant très proche de la surface commune aux deux éléments, le bon trouvé par code_Carmel et le
mauvais trouvé par SALOME. Sur un deuxième cas, dont le maillage ne contient que des prismes, les mêmes
erreurs se reproduisent (confusion avec un autre élément partageant une face ou des noeuds ou des arêtes en
commun avec le bon élément), mais cette erreur ne peut pas provenir d'une précision insuffisante : les prismes
sont suffisamment gros et les points de la ligne de coupe plutôt au centre de ces éléments, i.e. , très loin des faces
des éléments.
On note que le module SMESH de SALOME ne commet pas ces erreurs, car il trouve les mêmes éléments que
code_Carmel, pour lequel cette recherche a été vérifiée. On en conclut que le module PARAVIS
de SALOME n'est pas able pour ce post-traitement.
En perspective, il serait intéressant de vérier ce comportement sur d'autres types d'éléments, e.g., hexaèdres
ou pyramides, et de comprendre l'algorithmes utilisé par ParaView (SALOME module PARAVIS) pour trouver
les éléments contenant un point, par comparaison avec l'algorithme du module SMESH. Et de signaler ce
problème, non reconnu après une recherche rapide, aux équipes de développement de ParaView.

Ce problème a été signalé aux équipes de développement de Salomé (Forum : Paraview bug with cutlines) et de Paraview (#15414).