J'ai introduit une structure permettant de stocker des variables permettant de calculer la matrice de raideur tangente et/ou nécessaire au calcul des forces de contact, mais pas indispensable au passage d'un pas de temps à un autre (En fait, ces variables ne sont pas sauvegardées dans les archives !).
Pour introduire cette nouvelle structure, il fut nécessaire de déléguer des opérations aux matériaux pour ne pas manipuler les ContactGPStates et/ou les ContactGPKStates directement au sein de l'élément de contact et/ou de la méthode de contact (Mise à jour du point de collement en général et dans le cas particulier de l'ALE dans la configuration remaillée).
Il est à noter que certaines variables liées au schéma d'intégration conservatif ont été placées dans une structure à part, le ContactGPCKState.
Cette gestion de la mémoire plus intelligente est nécessaire, puisque nous avons un ContactGPState pour le temps t0, le temps t1 et la prise de contact (ce qui fait que certaines variables étaient stockées trois fois, au lieu d'une seule fois !).
J'ai effectué une réécriture complète des variables stockées dans les ContactGPStates de contact, notamment d'indiquer clairement que c'est la pression de contact et le cisaillement de contact qui sont stockés, et non la force normale et la force tangentielle de contact.
Le calcul de la dissipation d'énergie suite au frottement a été adapté dans le cas du matériau avec frottement selon Coulomb avec le Lagrangien Augmenté, puisque que les hypothèses menant une forme simplifiée dans le cas de la Pénalité ne sont plus valables.
Dans la suite du commit, il faut
[a]: mtContact/src/AugLagFrictionalMechanicalContactGpkState.cpp [a]: mtContact/src/AugLagFrictionalMechanicalContactGpkState.h [a]: mtContact/src/AugLagNormalMechanicalContactGpckState.cpp [a]: mtContact/src/AugLagNormalMechanicalContactGpckState.h [a]: mtContact/src/AugLagNormalMechanicalContactGpkState.cpp [a]: mtContact/src/AugLagNormalMechanicalContactGpkState.h [a]: mtContact/src/AugLagTangentialMechanicalContactGpkState.cpp [a]: mtContact/src/AugLagTangentialMechanicalContactGpkState.h [a]: mtContact/src/FrictionalMechanicalContactGpkState.cpp [a]: mtContact/src/FrictionalMechanicalContactGpkState.h [a]: mtContact/src/TangentialMechanicalContactGpkState.cpp [a]: mtContact/src/TangentialMechanicalContactGpkState.h [a]: mtContact/src/MechanicalContactGpckState.cpp [a]: mtContact/src/MechanicalContactGpckState.h [a]: mtContact/src/MechanicalContactGpkState.cpp [a]: mtContact/src/MechanicalContactGpkState.h [a]: mtContact/src/NormalMechanicalContactGpckState.cpp [a]: mtContact/src/NormalMechanicalContactGpckState.h [a]: mtContact/src/NormalMechanicalContactGpkState.cpp [a]: mtContact/src/NormalMechanicalContactGpkState.h [r]:
[r]: [a]:
— Gaëtan WAUTELET 2014/11/25