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/CraigBamptonSuperElementInteraction
n°<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é →addInteraction
puissetSuperElementNodes
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>.py
qui 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
àfalse
dans 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: 2016/06/29 18:48 by hennuyer