Подпрограми за еластопластична деформация (uyield.f90)¶
Предоставят се подпрограми за изчисляване на еластопластичната матрица на коравината и за връщане на напрежението към повърхнината на текучество. При използване на потребителски дефинирана функция на текучество първо задайте !PLASTIC, YIELD=USER във входния файл и въведете необходимите материални константи, След това функцията uElastoPlasticNumStatus и подпрограмите uElastoPlasticMatrix и uBackwardEuler трябва да бъдат създадени.
(1) Функция, която връща броя на реалните променливи на състоянието¶
matl: Масив, съхраняващ материалните константи (1-100: системно дефинирани материални константи, 101-200: потребителски дефинирани материални константи)
(2) Подпрограма за изчисляване на еластопластичната матрица на коравината¶
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: Масив, съхраняващ материалните константи (1-100: системно дефинирани материални константи, 101-200: потребителски дефинирани материални константи)stress: Второ напрежение на Пиола–Кирхофistat: Целочислена променлива на състояниетоfstat: Масив от реални променливи на състояниетоplstrain: Пластична деформация в началото на текущата подстъпкаD: Еластопластична матрицаtemp: Температураhdflag: Изчисляване на всички компоненти (0), само девиаторните компоненти (1) или само обемните компоненти (2)
(3) Подпрограма за изчисляване на връщането на напрежението¶
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: Масив, съхраняващ материалните константи (1-100: системно дефинирани материални константи, 101-200: потребителски дефинирани материални константи)stress: Второ напрежение на Пиола–Кирхоф, получено при предположение за еластична деформация за пробното напрежениеplstrain: Пластична деформация в началото на текущата подстъпкаistat: Целочислена променлива на състояниетоfstat: Масив от реални променливи на състояниетоtemp: Температураhdflag: Изчисляване на всички компоненти (0), само девиаторните компоненти (1) или само обемните компоненти (2)