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