Subrutine pentru materiale definite de utilizator (umat.f)¶
Oferă o interfață pentru analiza deformației materialelor generale, indiferent dacă acestea sunt elastice, hiperelastice sau elastoplastice.
Pentru a utiliza un material definit de utilizator, trebuie mai întâi să setați !USER_MATERIAL în fișierul de intrare și să introduceți constantele de material necesare, apoi să creați subrutinele uMatlMatrix și uUpdate.
(1) Subrutină pentru calculul matricei de rigiditate¶
subroutine uMatlMatrix( mname, matl, strain, stress, fstat, D, dtime, ttime, temperature )
character(len=*), intent(in) :: mname
real(kind=kreal), intent(in) :: matl(:)
real(kind=kreal), intent(in) :: strain(6)
real(kind=kreal), intent(in) :: stress(6)
real(kind=kreal), intent(in) :: fstat(:)
real(kind=kreal), intent(out) :: D(:,:)
real(kind=kreal), intent(in) :: dtime
real(kind=kreal), intent(in) :: ttime
real(kind=kreal), optional :: temperature
mname: numele materialuluimatl: vector în care sunt stocate constantele de material (maximum 100)strain: deformația Green-Lagrangestress: tensiunea 2nd Piola-Kirchhofffstat: variabile de stareD: relația constitutivădtime: incrementul de timpttime: timpul total la începutul incrementului de timp curenttemperature: temperatura
(2) Subrutină pentru actualizarea deformației și tensiunii¶
subroutine uUpdate( mname, matl, strain, stress, fstat, dtime, ttime, temperature )
character(len=\*), intent(in) :: mname
real(kind=kreal), intent(in) :: matl(:)
real(kind=kreal), intent(in) :: strain(6)
real(kind=kreal), intent(inout) :: stress(6)
real(kind=kreal), intent(inout) :: fstat(:)
real(kind=kreal), intent(in) :: dtime
real(kind=kreal), intent(in) :: ttime
real(kind=kreal), optional :: temperature
mname: numele materialuluimatl: vector în care sunt stocate constantele de material (maximum 100)strain: deformațiastress: tensiunea 2nd Piola-Kirchhofffstat: variabile de staredtime: incrementul de timpttime: timpul total la începutul incrementului de timp curenttemperature: temperatura