Subroutine per la deformazione elastoplastica (uyield.f90)¶
Sono fornite subroutine per calcolare la matrice di rigidezza elastoplastica e il return mapping delle tensioni.
Quando si utilizza una funzione di snervamento definita dall'utente, impostare innanzitutto !PLASTIC, YIELD=USER nel file di input e inserire le costanti del materiale necessarie,
quindi la funzione uElastoPlasticNumStatus e le subroutine uElastoPlasticMatrix e uBackwardEuler
devono essere create.
(1) Funzione che restituisce il numero di variabili di stato reali¶
matl: Array che memorizza le costanti del materiale (1-100: costanti del materiale definite dal sistema, 101-200: costanti del materiale definite dall'utente)
(2) Subroutine per il calcolo della matrice di rigidezza elastoplastica¶
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: Array che memorizza le costanti del materiale (1-100: costanti del materiale definite dal sistema, 101-200: costanti del materiale definite dall'utente)stress: Tensione di 2° Piola-Kirchhoffistat: Variabile di stato interafstat: Array di variabili di stato realiplstrain: Deformazione plastica all'inizio del substep correnteD: Matrice elastoplasticatemp: Temperaturahdflag: Calcola tutti i componenti (0), solo i componenti deviatorici (1) o solo i componenti volumetrici (2)
(3) Subroutine per il calcolo del return mapping delle tensioni¶
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: Array che memorizza le costanti del materiale (1-100: costanti del materiale definite dal sistema, 101-200: costanti del materiale definite dall'utente)stress: Tensione di 2° Piola-Kirchhoff ottenuta assumendo una deformazione elastica per la trial stressplstrain: Deformazione plastica all'inizio del substep correnteistat: Variabile di stato interafstat: Array di variabili di stato realitemp: Temperaturahdflag: Calcola tutti i componenti (0), solo i componenti deviatorici (1) o solo i componenti volumetrici (2)