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 retour plastique 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: seconde contrainte de Piola-Kirchhoff
  • 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 retour plastique 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: seconde contrainte de Piola-Kirchhoff obtenue comme contrainte d’essai 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)