Saltar a contenido

Subrutinas para deformación elastoplástica (uyield.f90)

Se proporcionan subrutinas para calcular la matriz de rigidez elastoplástica y el mapeo de retorno de tensiones. Cuando se utilice una función de fluencia definida por el usuario, primero establezca !PLASTIC, YIELD=USER en el archivo de entrada e introduzca las constantes de material necesarias, a continuación, la función uElastoPlasticNumStatus y las subrutinas uElastoPlasticMatrix y uBackwardEuler deben crearse.

(1) Función que devuelve el número de variables de estado reales

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Matriz que almacena las constantes de material (1-100: constantes de material definidas por el sistema, 101-200: constantes de material definidas por el usuario)

(2) Subrutina para calcular la matriz de rigidez elastoplástica

  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: Matriz que almacena las constantes de material (1-100: constantes de material definidas por el sistema, 101-200: constantes de material definidas por el usuario)
  • stress: Segunda tensión de Piola-Kirchhoff
  • istat: Variable de estado entera
  • fstat: Matriz de variables de estado reales
  • plstrain: Deformación plástica al comienzo del subpaso actual
  • D: Matriz elastoplástica
  • temp: Temperatura
  • hdflag: Calcula todos los componentes (0), solo los componentes desviadores (1) o solo los componentes volumétricos (2)

(3) Subrutina para el cálculo del mapeo de retorno de tensiones

  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: Matriz que almacena las constantes de material (1-100: constantes de material definidas por el sistema, 101-200: constantes de material definidas por el usuario)
  • stress: Segunda tensión de Piola-Kirchhoff obtenida suponiendo deformación elástica para la tensión de prueba
  • plstrain: Deformación plástica al comienzo del subpaso actual
  • istat: Variable de estado entera
  • fstat: Matriz de variables de estado reales
  • temp: Temperatura
  • hdflag: Calcula todos los componentes (0), solo los componentes desviadores (1) o solo los componentes volumétricos (2)