Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2016:06_29b

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)
    • SEMechanicalMatricespour 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

Luc Papeleux 2016/06/29

commit/2016/06_29b.txt · Last modified: 2018/05/04 15:48 by boman