Les profils spatiaux à partir d’un maillage

publié le 13 juillet 2011 (modifié le 19 juillet 2011)

Fudaa permet de calculer des profils spatiaux basés sur un maillage.

Les intersections sont déterminées au niveau des arêtes / nœuds. Ensuite, ces intersections sont adaptées aux données :

  • si les données sont définies sur les éléments, les intersections sont simplifiées
  • pour les données cote d’eau / bathymétrie, il faut éventuellement ajouter des intersections "fictives" pour conserver un plan d’eau horizontal.

Les classes à utiliser

Les classes se trouvent dans le package org.fudaa.dodico.ef.operation.

  • La classe permettant de faire les calculs : EfLineIntersectorActivity
  • Les résultats bruts sont stockés dans la classe EfLineIntersectionsResultsMng.
  • Le builder EfLineIntersectionsResultsBuilder permet de lancer le correcteur d’intersections. Il utilise des WeakReference pour stocker des corrections déjà effectuées(optimisation basique basée sur un pool).
  • Les résultats finaux sont donnés par la classe EfLineIntersectionsResultsDefault.

Le calcul des intersections

L’algorithme recherche toutes les intersections sur les nœuds et les arêtes. Les résultats ( des EfLineIntersection) sont utilisés pour donner (en interpolant si nécessaire) les valeurs sur les points d’intersection à partir de valeurs nodales et/ou élémentaires définies sur le maillage correspondant.

Voir la page "interpolation dans Fudaa" pour plus d’informations sur le sujet.

Si les valeurs initiales sont définies sur les éléments (valeurs dites élémentaires) l’algorithme simplifie le résultat : 2 intersections sur des arêtes consécutives et appartenant à un même élément sont remplacées par l’intersection sur l’élément correspondant.

Corrections des résultats

Voir le fichier MvProfileCoteTester. Le problème en image :

Par défaut, le résultat brut ne prend pas en compte qu’une surface libre est plane… Nous sommes ainsi obligés d’ajouter des intersections fictives qui permettent d’avoir un résultat un peu plus cohérent …

Affichage et animation des profils spatiaux

Toutes les classes de bases sont dans le package : org.fudaa.fudaa.meshviewer.profile. Des actions permettent de créer des profils spatiaux à partir d’une ligne existante ou à partir d’une sélection adéquate :

  • voir la classe MvProfileAction.