Table of Contents
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
viaexecute()
- 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
viaexecute()
- 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
etGuyanSuperElementValueExtractor
, qui dérivent deDbNodalValueExtractor
, 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
- 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 2015/08/28