====== Commit 2015-07-13 ====== ===== Modifications ===== ==== Méthode de mise à jour du Lagrangien augmenté tangentiel ==== La force tangentielle de contact est définie comme : $$\boldsymbol{f}_t^{(k,i)} = \boldsymbol{\lambda}_t^{(k,i)} + C_t \boldsymbol{g}_t^{(i)} $$ où * $k$ est l'indice de l'augmentation. * $i$ est l'indice de l'itération mécanique. * $\boldsymbol{f}_t$ est la force tangentielle. * $\boldsymbol{\lambda}_t$ est le vecteur lagrangien augmenté tangentiel. * $\boldsymbol{g}_t$ est le vecteur gap tangentiel. * $C_t$ est le coefficient de pénalité tangentiel. Puisque le plan de normal $\boldsymbol{n}^{(k)}$ où se trouve le vecteur $\boldsymbol{\lambda}_t^{(k)}$ ne correspond pas à priori au plan de normal $\boldsymbol{n}^{(i)}$ où se trouve le vecteur $\boldsymbol{f}_t^{(k,i)}$, nous devons le mettre à jour afin d'être cohérent (Principe d'objectivité = traitement des mouvements de rotation de corps rigide) : $$\boldsymbol{\lambda}_t^{(k,i)} = \boldsymbol{T} ( \boldsymbol{n}^{(i)}, \boldsymbol{n}^{(k)} ) \boldsymbol{\lambda}_t^{(k)} $$ où * $k$ est l'indice de l'augmentation. * $i$ est l'indice de l'itération mécanique. * $\boldsymbol{n}$ est la normale à la surface maître évaluée au point correspondant à la projection du nœud/point esclave sur l'entité maître. * $\boldsymbol{T}$ est l'opérateur de transformation. * $\boldsymbol{\lambda}_t$ est le vecteur lagrangien augmenté tangentiel. L'opérateur de transformation $\boldsymbol{T}$ est - soit une projection : $$\boldsymbol{T} ( \boldsymbol{n}^{(i)}, \boldsymbol{n}^{(k)} )= \boldsymbol{I} - \boldsymbol{n}^{(i)} \otimes \boldsymbol{n}^{(i)} $$ - soit une rotation (Formule de Rodrigues) : $$\boldsymbol{T} ( \boldsymbol{n}^{(i)}, \boldsymbol{n}^{(k)} )= \cos{\phi} \boldsymbol{I} + (1- \cos{\phi}) \boldsymbol{n} \otimes \boldsymbol{n} +\tilde{\boldsymbol{n}} \sin{\phi} $$ où * $\cos{\phi} = \boldsymbol{n}^{(k)} \times \boldsymbol{n}^{(i)}$ * $\sin{\phi} = ||\boldsymbol{n}^{(k)} \wedge \boldsymbol{n}^{(i)}||$ * $\boldsymbol{n} = \frac{\boldsymbol{n}^{(k)} \wedge \boldsymbol{n}^{(i)}}{||\boldsymbol{n}^{(k)} \wedge \boldsymbol{n}^{(i)}||}$ * $\tilde{ }$ est l'opérateur du produit vectoriel sous forme matricielle. On constate que dans le cas d'un collement parfait $\boldsymbol{g}_t = \boldsymbol{0}$, l'opérateur de rotation est exact contrairement à l'opérateur de projection. Cependant, suite à la nature itérative du lagrangien augmenté (boucle d'augmentation), la méthode avec projection n'empêche pas fondamentalement la convergence de l'algorithme du lagrangien augmenté. Dans Metafor, nous pouvons faire le choix entre ces deux méthodes (pour les matériaux de contact avec une composante tangentielle) : materset.define(1, AugLagStickingContactMaterial) materset(1).put(TANGENTAUGLAGUPDATEMETHOD, OPTION) OPTION = TALUM_ROTATION (mise à jour avec rotation) ou OPTION = TALUM_PROJECTION (mise à jour avec projection). Par défaut, nous avons toujours la méthode TALUM_PROJECTION, puisque que c'était la seule existante ... Finalement, la linéarisation cohérente de la matrice de raideur tangente de contact tient en considération les deux méthodes citées (Développement mathématique très sympathique ...) . ==== Divers - Tutorials ==== J'ai ajouté le jeux de données des projets de seconde session de cette année. ===== Fichiers ajoutés/supprimés ====== [a]:mtContact/src/TangentialAugmentedLagrangianUpdateMethod.cpp [a]:mtContact/src/TangentialAugmentedLagrangianUpdateMethod.h [r]: ===== Tests ajoutés/supprimés ===== [r]: [a]:apps/tutorials/cylinderUnderExternalPressure.py --- //[[gwautelet@ulg.ac.be|Gaëtan WAUTELET]] 2015/07/13//