commit:2016:06_29b
Table of Contents
Commit 2016-06-29
SuperElement : Nettoyage structure + Divers
SuperElement : Nettoyage structure
- Creation d'une classe de base
MechanicalMatricesBase
dans mtFrequencyAnalysis et d'une classe spécifiqueSEMEchanicalMatrices
permettant- une interface commune (
MechanicalMatricesBase
) d'appel de matrice K et M servant à une analyse fréquentielle MechanicalMatrices
pour l'analyse fréquentielle d'un modèle EF (1 partitionnement : fixé/libre)SEMechanicalMatrices
pour la construction du super-élément (2 partitionnements belong/notBelong - Condensé/retenu). L'interface commune permettant l'appel du calcul des modes à interface fixes de Craig-Bampton…- ⇒ nettoyage de tous les 'if (thereIsBelongingToSEDofs)'
- gestion de la classe par
RefCounted
- gestion du
LinearSolver *
parRefCounted
- Clonage systématique du solver à la construction des
strMatrix
deMechanicalMatrices
(il faut noter que le solver est associé à sa matrice ⇒ si on construit 2 strMatrix avec le mêmeLinearSolver*
, c'est toujours le contenu de la dernière qui sera factorisé ⇒ risky business!!! Pour moi ce clonage devrait être fait dansStrMatrix
, mais on doit encore discuter des implications avec Romain.)
- Utilisation du DSS par défaut dans la construction du super-element (avant problème de crash de désallocation)
- Ajout de la possibilité de construire le SE via une matrice K symétrisée pour construire le SE (demande de calculer KRCsym = (KCRsym)^T = (KRC+KCR^T)/2 (ok en dss / ko en skyline !!!).
- ⇒ SEInteraction.setSymmetrizeK(true)
- Possibilité de choisir son solver pour la création des SE (DSS par défaut)
- ⇒ SEInteraction.setSolver(DSSSolver())
- Remontée dans la classe de base
SuperElement
de ce qui est commun àGuyanSuperElement
etCraigBamptonSuperElement
(LinearSolver*, MechanicalMatrices*, symK) et des fonctions d'interface/gestion - Essai de rendre plus lisible la construction des SE (via usage de références vers les blocs des matrices)
Analyse fréquentielle
- Ajout de la possibilité de faire une analyse fréquentielle via une matrice K symétrisée
- ⇒ FreqAnalysis.setSymmetrizeK(true)
- FrequencyValueExtractor.setSaveFaFac(True) : gestion de l'écriture du FaFac
- Ajout d'une std::string tscLabel : pour distinguer les tsc d'analyse fréquentielle (extracteur / buildSE)
- FreqAnalysisFac : changement des noms de fichier (pour plus de clarté : step_xxxxxx.faFac.gz pour les extracteurs, SE_no.faFac.gz pour les modes à interfaces fixes des SE)
Divers
- AlphaAbradableMaterial : commentarisation de “std::cout” de debug
- TimeStepManager : Ajout d'une fonction
isEmpty()
qui permet de ne plus planter Metafor si on n'a pas défini d'évolution temporelle (setNextTime) d'un modèle dont on veut faire la vizu (ca plantait stupidement à cause du titre de la fenetre de vizu qui nécessite le temps de calcul!!!)
Fichiers ajoutés/supprimés
Added : oo_meta\mtFrequencyAnalysis\src\MechanicalMatricesBase.h/cpp Added : oo_meta\mtSuperElements\src\SEMechanicalMatrices.h/cpp
Tests ajoutés/supprimés
Added : oo_meta\mtSuperElement\tests\beamCentrifugeLoad\beam3DEas20000Rpm20ModesSkyLine_1.py /_2.py Added : oo_meta\mtSuperElement\tests\beamCentrifugeLoad\beam3DEas20000Rpm20ModesSkyLineSymK_1.py /_2.py Added : oo_meta\mtSuperElement\tests\beamCentrifugeLoad\beam3DEas20000Rpm20ModesSymK_1.py /_2.py
— Luc Papeleux 2016/06/29
commit/2016/06_29b.txt · Last modified: 2018/05/04 15:48 by boman