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¶
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èceistat: variable d’état entièrefstat: tableau des variables d’état réellesplstrain: déformation plastique au début de la sous-étape couranteD: matrice élastoplastiquetemp: températurehdflag: 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 élastiqueplstrain: déformation plastique au début de la sous-étape couranteistat: variable d’état entièrefstat: tableau des variables d’état réellestemp: températurehdflag: calcule toutes les composantes (0), uniquement les composantes déviatoriques (1) ou uniquement les composantes volumiques (2)