콘텐츠로 이동

사용자 정의 재료용 서브루틴 (umat.f)

탄성, 초탄성 또는 탄소성 여부와 관계없이 일반 재료의 변형 해석을 위한 인터페이스를 제공합니다. 사용자 정의 재료를 사용하려면 먼저 입력 파일에 !USER_MATERIAL을 설정하고 필요한 재료 상수를 입력한 다음 uMatlMatrixuUpdate 서브루틴을 작성합니다.

(1) 강성 행렬 계산 서브루틴

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: 재료 이름
  • matl: 재료 상수를 저장하는 배열(최대 100개)
  • strain: Green-Lagrange 변형률
  • stress: 제2 Piola-Kirchhoff 응력
  • fstat: 상태 변수
  • D: 구성 관계
  • dtime: 시간 증분
  • ttime: 현재 시간 증분 시작 시점의 총 시간
  • temperature: 온도

(2) 변형률 및 응력 갱신 서브루틴

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: 재료 이름
  • matl: 재료 상수를 저장하는 배열(최대 100개)
  • strain: 변형률
  • stress: 제2 Piola-Kirchhoff 응력
  • fstat: 상태 변수
  • dtime: 시간 증분
  • ttime: 현재 시간 증분 시작 시점의 총 시간
  • temperature: 온도