Subroutines for Elastoplastic Deformation (uyield.f90)¶
Subroutines are provided for calculating the elastoplastic stiffness matrix and stress return mapping.
When using a user-defined yield function, first set !PLASTIC, YIELD=USER in the input file and enter the required material constants,
then the function uElastoPlasticNumStatus and the subroutines uElastoPlasticMatrix and uBackwardEuler
must be created.
(1) Function that returns the number of real state variables¶
matl: Array storing material constants (1-100: system-defined material constants, 101-200: user-defined material constants)
(2) Subroutine for calculating the elastoplastic stiffness matrix¶
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: Array storing material constants (1-100: system-defined material constants, 101-200: user-defined material constants)stress: 2nd Piola-Kirchhoff stressistat: Integer state variablefstat: Array of real state variablesplstrain: Plastic strain at the beginning of the current substepD: Elastoplastic matrixtemp: Temperaturehdflag: Calculate all components (0), deviatoric components only (1), or volumetric components only (2)
(3) Subroutine for stress return mapping calculation¶
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: Array storing material constants (1-100: system-defined material constants, 101-200: user-defined material constants)stress: 2nd Piola-Kirchhoff stress obtained by assuming elastic deformation for the trial stressplstrain: Plastic strain at the beginning of the current substepistat: Integer state variablefstat: Array of real state variablestemp: Temperaturehdflag: Calculate all components (0), deviatoric components only (1), or volumetric components only (2)