===== Commit 2016-06-29 ===== Calcul de la déformation centrifuge des super-éléments : première ébauche. ==== Déformation centrifuge ==== Ajout d'une nouvelle fonction ''fillCentrifugalForces()'' dans la classe ''SuperElement'' : * Récupération des déplacements des //futurs noeuds retenus du futur super-élément// au moment de la création du super-élément, i.e. après mise en rotation centrifuge quasi-statique à la vitesse cible $\Omega$. * Puis, calcul des forces centrifuges équivalentes à ces déplacements via l'équation suivante : \begin{equation} \widetilde{\mathbf{K}}_{RR} \ \mathbf{U}_R = \mathbf{F}_R \end{equation} Cette fonction est appelée dans la fonction ''saveMeshAndForces()'' (ancienne fonction ''saveRetainedNodes'' qui a été renommée) dans laquelle : * les noeuds retenus (userNo, position), et * les forces centrifuges en chacun de ces noeuds, sont sauvegardés dans le fichier ''superElement.py'', via l'écriture de la fonction python ''applyCentrifugeLoads()''. Les forces ainsi calculées et sauvegardées seront alors appliquées aux noeuds retenus du super-élément lors de son utilisation en appelant la fonction ''applyCentrifugeLoads(fctLoad)'' afin d'obtenir la bonne déformation centrifuge. Les forces centrifuges sont appliquées via les commandes suivantes, exemple dans le cas 3D ici : loadingSet.define(tpSet(UserNo + index), Field1D(TX,GF1), FX, fctLoad, TOTAL_LOAD) loadingSet.define(tpSet(UserNo + index), Field1D(TY,GF1), FY, fctLoad, TOTAL_LOAD) loadingSet.define(tpSet(UserNo + index), Field1D(TZ,GF1), FZ, fctLoad, TOTAL_LOAD) où ''tpSet'' correspond au ''mesh.getPointSet()'', ''UserNo'' est le numéro du noeud retenu courant, ''Field1D(TX,GF1)'' correspond aux forces externes, ''(FX,FY,FZ)'' correspond aux composantes du vecteur force, et ''fctLoad'' est une ''PieceWiseLinearFunction()'' qui sera définie dans le jeu de donnée d'utilisation du super-élément (typiquement, elle est définie comme valant 0 à $t = t_0$ et 1 à $t = t_{final}$). Attention, ceci est une première ébauche, au sens où cette manière de faire n'est valable que dans le cas d'un super-élément **sans modèle FEM attaché** à celui-ci. Dans ce cas, il faudra appliquer les forces calculées précédemment et retirer la part des forces centrifuges appliquées par le modèle FEM sur le super-élément. Ceci est du au fait que la mise en rotation centrifuge de la partie FEM sera réalisée comme avant au travers de l'''initialBalancing'' et des propriétés ''OMEGA''. Pas de changement pour la sauvegarde des matrices réduites du super-élément qui est faite à la fin de la fonction ''execute()''. Seul le nom du fichier de sauvegarde a été modifié : ''SE_.gz'' au lieu de ''step_SE_.gz''. ===== Cas-test ===== Modification du cas-test ''bladeCentrifugeLoadBSE_2.py'', de la batterie, qui teste la nouvelle fonctionnalité mais qui avait été mis provisoirement en FAILED lors du [[commit:2016:06_13|Commit 2016-06-13]]. Maintenant, dans ce cas-test, on calcule la déformation centrifuge du super-élément pâle construit dans ''bladeCentrifugeLoadBSE_1.py''; le raidissement centrifuge étant quant à lui déjà pris en compte dans les matrices réduites du super-élément. Le cas-test ''bladeCasingEngagementFSE_2.py'', est quant à lui toujours mis en FAILED, car les forces centrifuges des noeuds à l'intersection entre le modèle FEM (pâle) et le modèle super-élément (pied) doivent être prises en compte. ===== Fichiers pour cas-tests ajoutés ===== Added: oo_nda\abrawal\banc18ER\battery\tools\bladeCentrifugeLoadUseSE.py --- //[[claire.hennuyer@ulg.ac.be|Claire Hennuyer]] 2016/06/29//