Subroutine per materiali definiti dall'utente (umat.f)¶
Fornisce un'interfaccia per l'analisi della deformazione di materiali generici, indipendentemente dal fatto che siano elastici, iperelastici o elastoplastici.
Per utilizzare un materiale definito dall'utente, impostare innanzitutto !USER_MATERIAL nel file di input e inserire le costanti del materiale necessarie, quindi creare le subroutine uMatlMatrix e uUpdate.
(1) Subroutine per il calcolo della matrice di rigidezza¶
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: Nome del materialematl: Array che memorizza le costanti del materiale (massimo 100)strain: Deformazione di Green-Lagrangestress: Seconda tensione di Piola-Kirchhofffstat: Variabili di statoD: Relazione costitutivadtime: Incremento temporalettime: Tempo totale all'inizio dell'incremento temporale correntetemperature: Temperatura
(2) Subroutine per l'aggiornamento di deformazione e tensione¶
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: Nome del materialematl: Array che memorizza le costanti del materiale (massimo 100)strain: Deformazionestress: Seconda tensione di Piola-Kirchhofffstat: Variabili di statodtime: Incremento temporalettime: Tempo totale all'inizio dell'incremento temporale correntetemperature: Temperatura