Subrutinas para materiales definidos por el usuario (umat.f)¶
Proporciona una interfaz para el análisis de deformación de materiales generales, independientemente de que sean elásticos, hiperelásticos o elastoplásticos.
Para utilizar un material definido por el usuario, primero establezca !USER_MATERIAL en el archivo de entrada e introduzca las constantes de material necesarias y, a continuación, cree las subrutinas uMatlMatrix y uUpdate.
(1) Subrutina para calcular la matriz de rigidez¶
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: Nombre del materialmatl: Matriz que almacena las constantes del material (máximo 100)strain: Deformación de Green-Lagrangestress: Segunda tensión de Piola-Kirchhofffstat: Variables de estadoD: Relación constitutivadtime: Incremento de tiempottime: Tiempo total al inicio del incremento de tiempo actualtemperature: Temperatura
(2) Subrutina para actualizar la deformación y la tensión¶
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: Nombre del materialmatl: Matriz que almacena las constantes del material (máximo 100)strain: Deformaciónstress: Segunda tensión de Piola-Kirchhofffstat: Variables de estadodtime: Incremento de tiempottime: Tiempo total al inicio del incremento de tiempo actualtemperature: Temperatura