La création proprement dite du SE, dans l'état précontraint, se décompose en plusieurs étapes :
Guyan/CraigBamptonSuperElementInteraction n°<no>, qui ne sera pas ajoutée à l'interactionSet du domain.setNumberOfEigenValuessetDomain.superElemBuiltFlag à False → setSuperElemBuiltFlagGuyan/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 puis setSuperElementNodessetRetainedNodessuperElement<no>.py qui sera exécuté lors de l'importation du super-élément → createPyFileForSuperElemUse superElement<no>.py → groupsNodesToSaveGuyan/CraigBamptonSuperElement → generateElements()computeSuperElement()belongingToSuperElem à false dans le cas où un autre super-élément est construit dans le même calcul → clearSuperElementNodes()superElement<no>.py → lancée via la construction des Guyan/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()\\