===== 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écifique ''SEMEchanicalMatrices'' 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 *'' par ''RefCounted'' * Clonage systématique du solver à la construction des ''strMatrix'' de ''MechanicalMatrices'' (il faut noter que le solver est associé à sa matrice => si on construit 2 strMatrix avec le même ''LinearSolver*'', c'est toujours le contenu de la dernière qui sera factorisé => risky business!!! Pour moi ce clonage devrait être fait dans ''StrMatrix'', 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'' et ''CraigBamptonSuperElement'' (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 --- //[[L.Papeleux@ulg.ac.be|Luc Papeleux]] 2016/06/29 //