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¶
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-Kirchhoffistat: Variable de estado enterafstat: Matriz de variables de estado realesplstrain: Deformación plástica al comienzo del subpaso actualD: Matriz elastoplásticatemp: Temperaturahdflag: 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 pruebaplstrain: Deformación plástica al comienzo del subpaso actualistat: Variable de estado enterafstat: Matriz de variables de estado realestemp: Temperaturahdflag: Calcula todos los componentes (0), solo los componentes desviadores (1) o solo los componentes volumétricos (2)