===== 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 //