Skip to content

Subroutine regarding User Defined Materials (umat.f)

The interface of the deformation analysis of general materials is provided irrespective of elastic, hyperelastic and elastoplastic materials. When using the user defined materials, first, it is necessary to set the !USER_MATERIAL in the input file, input the required material constants and then, create the subroutines uMatlMatrix and uUpdate.

(1) Calculation subroutine of stiffness matrix

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: Material name
  • matl: Array to save the material constants (100 max)
  • strain: Green-Lagrange strain
  • stress: 2nd Piola-Kirchhoff stress
  • fstat: State variable
  • D: Constitutive equation
  • dtime: Time increment
  • ttime: Total time at the start of the current increment
  • temperature: Temperature

(2) Update calculation subroutine of strain and stress

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: Material name
  • matl: Array to save the material constants (100 max)
  • strain: Strain
  • stress: 2nd Piola-Kirchhoff stress
  • fstat: State variable
  • dtime: Time increment
  • ttime: Total time at the start of the current increment
  • temperature: Temperature