Sub-rotinas para deformação elastoplástica (uyield.f90)¶
São fornecidas sub-rotinas para calcular a matriz de rigidez elastoplástica e o return mapping da tensão.
Ao utilizar uma função de cedência definida pelo utilizador, comece por definir !PLASTIC, YIELD=USER no ficheiro de entrada e introduza as constantes de material necessárias,
devendo depois a função uElastoPlasticNumStatus e as sub-rotinas uElastoPlasticMatrix e uBackwardEuler
ser criadas.
(1) Função que devolve o número de variáveis de estado reais¶
matl: Array que armazena constantes de material (1-100: constantes de material definidas pelo sistema, 101-200: constantes de material definidas pelo utilizador)
(2) Sub-rotina para calcular a 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: Array que armazena constantes de material (1-100: constantes de material definidas pelo sistema, 101-200: constantes de material definidas pelo utilizador)stress: 2.ª tensão de Piola-Kirchhoffistat: Variável de estado inteirafstat: Array de variáveis de estado reaisplstrain: Extensão plástica no início do subpasso atualD: Matriz elastoplásticatemp: Temperaturahdflag: Calcular todas as componentes (0), apenas as componentes desviadoras (1) ou apenas as componentes volumétricas (2)
(3) Sub-rotina para o cálculo do return mapping da tensão¶
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 que armazena constantes de material (1-100: constantes de material definidas pelo sistema, 101-200: constantes de material definidas pelo utilizador)stress: 2.ª tensão de Piola-Kirchhoff obtida assumindo deformação elástica para a tensão de ensaioplstrain: Extensão plástica no início do subpasso atualistat: Variável de estado inteirafstat: Array de variáveis de estado reaistemp: Temperaturahdflag: Calcular todas as componentes (0), apenas as componentes desviadoras (1) ou apenas as componentes volumétricas (2)