» 블로그 » 블로그 » All About UMAT & VUMAT in Abaqus [Free PDF + Examples]

All About UMAT & VUMAT in Abaqus [Free PDF + Examples]

In this article you will read

목차

Main Article

Last updated on:

What Are UMAT and VUMAT in Abaqus? Abaqus UMAT (User Material) and 아바쿠스 VUMAT are Fortran-based subroutines used to define custom constitutive material models in Abaqus/Standard and Abaqus/Explicit, respectively. They allow engineers and researchers to program advanced mechanical behaviors—such as complex elasticity, plasticity, and composite damage—when built-in Abaqus material libraries are insufficient.

이것 CAE 보조원 guide provides a definitive roadmap for developing, implementing, and executing these subroutines. By exploring input/output architectures, step-by-step coding for elastic and orthotropic models, and a direct UMAT vs. VUMAT comparison, readers will gain the practical expertise needed to write accurate custom algorithms. Access the provided free PDF guides and Fortran code templates to accelerate advanced material modeling projects.

UMAT / VUMAT 비디오 연습

 

UMAT/VUMAT 오디오 팟캐스트

서브루틴 유형 솔버 인터페이스 주요 출력 변수 주요 입력 변수 야코비안 요구사항 애플리케이션 사용 사례 벡터화 지원 상태 변수(SDV) 용량
유맷 Abaqus/표준(암시적) 스트레스, DDSDDE, STATEV, SSE, SPD, SCD STRAN, DSTRAN, PROPS, TIME, DTIME, TEMP, DFGRD0, DFGRD1 필수 (일관된 접선 강성) 정적, 소성, 크리프, 점탄성 벡터화되지 않음 *DEPVAR(NSTATV)
부마트 Abaqus/명시적 스트레스뉴, 스테이트뉴, 에너지인터뉴, 에너지리넬라스뉴 변형률, 지지력, 밀도, 변위, 응력 필요하지 않음 충격, 충돌, 큰 변형 NBLOCK 벡터화됨 *DEPVAR (NSTATEV)

 

What Are UMAT and VUMAT in Abaqus?

Abaqus에는 다양한 기본 재질이 포함되어 있지만 실제 프로젝트에서는 이것만으로는 충분하지 않은 경우가 많습니다. 이것이 엔지니어가 사용하는 이유입니다. 사용자 서브루틴. 와 함께 아바쿠스 UMAT 그리고 아바쿠스 VUMAT, 포트란으로 직접 재료 모델을 작성하여 솔버에 직접 연결할 수 있습니다. 간단히 말해, Abaqus에 재료가 변형될 때 어떻게 반응하는지 알려주는 것입니다.

다음과 같이 생각해 보세요. Abaqus가 단계를 수행할 때마다 서브루틴을 호출하고 다음과 같이 묻습니다., “"업데이트된 응력은 무엇이고, 재료는 어떻게 반응해야 합니까?"” 에서 유맷, 이것은 암묵적 솔버(Abaqus/Standard) 내부에서 발생합니다. 부마트, 이는 명시적 솔버(Abaqus/Explicit) 내부에서 발생합니다.

  • 유맷: Abaqus/Standard를 사용하여 정적 또는 저속 하중 문제에 가장 적합합니다. 또한 재료 야코비안(탄젠트 강성)을 제공하여 수렴 속도를 높입니다.

  • 부마트: Abaqus/Explicit으로 실행되며, 충돌, 충격 또는 대변형과 같은 동적 이벤트에 적합합니다. 여러 지점의 블록 응력을 한 번에 업데이트합니다.

Abaqus 표준의 UMAT 역할

그림 1: UMAT 서브루틴 워크플로

일반적인 학습 경로

처음부터 시작하는 경우 일반적인 경로는 간단합니다.

  1. ~로 시작하다 기본 탄성 모델 (구조를 배우고 설정을 테스트할 수 있습니다).

  2. 복잡성을 단계적으로 추가합니다. 가소성, 경화 또는 점탄성 거동입니다.

  3. 익숙해지면 손상, 실패 또는 비율 종속 효과를 포함하도록 코드를 확장하세요.

  4. 마지막으로, 문제에 역학이나 대규모 변형이 관련된 경우 UMAT 논리를 VUMAT로 이식해 보세요.

이 블로그에서는 그 첫 단계, 즉 최소한의 탄력적 UMAT을 작성하고 테스트하는 과정을 안내합니다. 그리고 동일한 아이디어가 VUMAT으로 어떻게 확장되는지 보여드립니다. 블로그를 마치면 이론뿐만 아니라 더욱 발전된 모델로 발전하는 데 필요한 워크플로우까지 알게 될 것입니다.

What included in this 무료 다운로드 가능한 파일?

교육 비디오

파이썬 스크립트

Inp File

포트란 서브루틴

PDF

Free Example

Verification of Results

Matlab Code

Software Code

Modeling File

Presentation Slide

 

How to Prepare for Writing Abaqus Subroutines

코딩을 시작하기 전에 아바쿠스 UMAT 또는 아바쿠스 VUMAT, 몇 가지 기본 사항을 숙지해 두세요. 걱정하지 마세요. 포트란 전문가나 전업 이론가가 될 필요는 없습니다. 하지만 탄탄한 기초가 있으면 삶이 훨씬 수월해집니다.

1) Know Your Material Model Theory:

가장 중요한 단계는 재료 모델의 이론을 명확하게 이해하는 것입니다. 예를 들어, 탄성을 구현하는 경우 응력-변형률 법칙과 강성 정의 방법을 알아야 합니다. 소성을 구현하는 경우 항복 함수, 유동 법칙, 그리고 경화 법칙을 알아야 합니다. 이러한 지식이 없으면 오류가 이론에서 비롯된 것인지 코드에서 비롯된 것인지 알 수 없습니다.

2) Core Finite Element Concepts:

Since UMAT and VUMAT work at the integration point level, you need to be familiar with:

  • 응력 및 변형률 증가

  • State variables (history variables carried between increments)

  • Jacobian/tangent stiffness (DDSDDE Matrix) (important in UMAT for convergence)

3) Tools You’ll Need:

마지막으로, 적절한 코딩 환경이 필요합니다.

  • 작업 중 포트란 컴파일러 (Intel oneAPI는 오늘날 일반적입니다): Fortran 작업 방법을 알아보려면 이 무료 블로그를 읽어보세요. 아바쿠스 포트란 “서브루틴 작성을 위한 "필수 정보"

  • Abaqus를 설치하고 컴파일러에 연결했습니다. 이 블로그를 읽고 Abaqus와 Fortran을 연결하는 방법을 알아보세요. Abaqus Fortran 연결

  • 코딩을 위한 텍스트 편집기 또는 IDE(Notepad++ 또는 Visual Studio Code와 같은 간단한 편집기가 잘 작동함)

이러한 기본 사항을 준비하면 불필요한 장애물 없이 첫 번째 UMAT 또는 VUMAT 코딩으로 순조롭게 넘어갈 수 있습니다.

아바쿠스 UMAT

DDSDDE Matrix & Newton-Raphson Method | Why They Matter?

In Abaqus/Standard, the solution is obtained using an iterative scheme known as the Newton-Raphson method. At each increment, Abaqus tries to satisfy equilibrium by updating displacements and stresses. The DDSDDE matrix plays a key role in this process. It represents the sensitivity of stress to strain changes. In simple terms, it tells the solver:

If strain changes slightly, how will stress respond?

A correct DDSDDE leads to:

  • Faster convergence
  • Fewer iterations
  • More stable simulations

On the other hand, an inaccurate DDSDDE can cause:

  • Slow convergence
  • Divergence errors
  • Excessive increment cutbacks

For nonlinear materials (plasticity, damage), DDSDDE must be consistent with the integration algorithm, not just an approximation.

[/vc_column_text][/vc_column][/vc_row]

당신이 글을 쓸 때 아바쿠스 UMAT, 사실상 계약을 작성하는 것과 같습니다. Abaqus가 특정 변수를 코드에 전달하면, 사용자는 이를 사용하여 재료 응답을 계산하고, 그 결과를 Abaqus로 반환합니다. 이러한 데이터 교환을 이해하는 것은 사용자 서브루틴을 편안하게 사용하기 위한 첫 번째 중요한 단계입니다.

Abaqus는 매 단계마다 현재 변형률, 시간, 재료 상수, 상태 변수를 UMAT에 전송합니다. 여러분의 작업은 다음과 같습니다.

  1. 이 정보를 사용하여 새 것을 계산합니다. 스트레스 그리고 탄젠트 강성.

  2. 재료에 메모리(가소성, 손상 등)가 있는 경우 기록 변수를 업데이트합니다.

  3. 이 결과를 Abaqus로 다시 보내면 분석을 계속할 수 있습니다.

Quick Cheat Sheet (Big Picture First)

심층적으로 살펴보기 전에 작성 시 직면하게 될 변수에 대한 간략한 개요를 살펴보겠습니다. 아바쿠스 UMAT.

공식 문서에서는 UMAT 매개변수를 세 그룹으로 분류합니다.

  • 정의할 변수: 계산하여 반환해야 하는 내용(예: STRESS, DDSDDE).

  • 정보를 위해 전달된 변수: Abaqus에서 제공하는 기능(예: STRAN, DSTRAN, PROPS).

  • 업데이트할 수 있는 변수: 시간이 지남에 따라 진화할 수 있는 하이브리드 변수(예: STATEV, 에너지 변수).

하지만 우리는 여러분을 위해 간단하게 만들었습니다:

팁: 코딩을 처음 시작할 때 이 표를 참고해 보세요. Abaqus에서 제공하는 내용과 반환해야 할 내용을 빠르게 파악하는 데 도움이 됩니다.

Consistent Jacobian and Convergence

UMAT 점수는 정확해야 합니다. 야코비 행렬(DDSDDE) 빠른 수렴을 보장하기 위해, 이 행렬은 변형률 변화에 대한 응력 변화를 나타냅니다. "일관된" 야코비안 행렬을 사용하면 Abaqus/Standard 솔버가 이를 달성할 수 있습니다. 이차 수렴,결과적으로 시뮬레이션이 훨씬 빠르게 완료됩니다. 이 행렬을 근사화하면 수렴 속도가 느려지거나 심지어 솔버 오류가 발생할 수 있습니다.

하는 동안 유맷 암묵적 솔버에서 작동합니다., 아바쿠스 VUMAT 의 대응물입니다 명시적 솔버. 즉, 충돌 시뮬레이션, 고속 충돌 또는 파동 전파와 관성이 지배적인 성형 과정과 같이 매우 동적인 문제에 맞춰져 있다는 의미입니다.

업데이트 대신 한 번에 하나의 통합 지점 UMAT와 마찬가지로 VUMAT도 처리합니다. 배치 내 여러 통합 지점. 이렇게 하면 명시적 동역학의 효율성이 향상되지만, 코드를 약간 다르게 구성해야 한다는 의미이기도 합니다.

철학은 변함없습니다. Abaqus는 변형률, 상태 변수, 재료 상수를 제공하고, 코드는 응력, 업데이트된 상태, 에너지를 반환합니다. 하지만 명시적 동역학에는 접선 강성이 필요하지 않으므로 DDSDDE는 없습니다.

그림 2는 Abaqus와 VUMAT이 중요한 재료 변수를 공유하고 업데이트하여 어떻게 함께 작동하는지 보여줍니다. 이 과정을 간단히 설명하면 다음과 같습니다. Abaqus는 재료의 현재 상태를 나타내는 응력, 온도 및 상태 의존 변수와 같은 기존 변수를 전달합니다. 이러한 변수는 VUMAT 계산의 시작점이 됩니다.  

VUMAT은 사용자 정의 방정식을 사용하여 이러한 입력을 받아 응력, 온도 및 기타 상태 변수에 대한 새로운 값을 계산합니다. VUMAT은 이 정보를 처리한 후, 추가 분석을 위해 업데이트된 변수를 Abaqus로 다시 전송하고 시뮬레이션을 원활하게 진행합니다.

VUMAT 작동 방식

그림 2: VUMAT 작동 방식

Quick Cheat Sheet for VUMAT (Big Picture First)

Abaqus/Explicit은 VUMAT를 호출합니다. 옛 주 (스트레스, 상태오래된, 에너지 등), 운동학 업데이트 (스트레인 주식회사, 렐스핀 주식회사, defgradOld/New, stretchOld/New), 그리고 단계 정보.
당신의 직업: 컴퓨팅 스트레스새로운, 주새로운, 그리고 선택적으로 enerInternNew 그리고 enerInelasNew, 을 위한 블록의 물질 지점. 그런 다음 Abaqus는 시간 진행을 계속합니다.

VUMAT가 다루는 내용은 다음과 같습니다.

팁: 코딩을 처음 시작할 때 이 표를 참고해 보세요. Abaqus에서 제공하는 내용과 반환해야 할 내용을 빠르게 파악하는 데 도움이 됩니다.

✅ The Most Crucial Output: The DDSDDE Matrix

Among all UMAT outputs, DDSDDE is the most critical one for implicit analysis.
While stress (STRESS) defines the current material state, DDSDDE controls how efficiently Abaqus can reach that state. Think of it this way:

STRESS → tells Abaqus “where you are”

DDSDDE → tells Abaqus “how to get there faster”

A poorly defined DDSDDE may still produce correct results, but:

  • Simulation time increases significantly
  • Convergence becomes unreliable

For advanced models (plasticity, viscoelasticity), deriving DDSDDE analytically is strongly recommended.

Numerical Stability and Integration Methods

UMAT를 작성하려면 응력-변형률 법칙을 정의하는 것 이상의 작업이 필요합니다. 구성율 방정식을 증분 형태로 변환해야 합니다. 대부분의 전문가들은 다음 방식을 선호합니다. 후방 오일러(암시적) UMAT에 대한 적분 방법입니다. 이 방법은 무조건적으로 안정적입니다. 그러나 뉴턴-랩슨 방법처럼 국소적인 반복 계산이 필요한 경우가 많습니다. 이와 대조적으로, 전방 오일러(명시적) 이 방법은 더 간단하지만 안정성 한계가 있습니다. 변형률 증가량이 이 한계를 초과하면 결과가 잘못됩니다.

How to Write Your First UMAT Subroutine in Fortran

When learning Abaqus UMAT for the first time, it helps to practice with well-structured benchmark problems. here, we present two examples which you can start writing your first UMAT subroutine with and the step-by-step tutorial of both examples are available to you ~에 무료 UMAT 튜토리얼 PDF 파일.

here we just see the problem descripotion and the subroutines of the examples:

예 1: 강제 변위를 받는 탄성 보

  • 기하학: C3D8 요소로 모델링된 50×50×400 솔리드 빔.

  • 경계 조건: 한쪽 끝은 고정되어 있고, 다른 쪽 끝은 세로 방향으로 변위되어 있습니다.

  • 재료 : 등방성 선형 탄성 (이자형, ν).

  • 목적: UMAT 탄력적 구현이 Abaqus의 내장 구현과 일치하는지 확인합니다. 탄력 있는 재료.

  • 서브루틴: 응력 업데이트와 강성 행렬이 명시적으로 코딩된 표준 등방성 탄성 UMAT입니다.

강제 변위 하의 탄성 보

포트란 Fortran — UMAT: 강제 변위 하의 탄성 빔
   서브루틴 UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT, 2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, 4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME 치수 스트레스(NTENS),STATEV(NSTATV), 1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS), 2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3), 4 JSTEP(4) REAL*8 EMOD,ENU,EBULK3,EG2,EG,EG3,ELAM,ONE,TWO,THREE ONE=1.0 TWO=2.0 THREE=3.0 C ---------------------------------------------------------------- C 등방성 탄성도에 대한 UMAT C는 평면 응력 C에 사용할 수 없습니다. ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (7, *) '이 UMAT는 3을 갖는 요소 1에만 사용할 수 있습니다. 직접 응력 구성 요소의 호출 XIT ENDIF C C 탄성 속성 EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(ONE-TWO*ENU) EG2=EMOD/(ONE+ENU) EG=EG2/TWO EG3=THREE*EG ELAM=(EBULK3-EG2)/THREE print*,'ELAM',ELAM CC 탄성 강성 C DO K1=1,NDI DO K2=1,NDI DDSDDE(K2,K1)=ELAM END DO DDSDDE(K1,K1)=EG2+ELAM END DO DO K1=NDI+1, NTENS DDSDDE(K1,K1)=EG END DO C C 응력 계산 C DO K1=1, NTENS DO K2=1, NTENS STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1) END DO END DO C RETURN END

Want to learn how to implement these cases? Get free access to these tutorials and 11 specialized workshops in our Free UMAT & VUMAT course.

예제 2: 사이-힐 기준(평면 응력)을 적용한 직교성 층류

  • 기하학: 복합 층을 나타내는 2D 평면 응력 요소입니다.

  • 재료: 3개의 독립 상수를 갖는 직교 탄성체.

  • 추가 기능: 실패는 UMAT 내부의 Tsai-Hill 기준을 사용하여 평가됩니다.

  • 목적: UMAT이 Abaqus 내장 라이브러리보다 더욱 진보된 재료 거동을 어떻게 처리할 수 있는지 보여줍니다.

  • 서브루틴: 포트란으로 코딩된 추가적인 파손 검사가 포함된 직교 응력-변형률 법칙.

Tsai–Hill 기준(평면 응력)을 적용한 직교성 층류

포트란 Fortran — UMAT: Tsai–Hill 기준(평면 응력)을 적용한 직교성 층류
      서브루틴 UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT, 2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, 4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME 치수 스트레스(NTENS),STATEV(NSTATV), 1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS), 2 STRAN(NTENS), DSTRAN(NTENS), TIME(2), PREDEF(1), DPRED(1), 3 PROPS(NPROPS), COORDS(3), DROT(3,3), DFGRD0(3,3), DFGRD1(3,3), 4 JSTEP(4) REAL*8 E1,E2,V12,V21,G12,D11,D22,D66,CFULL(3,3),Y,X,Z,R,F11,F22, 1F12,F66,F1,F2,F6,XT,XC,YT,YC,SU12 C= ... PRINT*,' E2', E2 V21=(E2/E1)*V12 R=1.0/(1.0-(V12*V21)) D11=E1*R D22=E2*R D66=G12 D12=E2*V12*R C================================================================================== C 저하된 강성 매트릭스 채우기 C========================================================================================= DO K1=1,3 DO K2=1,3 DDSDDE(K2,K1)=0.0 END DO END DO DDSDDE(1,1)=D11 DDSDDE(1,2)=D12 DDSDDE(2,2)=D22 DDSDDE(1,3)=0.0 DDSDDE(2,3)=0.0 DDSDDE(3,3)=D66 DDSDDE(2,1)=D12 DDSDDE(3,1)=0.0 DDSDDE(3,2)=0.0 C= ... C= ... F11=1.0/(X**2.0) F1=0.0 F12=-1.0/(2.0*(X**2.0)) F22=1.0/(Y**2.0) F2=0.0 F66=1.0/(SU12**2.0) F6=0.0 C 파괴면 F=F11*(응력(1))**2+F22*((응력(2))**2)+F66*((응력(3))**2 1)+2.0*F12*응력(1)*응력(2)+F1*응력(1)+F2*응력(2)+F6* 2응력(3) STATEV(1)=SQRT(F) 복귀 끝

Using Abaqus Utility Routines

모든 것을 처음부터 코딩하지 마세요. Abaqus는 내장 기능을 제공합니다. 유틸리티 루틴 복잡한 작업을 단순화하기 위해. 예를 들어, 사용 로치그 대변형 해석 중 텐서 상태 변수를 회전시키기 위해, 또한 다음을 사용할 수 있습니다. 신비 응력 불변량을 계산하기 위해 또는 스프린트 주요 지침의 경우, 이러한 도구는 코딩 오류를 줄이고 기술적 깊이를 유지하는 데 도움이 됩니다.

Abaqus에서의 구현 및 컴파일

UMAT를 성공적으로 개발한 후에는 코드를 Abaqus에 통합하여 Abaqus 해석을 올바르게 컴파일해야 합니다. Abaqus 작업을 정의할 때 개발된 UMAT을 추가할 수 있습니다. 작업을 제출하면 UMAT은 Abaqus에 의해 자동으로 실행 파일로 컴파일되어 FEA 시뮬레이션을 실행하는 데 사용될 수 있습니다.

일반적으로 Abaqus/CAE에서 FEM 모델을 정의한 후, Abaqus/CAE에서 UMAT를 분석에 통합하기 위해 4단계를 더 거쳐야 합니다.

1. Define a User Material

Abaqus에서 UMAT을 재료 모델로 사용한다고 가정해 보겠습니다. 개입이 없다면 Abaqus의 다른 재료 모델을 사용할 수도 있습니다. 예를 들어, Abaqus 자체 탄성 모델을 사용하면서 UMAT을 개발하여 매우 구체적인 소성 모델을 모델링할 수 있습니다.

에서 재산 모듈에서 재료를 정의할 때 일반적인 탭 선택 사용자 자료. 그게 당신이 해야 할 전부입니다.

Abaqus-CAE에서 사용자 재료 정의

그림 3: Abaqus CAE에서 사용자 재료 정의

2. Define inputs (Mechanical Constants) for UMAT in Abaqus

선택할 때 사용자 자료 문제에 대한 재료 모델로 원하는 만큼 많은 상수를 추가할 수 있습니다. 데이터 섹션. 아래에 입력하세요 기계적 상수 UMAT에 전달하려는 값입니다. 데이터를 입력한 후 Enter 키를 눌러 새 행을 추가할 수 있습니다. 이 값은 UMAT을 통해 액세스할 수 있습니다. 소품 배열(PROPS(1), PROPS(2),…).

3. Define the No. of state variables

많은 기계적 구성 모델에는 저장이 필요할 수 있습니다. 솔루션 종속 상태 변수(SDV) 소성 변형률, 역응력, 포화값 등을 속도 구성형으로 표현하거나 적분형으로 작성된 이론에 대한 과거 데이터를 사용할 수 있습니다. 이러한 변수에 대한 저장 공간은 관련 재료 정의에 할당해야 합니다. 상태 변수의 개수에는 제한이 없습니다.
각 지점에 필요한 이러한 변수의 개수는 재료 정의의 일부로 입력됩니다. Abaqus/CAE에서 재료를 정의할 때 속성 모듈에서 일반적인 탭 선택 데프바르. 그런 다음 필요한 수량을 선택하십시오. 솔루션에 따라 달라지는 상태 변수의 수입니다.

Abaqus/CAE UMAT에서 Depvar 정의 | 그림 4: Abaqus/CAE UMAT에서 Depvar 정의

상태 변수는 출력 데이터베이스로 출력될 수 있습니다(.오디비) 출력 식별자를 사용하는 파일 에스디비. 작업 완료 후 Abaqus에서 시각화하도록 요청할 수 있습니다. 스텝 모듈, 분석 유형을 정의한 후 필드 출력 관리자, 편집할 수 있습니다 F-출력-1 Abaqus에 의해 자동으로 생성됨:

요청-SDV-in-Field-Output

그림 5: 필드 출력에서 SDV 요청

기억하세요 에스디비 ~에 아바쿠스/CAE 와 정확히 동일하다 스테이트브 ~에 Abaqus 서브루틴 인터페이스. 이는 단지 Abaqus 개발자들이 명명하는 방식의 차이일 뿐입니다.

4. Give the Path of UMAT to Abaqus

다른 서브루틴과 마찬가지로 Abaqus 작업을 생성할 때는 UMAT의 경로를 Abaqus로 지정해야 합니다. 그러면 Abaqus가 해당 서브루틴을 읽고 반복마다 DDSDDE 행렬을 업데이트합니다. 서브루틴이 포함된 Fortran 소스 파일의 이름을 지정하여 모델에 하나 이상의 UMAT를 포함할 수 있습니다.

예: 등방성 선형 탄성 재료(구현)

6절에서 논의할 것처럼 (UMAT 결과 검토), 먼저 단일 요소 모드의 단순 장력(변위 기반)과 같은 매우 간단한 모델에서 시작합니다. UMAT이 없는 다른 모델과 마찬가지로 Abaqus/CAE에서 FEM 모델을 구축한 후, (이 간단한 UMAT에서는 상태 변수가 필요하지 않습니다) 다음과 같은 작업을 수행합니다.

1. 속성 모듈에서 사용자 자료 정의

2. 탄성 모델 UMAT에 대한 입력으로 두 개의 기계 상수 E와 Nu를 정의합니다.

3. 작업을 정의할 때 Abaqus에 서면 UMAT의 경로를 제공합니다.

5. Testing and debugging UMAT Abaqus subroutine

Abaqus에서 UMAT을 작성하는 것은 Fortran에서 코드를 개발하는 것과 똑같다는 점을 명심하세요. 코드 입력을 마치면 바로 본론으로 들어가게 됩니다! 처음 실행 후에는 컴파일 오류가 발생하거나, 컴파일러가 DDSDDE Matrix 구조체나 DDSDDE Matrix의 중첩 루프 등에 대해 경고할 수 있습니다. 인내심을 가지세요. 이는 숙련된 UMAT 개발자에게도 매우 정상적인 현상입니다.

컴파일 중 문제 발생 Job Monitor 오류

그림 6: 작업 모니터에서 컴파일 오류 발생 중 문제

오류가 발생하고 원인을 확신할 수 없는 경우 가장 편안한 방법으로 다음을 사용하여 값을 확인할 수 있습니다. 쓰다 변수 값을 쓰기 위한 명령 .메시지 파일입니다. UMAT Abaqus(및 모든 서브루틴)를 작성할 때 매우 유용한 가장 중요한 Fortran 명령어에 대해서는 이후 기사에서 다루겠습니다.

Common UMAT Errors and How to Fix Them

When working with UMAT in Abaqus, many errors are not general solver issues, but are directly related to how the material model is implemented. Below are some real and frequently observed UMAT-specific problems:

Error / Issue Typical Symptom Root Cause Practical Solution
Non-Convergence (Too many attempts) Analysis stops or requires many increments Inconsistent DDSDDE matrix with stress update Derive DDSDDE analytically and ensure consistency with return mapping
Stress Not Updating Correctly Constant or unrealistic stress response Misuse of STRAN instead of DSTRAN Use DSTRAN for incremental updates and validate with uniaxial test
STATEV Not Updating No plasticity or damage evolution State variables not stored correctly Update STATEV at the end of UMAT and check indexing
Instability in Plastic Models Oscillating stress or divergence Incorrect integration algorithm Use implicit schemes (e.g., Backward Euler) and enforce consistency condition
Incorrect Stiffness Response Model too stiff or too soft Wrong DDSDDE or incorrect material parameters Verify PROPS values and compare with analytical solution
Works in Simple Test but Fails in Real Model Passes single element test but fails in complex model Missing multiaxial behavior or coupling effects Test under multiaxial loading and validate full tensor behavior

Advanced Subroutine Modeling

선형 탄력성을 넘어설 준비가 되셨나요? 좋습니다. 이제 확장할 수 있는 명확한 경로가 있습니다. 아바쿠스 UMAT 그리고 아바쿠스 VUMAT 길을 잃지 않고 실제 행동으로 연결됩니다.

현실적인 물리학을 단계별로 추가하세요.

가소성(작은 변형률 → 유한 변형률)

  • 간단한 J2/von Mises 모델로 시작하세요. 시험 스트레스, 수율을 확인하고, 반환 매핑을 수행하고, 소성 변형률과 경화를 업데이트합니다.

  • UMAT의 경우 항상 일관된 접선을 제공하세요.DDSDDE). VUMAT의 경우 안정적인 업데이트에 집중하세요. 디타임.

  • 나중에 변형 기울기와 객관적인 응력 업데이트를 사용하여 유한 변형 가소성으로 확장합니다.

손상 및 고장

  • Introduce a damage variable and degrade stiffness: $$\sigma = (1 – D)\sigma_{eff}$$

  • 사용하다 문자 길이 Abaqus VUMAT에서 연화를 정규화하기 위한 변수입니다.

  • 실패에 도달하면 요소에 대한 삭제 기준을 추가합니다.

점탄성 / 속도 의존성

  • 내부 변수를 사용하여 맥스웰 급수나 프로니 급수를 구현합니다.

  • UMAT에서는 알고리즘적 접선을 추가하고, VUMAT에서는 요율 형식을 신중하게 통합합니다.

초탄성

  • 변형률-에너지 함수로부터 응력을 유도하고 유한한 변형률을 처리합니다.

  • 변형 기울기가 직접 주어지는 VUMAT에서는 종종 더 쉽습니다.

Handling large strains and strong nonlinearities

  • 올바른 운동학 프레임을 사용하세요(DFGRD0/DFGRD1 UMAT에서, 퇴학 (VUMAT에서).

  • 드리프트를 방지하려면 스핀 증분으로 응력을 회전시킵니다.

  • UMAT에서 Newton 수렴은 일관된 접선에 따라 달라집니다. 프뉴트 삭감을 제안하다.

  • VUMAT에서는 안정성이 다음에 따라 달라집니다. 디타임; 정확도를 위해 증가 크기를 줄입니다.

경험의 법칙: 사용 유맷 빠른 수렴이 필요한 준정적 문제에 사용합니다. 부마트 안정성이 수렴 속도보다 더 중요한 충격, 충돌 및 점진적인 실패의 경우.

Reliable development workflow

  • 단일 요소에 대해 단위 테스트를 실행합니다.

  • 로드-언로드 경로 검사를 수행합니다.

  • 연화 모델에 대한 메시 세분화 연구를 수행합니다.

  • 에너지 균형(탄성, 가소성, 손상)을 추적합니다.

  • 항상 이론이나 내장된 Abaqus 자료와 비교하세요.

Where to read next

더 자세히 알고 싶다면, 다음과 같은 유용한 자료를 참고하세요.

  • NASA 백서: 코어 크러시 모델링 → 명시적 시뮬레이션에서 점진적인 합성 손상을 위한 고급 VUMAT.

  • Oxford Innovation VUMAT 프로젝트 페이지 → 학술 자료와 개방형 VUMAT 개발.

  • Technia Abaqus 페이지 → Abaqus Unified FEA 개요와 사용자 서브루틴이 어떻게 적용되는지 설명합니다.

  • 교과서:

    • 계산적 비탄력성 (Simo & Hughes) — 가소성과 접선에 대한 알고리즘.

    • 연속체 및 구조를 위한 비선형 유한 요소 (Belytschko et al.) — 대형 변형률 방법.

을 위한 산업용 VUMAT, NASA 백서를 읽어보세요.
을 위한 학술 연구, Oxford Innovation의 페이지는 확실한 참고 자료입니다.

Abaqus UMAT vs VUMAT: Which User Subroutine Should You Choose?

지금까지 따라오셨다면 두 가지 모두 알고 계실 겁니다. 아바쿠스 UMAT 그리고 아바쿠스 VUMAT 사용자 정의 재질을 정의할 수 있습니다. 하지만 어떤 재질을 사용해야 할까요? 답은 문제의 물리적 특성과 실행하려는 솔버에 따라 달라집니다.

  • UMAT(사용자 MAterial) → 함께 작동합니다 Abaqus/표준 (암묵적 솔버).

  • VUMAT(벡터화된 UMAT) → 함께 작동합니다 Abaqus/명시적 (명시적 해결자).

다시 말해서:

  • UMAT는 다음과 같습니다. 뉴턴의 반복 그리고 필요합니다 일관된 탄젠트 행렬 수렴을 위해.

  • VUMAT은 접선을 건너뛰고 모든 증분에서 응력을 명시적으로 업데이트합니다.

Side-by-side comparison

[woodmart_table alignment=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJjZW50ZXIifX19″ border_type=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJzb2xpZCJ9fX0=” woodmart_css_id=”68a5852209c6b” responsive_spacing=”eyJwYXJhbV90eXBlIjoid29vZG1hcnRfcmVzcG9uc2l2ZV9zcGFjaW5nIiwic2VsZWN0b3JfaWQiOiI2OGE1ODUyMjA5YzZiIiwic2hvcnRjb2RlIjoid29vZG1hcnRfdGFibGUiLCJkYXRhIjp7InRhYmxldCI6e30sIm1vYmlsZSI6e319fQ==” border_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjU1LDI1NSwyNTUpIn19fQ==” border_width=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidG9wIjoiMSIsInJpZ2h0IjoiMSIsImJvdHRvbSI6IjEiLCJsZWZ0IjoiMSIsInVuaXQiOiJweCJ9fX0=”][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Feature%22%2C%22column_cell_type%22%3A%22heading%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22UMAT%20(Implicit)%22%2C%22column_cell_type%22%3A%22heading%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22VUMAT%20(Explicit)%22%2C%22column_cell_type%22%3A%22heading%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a5853c6ed65″ table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjU1LDI1NSwyNTUpIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjM3LDEyNSw0OSkifX19″][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Solver%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Abaqus%2FStandard%20(quasi-static%2C%20implicit%20dynamics)%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Abaqus%2FExplicit%20(dynamic%2C%20impact%2C%20crash)%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a585810baeb” table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMCwwLDApIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjQ3LDIwMiwxNzIpIn19fQ==”][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Stability%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Relies%20on%20Newton%20convergence%3B%20tangent%20matrix%20critical%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Conditionally%20stable%3B%20step%20size%20depends%20on%20wave%20speed%20%26%20element%20size%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a585c22e04b” table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMCwwLDApIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjUxLDIyOCwyMTMpIn19fQ==”][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Tangent%20stiffness%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Must%20provide%20DDSDDE%20(consistent%20tangent)%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Not%20required%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a58603adbf6″ table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMCwwLDApIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjQ3LDIwMiwxNzIpIn19fQ==”][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Typical%20applications%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Metal%20plasticity%2C%20creep%2C%20viscoelasticity%2C%20small%20strain%2C%20quasi-static%20loading%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Impact%2C%20crash%2C%20contact%2C%20progressive%20damage%2C%20composites%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a58630d666e” table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMCwwLDApIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjUxLDIyOCwyMTMpIn19fQ==”][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Handling%20failure%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Works%2C%20but%20can%20struggle%20with%20localization%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Commonly%20used%3B%20element%20deletion%20supported%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a58657bbe49″ table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMCwwLDApIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjQ3LDIwMiwxNzIpIn19fQ==”][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Control%20knobs%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22PNEWDT%20for%20time%20step%20cutbacks%2C%20tangent%20accuracy%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Reduce%20DTIME%2C%20smooth%20material%20updates%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a58690c47f3″ table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMCwwLDApIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjUxLDIyOCwyMTMpIn19fQ==”][woodmart_table_row table_column=”%5B%7B%22column_content%22%3A%22Debugging%20effort%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Higher%20(due%20to%20tangents%20%26%20convergence)%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%2C%7B%22column_content%22%3A%22Lower%20(no%20tangent%2C%20but%20careful%20with%20stability)%22%2C%22column_cell_type%22%3A%22default%22%2C%22column_cell_span%22%3A%221%22%2C%22column_cell_row%22%3A%221%22%7D%5D” woodmart_css_id=”68a586bc67064″ table_row_font_size=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJ0YWJsZXQiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9LCJtb2JpbGUiOnsidW5pdCI6InB4IiwidmFsdWUiOiIxOCJ9fX0=” table_row_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMCwwLDApIn19fQ==” table_row_bg_color=”eyJkZXZpY2VzIjp7ImRlc2t0b3AiOnsidmFsdWUiOiJyZ2IoMjQ3LDIwMiwxNzIpIn19fQ==”][/woodmart_table]

When to choose UMAT

사용 유맷 언제:

  • 당신의 문제는 준정적 또는 저속 역학.

  • 당신은 필요합니다 빠른 수렴 암묵적인 솔버를 사용하여.

  • 재료가 필요합니다 일관된 탄젠트 연산자 (예: 경화를 동반한 탄소성).

  • 큰 단계 크기가 바람직하며 안정성은 그다지 중요하지 않습니다.

예:

  • 천천히 성형되는 금속의 가소성.

  • 정상 공정에서의 크리프와 점탄성.

  • 표준에서의 열기계적 결합 시뮬레이션.

When to choose VUMAT

사용 부마트 언제:

  • 당신의 문제는 매우 비선형적 접촉, 손상 또는 충격이 있는 경우.

  • 시뮬레이션하고 싶어요 골절, 점진적인 파손 또는 충돌 안전성.

  • 당신은 접선과 뉴턴 수렴을 다루고 싶지 않습니다.

  • 시간 단계 안정성은 관리 가능합니다(명시적 시간 단계의 경우 일반적으로 많은 증분이 필요함).

예:

How to decide

빠른 결정 차트:

  • 준정적 문제에 대한 정확성이 필요하다면 → UMAT으로 가세요.

  • 고도로 비선형적인 동적 문제에서 견고성이 필요하다면 → VUMAT을 사용하세요.

그렇기 때문에 많은 초보자는 UMAT으로 구조를 배우고, 그런 다음 실제 충돌이나 고장 모델링을 위해 VUMAT으로 전환합니다.

VUMAT Vectorization with NBLOCK

VUMAT 성능을 극대화하려면 다음을 작성해야 합니다. 벡터화된 코드. Abaqus/Explicit은 일반적으로 변수로 정의되는 큰 블록 내의 재료점을 처리합니다. 앤블록,그러므로 루프 안에서 분기문이나 IF 문을 사용하는 것을 피해야 합니다. 분기문은 컴파일러가 루틴을 벡터화하는 것을 방해하여 분석 속도를 크게 저하시킵니다. 또한 항상 를 사용하십시오. 기존 건축물과 신건축 증분 전반에 걸쳐 데이터 무결성을 보장하기 위해 올바르게 처리합니다.

결론

우리는 먼 길을 왔습니다. 이제 여러분은 알게 되실 겁니다.

  • 무엇 아바쿠스 UMAT 그리고 아바쿠스 VUMAT 무엇이며, 왜 중요한지 알아보세요.

  • 두 가지의 차이점과 언제 하나를 선택해야 하는지에 대해 알아보겠습니다.

  • 입력, 출력, 데이터 흐름의 구성 요소입니다.

  • 작성 및 실행 방법 첫 번째 탄성 UMAT 한 걸음씩.

  • 다음으로 어디로 가야 할까요? 가소성, 손상, 점탄성 또는 복합재.

이 경로를 따르면 간단한 탄성 법칙을 작성하는 초보자에서 복합재의 가소성, 손상 또는 점진적인 파괴를 구현하는 고급 사용자로 전환하게 됩니다.

앞으로의 로드맵:

  1. 탄력적 UMAT부터 시작합니다(여기서 한 것처럼).

  2. 내부 변수를 추가하고 간단한 가소성을 테스트합니다.

  3. 더 큰 변형률과 비선형 모델로 이동합니다.

  4. 명확한 충돌 및 충격 문제에 대해 VUMAT를 살펴보세요.

마지막 메모

UMAT 및 VUMAT 학습은 단순히 코딩에 관한 것이 아닙니다. 맞춤형 소재 모델링에 대한 자신감 구축. 더 많이 테스트하고, 비교하고, 검증할수록 더 빨리 성장할 수 있습니다.

Abaqus UMAT & VUMAT FAQs

UMAT 서브루틴의 용도는 무엇입니까?

UMAT은 User Material의 약자입니다. ABAQUS 재료 라이브러리에 포함된 기존 재료 모델 중 모델링할 재료의 거동을 정확하게 나타내는 것이 없을 때 User Material을 사용합니다. 응력 계산 단계에서 UMAT을 사용하여 응력 텐서를 구합니다. 이 과정에서 Abaqus는 증분 방식을 계속 유지하기 위해 (일관된) 야코비안을 정의해야 합니다.

UMAT 서브루틴을 준비하려면 어떤 단계를 거쳐야 합니까?

일반적으로 새로 개발된 UMAT을 작성하려면 먼저 자료의 구성 모델의 모든 측면을 숙지해야 합니다. 그런 다음 UMAT Abaqus 매개변수(입력/출력)를 익혀야 합니다. 다음 단계에서는 Abaqus에서 UMAT의 FORTRAN 코드를 개발하고 구현합니다. 마지막으로 정확한 UMAT 결과를 얻기 위해 UMAT 서브루틴을 테스트하고 디버깅해야 합니다.

UMAT 서브루틴에는 어떤 종류의 매개변수가 있나요?

UMAT의 모든 매개변수는 4가지 그룹으로 구분됩니다.

Abaqus에서 사용할 수 있는 매개변수로는 STRESS, STRAN, DSTRAN, TIME, DTIME 등이 있습니다.

UMAT에서 계산하고 업데이트하는 매개변수(예: STRESS 및 DDSDDE 행렬)입니다.

매개변수는 Abaqus 모델 정의를 통해 입력되어 UMAT으로 전송됩니다. 이러한 매개변수는 PROPS로 표시됩니다.

솔루션 종속 상태 변수: 저장해야 하는 매개변수입니다. 이러한 매개변수는 PROPS STATEV로 표시됩니다.

Abaqus/CAE에서 UMAT 서브루틴을 어떻게 사용할 수 있나요?

Abaqus/CAE에서 FEM 모델을 정의한 후에는 속성 모듈에서 사용자 재질을 정의해야 합니다. 그런 다음, 기계 상수 아래에 UMAT에 전달하여 입력을 정의할 값을 입력합니다. 이 값은 UMAT을 통해 액세스할 수 있습니다. 소품 배열(PROPS(1), PROPS(2),…). 그 후, 기계적 구성 모델에 해에 따라 달라지는 상태 변수의 저장이 필요한 경우, SDV 개수에서 필요한 수량을 선택합니다. 마지막으로, UMAT의 경로를 Abaqus에 지정합니다.

UMAT의 결과를 어떻게 확인할 수 있나요?

개발된 재료 모델의 품질을 연구하기 위해 항상 작은 모델로 UMAT 검증을 시작하세요. Abaqus에서 컴파일된 UMAT를 검증하기 위해 몇 가지 예제를 실행하고 그 결과를 분석, 실험 또는 준분석(예측) 결과와 비교할 수 있습니다.

Comsol Multiphysics에서 UMAT를 사용할 수 있다는 사실, 알고 계셨나요? 흥미롭지 않나요? 저희 블로그에서 이 모든 내용을 무료로 확인하실 수 있습니다.

UMAT4COMSOL: Abaqus UMAT와 COMSOL Multiphysics 연결

Related 조항

Author

CAE Assistant Group의 작가들

Your 댓글

7개의 응답

  1. 훌륭한 글입니다! 저희 웹사이트에 이 훌륭한 글의 링크를 걸어둘 예정입니다. 앞으로도 좋은 글 부탁드립니다. 카냐 와이테 롱고

  2. 좋은 지적을 해주셨네요. 인터넷에서 해당 주제를 검색해 봤는데, 대부분 사람들이 이 사이트에 동의할 것 같습니다.

  3. 안녕하세요! 이 블로그에 전에 들어왔던 것 같은데, 몇 가지 글을 훑어보니 처음 보는 블로그라는 걸 깨달았어요. 어쨌든, 이 블로그를 찾게 되어 정말 기쁩니다. 북마크하고 자주 방문할게요!

  4. 당신의 글이 정말 놀랍다는 말을 전하고 싶습니다. 글의 명확성은
    정말 훌륭하네요. 당신이 이 분야의 전문가인 것 같아요.
    당신의 허락이 있으면 내가 당신을 이해할 수 있도록 허락해주세요
    다가오는 게시물에 대한 최신 정보를 얻으려면 피드를 사용하세요. 1,000,000 감사합니다. 계속해 주세요.
    보람 있는 일.