===== Commit 2015-08-28 ===== Implémentation d'un super-élément de type Guyan (quasi-statique). La classe ''SuperElement'' devient une classe virtuelle, et les classes filles ''CraigBamptonSuperElement'' et ''GuyanSuperElement'' sont créées. La classe ''SuperElementInteraction'', à partir de laquelle la création des super-éléments est gérée devient également virtuelle : les classes filles ''CraigBamptonSuperElementInteraction'' et ''GuyanSuperElementInteraction'' sont créées. ===== CraigBamptonSuperElement ===== * Condensation //dynamique//. * Partitionnement des DDLs en DDLs **Retenus** (= DDLs qui permettent la connexion du super-élément avec le reste de la structure, qui peuvent être soumis à des CLs au cours du calcul, ou DDLs dont on a besoin de connaître la valeur) et **Condensés** (= DDLs invisibles lors de l'utilisation du super-élément). * Le super-élément est généré à partir de ''CraigBamptonSuperElementInteraction'' via ''execute()'' * Etape 1 : Analyse fréquentielle sur le modèle EF fin associé (méthode de Lanczos) : calcul des modes propres associés aux fréquences propres les plus petites (le nb de modes propres est fixé par la variable ''nbEigenValues''). * Etape 2 : Calcul des matrices réduites du super-élément (calcul des modes statiques de liaison et utilisation des modes propres calculés précédemment permettant d'écrire le changement de base) à partir des matrices K et M calculées lors de l'analyse fréquentielle. ===== GuyanSuperElement ===== * Condensation //statique//. * Partitionnement des DDLs en DDLs **Retenus** (= DDLs qui représenteront à eux seuls le comportement dynamique de la structure) et **Condensés** (= DDLs ayant un comportement quasi-statique). * Le super-élément est généré à partir de ''GuyanSuperElementInteraction'' via ''execute()'' * Etape 1 : Calcul des matrices K et M associées au modèle EF fin (Ici pas d'analyse fréquentielle !). * Etape 2 : Calcul des matrices réduites du super-élément (calcul des modes statiques de liaison permettant d'écrire le changement de base) à partir des matrices K et M calculées précédemment. ===== ValueExtractors ===== * Création de deux nouvelles classes ''CraigBamptonSuperElementValueExtractor'' et ''GuyanSuperElementValueExtractor'', qui dérivent de ''DbNodalValueExtractor'', pour calculer une valeur associée à un DDL Condensé. * Suppression de la classe ''SuperElementValueExtractor''. ===== Tests ===== - Modifications des cas-tests initiaux : * Cas-tests de base = Beam2D.py, Beam2DComp.py, Beam3D.py, et Beam3DComp.py (prise en compte des nouvelles classes associées au super-élément de Craig-Bampton). * Autres cas-tests = launchers, chaque cas-test correspond à un cas de chargement différent (e.g., en déplacement, en force). - Un cas-test dynamique pour le super-élément de type Craig-Bampton : * Calcul des vibrations libres d'une poutre encastrée/libre modélisée avec un super-élément de Craig-Bampton, et comparaison avec un modèle EF fin classique -> ''Beam2DComp.py'' - Deux cas-tests pour le super-élément de type Guyan (quasi-statique et dynamique) : * Calcul quasi-statique d'une poutre encastrée/libre où un déplacement est imposé en un noeud de l'extrémité libre de la poutre -> ''Beam2DGuyanStatic.py'' * Calcul des vibrations libres d'une poutre encastrée/libre modélisée avec un super-élément de Guyan, et comparaison avec un modèle EF fin classique -> ''Beam2DGuyanDynamic.py'' Pour le moment, les résultats obtenus avec le super-élément de Craig-Bampton sont incorrects car l'analyse fréquentielle est faite sur une configuration de poutre Encastrée/Encastrée (et non Encastrée/Libre). * Les valeurs propres calculées ne correspondent donc pas à la bonne configuration. * Et, les vecteurs propres associés (modes propres), qui permettent le calcul des matrices K et M réduites, ne sont donc pas les bons vecteurs à considérer. Ce problème est du à une confusion entre les **DDLs Retenus/Condensés** et les **DDLs Fixés/Libres** ! Dans la version actuelle du code, tous les DDLs Retenus sont Fixés dans l'analyse fréquentielle ! Une nouvelle répartition des DDLs va être prochainement mise en place... ===== Divers ===== * Un nettoyage des includes et des définitions de classes a été fait dans les entêtes des fichiers .h et .cpp du module ''mtSuperElement''. * Modification du ifndef/define dans ''mtMD5.h''. ===== Fichiers ajoutés/modifiés/supprimés ===== Added : oo_meta\mtSuperElement\src\GuyanSuperElement.h Added : oo_meta\mtSuperElement\src\GuyanSuperElement.cpp Added : oo_meta\mtSuperElement\src\GuyanSuperElementInteraction.h Added : oo_meta\mtSuperElement\src\GuyanSuperElementInteraction.cpp Added : oo_meta\mtSuperElement\src\CraigBamptonSuperElement.h Added : oo_meta\mtSuperElement\src\CraigBamptonSuperElement.cpp Added : oo_meta\mtSuperElement\src\CraigBamptonSuperElementInteraction.h Added : oo_meta\mtSuperElement\src\CraigBamptonSuperElementInteraction.cpp Added : oo_meta\mtSuperElement\src\GuyanSuperElementValueExtractor.h Added : oo_meta\mtSuperElement\src\GuyanSuperElementValueExtractor.cpp Added : oo_meta\mtSuperElement\src\CraigBamptonSuperElementValueExtractor.h Added : oo_meta\mtSuperElement\src\CraigBamptonSuperElementValueExtractor.cpp Modified : oo_meta\mtSuperElement\src\SuperElement.h Modified : oo_meta\mtSuperElement\src\SuperElement.cpp Modified : oo_meta\mtSuperElement\src\SuperElementInteraction.h Modified : oo_meta\mtSuperElement\src\SuperElementInteraction.cpp Modified : oo_meta\mtSuperElement\_src\mtSuperElement.i Modified : oo_meta\mtGlobal\mtMD5.h Deleted: oo_meta\mtSuperElement\src\SuperElementValueExtractor.h Deleted: oo_meta\mtSuperElement\src\SuperElementValueExtractor.cpp ===== Tests ajoutés/supprimés ===== Added: oo_meta\mtSuperElement\tests\Beam2DGuyanStatic.py Added: oo_meta\mtSuperElement\tests\Beam2DGuyanDynamic.py Deleted: oo_meta\mtSuperElement\tests\Beam3DCompYAmp.p Deleted: oo_meta\mtSuperElement\tests\Beam3DLargePb.py --- //[[Claire.Hennuyer@ulg.ac.be|Claire Hennuyer]] 2015/08/28 //