doc:user:elements:superelements:creation
Super-element creation
La création proprement dite du SE, dans l'état précontraint, se décompose en plusieurs étapes :
- Création de l'interaction
Guyan/CraigBamptonSuperElementInteractionn°<no>, qui ne sera pas ajoutée à l'interactionSet du domain. - Définition du nb de modes propres à interfaces fixes (Craig-Bampton) →
setNumberOfEigenValues - Association du domaine FEM à l'interaction créée →
setDomain. - Fixation de
superElemBuiltFlagàFalse→setSuperElemBuiltFlag - Association de toutes les interactions qui définissent le futur SE à l'interaction
Guyan/CraigBamptonSuperElementInteraction. Le but est de calculer correctement les différents blocs des matrices k et m du modèle FEM, sur lesquelles le calcul des matrices réduites K et M est basé →addInteractionpuissetSuperElementNodes
Les matrices k et m du modèle FEM, à partir desquelles les matrices réduites vont être construites, prennent en compte le raidissement centrifuge du à la mise en rotation préalable du modèle FEM.
- Détermination des nœuds Retenus →
setRetainedNodes - Création du fichier de sauvegarde
superElement<no>.pyqui sera exécuté lors de l'importation du super-élément →createPyFileForSuperElemUse
⇒ Le n°<no> est le UserNo de l'interaction “super-élément” qui sera créée au moment de l'utilisation du SE ; à chaque n°<no> correspond 1 super-élément. - Sauvegarde des groupes de noeuds RETENUS dans le fichier
superElement<no>.py→groupsNodesToSave - Création de l'objet
Guyan/CraigBamptonSuperElement→generateElements() - Calcul des matrices réduites et sauvegarde du super-élément →
computeSuperElement() - Mise à jour des flags
belongingToSuperElemàfalsedans le cas où un autre super-élément est construit dans le même calcul →clearSuperElementNodes() - Sauvegarde des valeurs des modes statiques de liaison et des modes propres à interfaces fixes (Craig-Bampton) des DDLs Condensés dans le fichier
superElement<no>.py→ lancée via la construction desGuyan/CraigBamptonSuperElementValueExtractor⇒ Doit être fait après computeSuperElement() car le super-élément créé doit avoir été ajouté à l'elementSet de l'interaction.
Exemple dans le cas Craig-Bampton :
SEInteraction = CraigBamptonSuperElementInteraction(1) # Création de la SuperElementInteraction\\
SEInteraction.setDomain(domain)\\
SEInteraction.setNumberOfEigenValues(self.nbOfNormalModes)\\
SEInteraction.setSuperElemBuiltFlag(False) # False = Création du SE + sauvegarde\\
for inter in interactionsList:\\
SEInteraction.addInteraction(inter) # Ajout des interactions associées au futur SE\\
SEInteraction.setSuperElementNodes() # Identification de tous les noeuds associés aux interactions ajoutées via addInteraction (flag "belongingToSuperElem")\\
SEInteraction.setRetainedNodes(retainedNodesGp) # Détermination des noeuds retenus (flag "belongingToSuperElem" = true / "fixed" = true)\\
SEInteraction.setSymmetrizeK(symmetrizeK)\\
if solver:\\
SEInteraction.setSolver(solver)\\
createPyFileAndSaveGroups(1, groupList)\\
SEInteraction.generateElements() # génération du super-élément\\
SEInteraction.computeSuperElement() # calcul des matrices réduites + sauvegarde du super-élément\\
SEInteraction.clearSuperElementNodes()\\
doc/user/elements/superelements/creation.txt · Last modified: by hennuyer
