Aller au contenu

Sous-routines relatives à la déformation élastoplastique (uyield.f90)

Des sous-routines sont fournies pour calculer la matrice de rigidité élastoplastique et le return mapping des contraintes. Lorsqu’une fonction de charge définie par l’utilisateur est utilisée, il faut d’abord définir !PLASTIC, YIELD=USER dans le fichier d’entrée et saisir les constantes de matériau nécessaires, puis créer la fonction uElastoPlasticNumStatus ainsi que les sous-routines uElastoPlasticMatrix et uBackwardEuler qui sont nécessaires.

(1) Fonction renvoyant le nombre de variables d’état réelles

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: tableau contenant les constantes de matériau (1-100 : constantes de matériau définies par le système, 101-200 : constantes de matériau définies par l’utilisateur)

(2) Sous-routine de calcul de la matrice de rigidité élastoplastique

  subroutine uElastoPlasticMatrix( matl, stress, istat, fstat, plstrain, D, temp, hdflag )
    real(kind=kreal),   intent(in)  :: matl(:)
    real(kind=kreal),   intent(in)  :: stress(6)
    integer(kind=kint), intent(in)  :: istat
    real(kind=kreal),   intent(in)  :: fstat(:)
    real(kind=kreal),   intent(in)  :: plstrain
    real(kind=kreal),   intent(out) :: D(:,:)
    real(kind=kreal),   intent(in)  :: temp
    integer(kind=kint), intent(in)  :: hdflag
  • matl: tableau contenant les constantes de matériau (1-100 : constantes de matériau définies par le système, 101-200 : constantes de matériau définies par l’utilisateur)
  • stress: contrainte de Piola-Kirchhoff de 2e espèce
  • istat: variable d’état entière
  • fstat: tableau des variables d’état réelles
  • plstrain: déformation plastique au début de la sous-étape courante
  • D: matrice élastoplastique
  • temp: température
  • hdflag: calcule toutes les composantes (0), uniquement les composantes déviatoriques (1) ou uniquement les composantes volumiques (2)

(3) Sous-routine de calcul du Return mapping des contraintes

  subroutine uBackwardEuler( matl, stress, plstrain, istat, fstat, temp, hdflag )
    real(kind=kreal),   intent(in)    :: matl(:)
    real(kind=kreal),   intent(inout) :: stress(6)
    real(kind=kreal),   intent(in)    :: plstrain
    integer(kind=kint), intent(inout) :: istat
    real(kind=kreal),   intent(inout) :: fstat(:)
    real(kind=kreal),   intent(in)    :: temp
    integer(kind=kint), intent(in)    :: hdflag
  • matl: tableau contenant les constantes de matériau (1-100 : constantes de matériau définies par le système, 101-200 : constantes de matériau définies par l’utilisateur)
  • stress: contrainte de Piola-Kirchhoff de 2e espèce obtenue comme trial stress en supposant une déformation élastique
  • plstrain: déformation plastique au début de la sous-étape courante
  • istat: variable d’état entière
  • fstat: tableau des variables d’état réelles
  • temp: température
  • hdflag: calcule toutes les composantes (0), uniquement les composantes déviatoriques (1) ou uniquement les composantes volumiques (2)