Subroutines for User-Defined Materials (umat.f)¶
Provides an interface for deformation analysis of general materials, regardless of whether they are elastic, hyperelastic, or elastoplastic.
To use a user-defined material, first set !USER_MATERIAL in the input file and enter the required material constants, and then create the uMatlMatrix and uUpdate subroutines.
(1) Subroutine for Calculating the 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 namematl: Array storing material constants (maximum 100)strain: Green-Lagrange strainstress: 2nd Piola-Kirchhoff stressfstat: State variablesD: Constitutive relationdtime: Time incrementttime: Total time at the start of the current time incrementtemperature: Temperature
(2) Subroutine for Updating 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 namematl: Array storing material constants (maximum 100)strain: Strainstress: 2nd Piola-Kirchhoff stressfstat: State variablesdtime: Time incrementttime: Total time at the start of the current time incrementtemperature: Temperature