Anomalie #175
pb utilitaires renumerotation
Ajouté par Julien Troufflard il y a plus de 6 ans.
Mis à jour il y a environ 6 ans.
Description
Gérard,
il y a un problème de "Segmentation Fault" dans le cas de l'utilitaire "utilitaires avec plus renumerotation_des_noeuds". Ce problème n'intervient pas si on passe par une méthode "non_dynamique avec plus sauveMaillagesEnCours" + renumerotation_des_noeuds_
ci-joint un exemple avec 2 fichiers .info :
1) renum_via_utilitaires.info => Segmentation Fault
2) renum_via_non_dynamique.info => fonctionne parfaitement
(testé avec HZppfast version 6.848)
Fichiers
informatiquement parlant, la dernière version où la renumérotation a l'air de fonctionner est la 6.832
mais il n'y a pas que le côté informatique. Dans le cas de 2 maillages reliés par une condition linéaire, la matrice de raideur qui en découle n'a pas l'air des plus optimales. ci-joint un test de la version 6.832 Il s'agit de 2 cubes reliés par une condition linéaire en 1 noeud. L'image brut.png montre la matrice de raideur avant renumérotation. L'image renum_6.832.png montre la matrice après renum avec la version 6.832. On voit bien qu'il y a eu du changement au sein de chaque maillage, mais les termes non nuls dus à la CLL sont encore plus éloignés de la diagonale après renumérotation ???
- Statut changé de Nouveau à En cours
Effectivement il y a un problème sur la prise en compte des cas d'assemblages.
- dans le cas où on n'a pas de CLL, il y avait un bug d'adressage de cas d'assemblage inexistant -> c'est ok maintenant, et on a bien une largeur de bande optimisée via l'utilitaire:
" utilitaires avec plus renumerotation_des_noeuds "
Je continue pour la suite ...
Concernant le cas d'une utilisation de l'utilitaire :
"utilitaires avec plus renumerotation_des_noeuds"
le fonctionnement d'herezh++ est modifié de la manière suivante:
- chaque maillage est traité indépendamment des autres, en cherchant à optimiser la numérotation des noeuds du maillage seul.
- si un des maillages comporte une numérotation améliorée après traitement, alors il y a sauvegarde des maillages dans des fichiers .her et .lis, dont le nom est construit à partir du nom de maillage indiqué dans le fichier original.
La prise en compte des conditions linéaires est supprimée à ce stade pour deux raisons:
1) si on globalise tous les maillages avec des CLL, la numérotation globale optimisée est bien améliorée mais ... si l'on veut isoler une numérotation particulière pour chaque maillage (via des numéros qui se suivent) à partir de cette numérotation globale, on perd l'optimisation globale (voir dans certain cas on obtient une numérotation dégradée ! par rapport à l'originale) donc il n'y a pas d'intérêt à faire cette manipulation.
2) au cours du calcul, ce qui est important dans le cas des CLL (et du contact) c'est "a priori" l'optimisation des pointeurs d'assemblages (pour le stockage matriciel global). Cette optimisation peut-être réalisée indépendamment de la numérotation des noeuds. Néanmoins, lorsqu'il n'y a pas de CLL, c'est avantageux en temps de calcul, d'optimiser une fois pour toutes, la numérotation des noeuds ce qui permet d'optimiser automatiquement la numérotation des pointeurs d'assemblages: c'est le but de l'utilitaire.
Ce nouveau fonctionnement est intégré dans la version >= 6.850
Je continue pour la suite ...
Formats disponibles : Atom
PDF