Suppression des routines de création de liens topologiques dans la classe Geometry
. Ces liens sont maintenant automatiquement et progressivement créés lors de l'appel à la fonction topology.define(…)
. Il n'est donc plus nécessaire de faire un appel explicite à topology.linkAll()
lorsqu'on a fini de construire des mailles.
Précédemment, cet appel était fait un peu n'importe où “au cas où ça ne serait pas encore fait” (un peu comme les shortcuts.update()
, le domain.build()
, etc). En particulier, pour la gestion des splines construites sur un maillage, la topologie était construite puis détruite, ce qui ne pose pas de problème lors du prépro mais qui rend l'objet impossible à créer en cours de calcul (en ALE par exemple).
La manière dont je l'ai reprogrammé va aussi permettre de résoudre un (énorme) problème pour l'ajout suppression d'éléments: il va ainsi être possible de modifier localement et automatiquement la topologie du maillage lorsqu'on supprimera une entité de maillage. On pourra aussi en profiter pour faire des tests: par exemple, si on veut supprimer une arête qui appartient à un volume non supprimé, Metafor pourra afficher un message d'erreur. Pour l'instant, l'adaptation de topologie n'est pas codée mais l'interface est créée.
Une conséquence de cette modif est que la topologie de la géométrie utilisateur n'est plus construite. Il faudrait, si on voulait la conserver, modifier la fonction gobjectset.add
pour que cette fonction construise des liens topologiques. Ce n'est pas trivial parce qu'on ne veut pas toujours créer de liens quand on utilise cette fonction. De plus, je ne crois pas que ces liens soient utiles pour l'instant. On les utilisait dans le surroundedness-test 3D (et donc la redétection du maillage) mais j'ai réussi à recoder l'algorithme pour qu'on puisse s'en passer.
J'ai laissé du code qui vérifie qu'un élément n'est pas ajouté plusieurs fois. Ca ralentit un peu la construction de la topologie mais je crois que c'est utile de faire ces vérifications pour éviter les erreurs. Par exemple, si on essaye d'ajouter 2x la même arête à un point, ça plante.
— Romain BOMAN 2008/10/15 11:05