Elastoplastik deformasiyaya aid altproqramlar (uyield.f90)¶
Elastoplastik sərtlik matrisini və gərginliyin return mapping hesablamasını yerinə yetirmək üçün altproqramlar təqdim olunur. İstifadəçi tərəfindən təyin olunan axma funksiyasından istifadə edərkən əvvəlcə giriş faylında !PLASTIC, YIELD=USER təyin edilməli və tələb olunan material sabitləri daxil edilməli, sonra uElastoPlasticNumStatus funksiyası və uElastoPlasticMatrix ilə uBackwardEuler altproqramları hazırlanmalıdır.
(1) Həqiqi ədəd tipli vəziyyət dəyişənlərinin sayını qaytaran funksiya¶
matl: material sabitlərini saxlayan massiv (1-100: sistem tərəfindən təyin olunan material sabitləri, 101-200: istifadəçi tərəfindən təyin olunan material sabitləri)
(2) Elastoplastik sərtlik matrisinin hesablanması altproqramı¶
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: material sabitlərini saxlayan massiv (1-100: sistem tərəfindən təyin olunan material sabitləri, 101-200: istifadəçi tərəfindən təyin olunan material sabitləri)stress: 2nd Piola-Kirchhoff gərginliyiistat: tam ədəd tipli vəziyyət dəyişənifstat: həqiqi ədəd tipli vəziyyət dəyişənləri massiviplstrain: cari altaddımın başlanğıcındakı plastik deformasiyaD: elastoplastik matristemp: temperaturhdflag: bütün komponentləri (0), yalnız deviator komponentləri (1) və ya yalnız həcm komponentlərini (2) hesablayır
(3) Gərginliyin Return mapping hesablanması altproqramı¶
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: material sabitlərini saxlayan massiv (1-100: sistem tərəfindən təyin olunan material sabitləri, 101-200: istifadəçi tərəfindən təyin olunan material sabitləri)stress: elastik deformasiya fərziyyəsindən alınan trial stress, yəni 2nd Piola-Kirchhoff gərginliyiplstrain: cari altaddımın başlanğıcındakı plastik deformasiyaistat: tam ədəd tipli vəziyyət dəyişənifstat: həqiqi ədəd tipli vəziyyət dəyişənləri massivitemp: temperaturhdflag: bütün komponentləri (0), yalnız deviator komponentləri (1) və ya yalnız həcm komponentlərini (2) hesablayır