| Link to Ribbon Menu↗ | Link to Trouble Shooting Guide↗ |
Link to Appendix↗ Link to Result List↗ Link to Shortcut Key ↗ |
Contents
01. 기능 설명 및 제한사항
02. FORTRAN 파일 준비
03. DLL 파일 준비
04. midas FEA NX에서 사용자 정의 재료 모델 사용
01. 기능 설명 및 제한사항
사용자 정의 재료 함수를 사용하면 midas FEA NX의 기존 전처리/후처리 기능과 연계하여 사용자가 직접 비선형 재료 모델을 구성할 수 있습니다.기본적으로 사용자 정의 재료 서브루틴은 총 변형률, 변형률 증분( 등의 기본 데이터를 이용하여 적분점의 총 응력과 내부 변수를 갱신하고 접선 탄성계수를 계산하도록 작성되어야 합니다.
사용자 정의 재료 함수에서는 비선형 탄성 재료 및 비선형 탄소성 재료를 정의할 수 있으며, Plane Strain Element(3, 4, 6, 8절점), Axisymmetric 요소(3, 4, 6, 8절점), Solid Element(4, 6, 8, 10, 15, 20절점)를 지원합니다. 각 요소 유형에 대한 응력 성분은 다음과 같이 정의됩니다.
| Element | Stress | Strain |
|---|---|---|
| Truss |
|
|
| Axisymmetirc | ||
| Plane strain |
|
|
| Plane stress | ||
| Solid |
Table 1. Stress component of element
midas FEA NX의 사용자 정의 재료 함수를 사용하기 위해서는 다음 사항이 필요합니다.:
- FORTRAN 파일 작성
- DLL 파일 컴파일 및 생성
- midas FEA NX에서 사용자 정의 재료 모델 사용
02. FORTRAN 파일 준비
사용자 정의 재료 함수는 FORTRAN 77 또는 FORTRAN 90 프로그래밍 언어를 사용하여 작성할 수 있습니다. 다만 midas FEA NX Solver가 FORTRAN 90을 사용하므로 동일한 언어를 사용하는 것을 권장합니다. midas FEA NX Solver가 사용자 서브루틴을 정상적으로 인식하려면 **서브루틴 이름과 인수의 데이터 형식이 아래에 제시된 형식과 정확하게 일치해야 합니다
!***************************************************************************
! USER SUPPLIED MATERIAL SUBROUTINE
!***************************************************************************
SUBROUTINE USRMAT_FEANX(EPS0, DEPS, NS, INFM_STEP, COORD, SE, USRVAL, NUV, & USRSTA, NUS, IUSRIND, NUI, SIG, STIFF, ID, DETJ)
IMPLICIT NONE
!DEC$ ATTRIBUTES DLLEXPORT::USRMAT_FEANX
INTEGER, INTENT(IN) :: NS ! NUMBER OF STRESS COMPONENTS
INTEGER, INTENT(IN) :: INFM_STEP(5) ! STEP INFORMATION FOR STAGE, INCREMENT, ITERATION, ELEMENT, INTEGRATION POINT
! INFM_STEP(1) : STAGE ID
! INFM_STEP(2) : LOAD INCREMENTAL STEP ID
! INFM_STEP(3) : ITERATION STEP ID
! INFM_STEP(4) : ELEMENT ID
! INFM_STEP(5) : INTEGRATION POINT ID
INTEGER, INTENT(IN) :: ID ! MATERIAL ID OF CURRENT ELEMENT
INTEGER, INTENT(IN) :: NUV ! NUMBER OF PARAMETERS
INTEGER, INTENT(IN) :: NUS ! NUMBER OF INTERNAL STATE VARIABLES
INTEGER, INTENT(IN) :: NUI ! NUMBER OF INTEGER INDICATOR VARIABLES
REAL*8, INTENT(IN) :: DT ! INCREMENTAL TIME
REAL*8, INTENT(IN) :: EPS0(NS) ! TOTAL STRAIN AT PREVIOUS STEP
REAL*8, INTENT(IN) :: DEPS(NS) ! INCREMENTAL STRAIN
REAL*8, INTENT(IN) :: COORD(3) ! COORDINATE OF INTEGRATION POINT
REAL*8, INTENT(IN) :: SE(NS, NS) ! ELASTIC CONSTITUTIVE MATRIX
REAL*8, INTENT(INOUT) :: SIG(NS) ! TOTAL STRESS AT PREVIOUS(IN) & CURRENT(OUT) STEP
REAL*8, INTENT(INOUT) :: STIFF(NS, NS) ! TANGENT STIFFNESS AT CURRENT STEP (OUT)
REAL*8, INTENT(INOUT) :: USRSTA(NUS) ! INTERNAL STATE VARIABLES
REAL*8, INTENT(IN) :: USRVAL(NUV) ! PARAMETERS
INTEGER, INTENT(INOUT) :: IUSRIND(NUI) ! INTEGER INDICATOR VARIABLES
User Supplied Subroutine
RETURN
END SUBROUTINE USRMAT_FEANX
!***************************************************************************
midas FEA NX Solver와 사용자 서브루틴 사이에서 데이터를 전달하는 데 사용되는 인수에 대한 설명은 다음과 같습니다.
NS : 응력 성분의 개수.
INFM_STEP : 단계 정보
INFM_STEP(1) : 현재 시공 단계 번호
INFM_STEP(2) : 현재 하중 증분 단계
INFM_STEP(3) : 현재 반복 횟수
INFM_STEP(4) : 현재 요소 번호
INFM_STEP(5) : 현재 적분점 번호
ID : 현재 요소의 재료 ID.
NUV : 재료 매개변수의 개수.
NUS : 내부 상태 변수의 개수.
NUI : 정수형 지시 변수의 개수.
EPS0 : 이전 단계의 총 변형률.
DEPS : 증분 변형률.
COORD : 적분점의 좌표.
SE : 탄성 구성 행렬.
SIG : 이전 단계의 총 응력; 서브루틴에서 갱신해야 합니다.
STIFF : 서브루틴에서 계산해야 하는 접선 강성의 실수 배열.
USRSTA : 서브루틴에서 갱신해야 하는 내부 상태 변수.
USRVAL : 사용자 정의 재료 매개변수.
IUSRIND : 서브루틴에서 갱신해야 하는 정수형 지시 변수.
DT : 증분 시간.
참고를 위해 다음과 같은 세 가지 간단한 예제 서브루틴이 제공됩니다.
1. 3D 솔리드 요소를 위한 선형 탄성 재료 모델
2. 2D 평면 변형률 요소를 위한 단순 비선형 탄성 구성 모델
3. 3D 솔리드 요소에 서로 다른 두 가지 비선형 탄성 재료 모델을 정의하는 예제
[예제 1] 3D 솔리드 요소를 위한 선형 탄성 구성 모델:
!***************************************************************************
! USER SUPPLIED MATERIAL SUBROUTINE
!***************************************************************************
SUBROUTINE USRMAT_FEANX(EPS0, DEPS, NS, INFM_STEP, COORD, SE, USRVAL, NUV, &
USRSTA, NUS, IUSRIND, NUI, SIG, STIFF,ID, DT)
IMPLICIT NONE
!DEC$ ATTRIBUTES DLLEXPORT::USRMAT_FEANX
INTEGER, INTENT(IN) :: NS ! NUMBER OF STRESS COMPONENTS
INTEGER, INTENT(IN) :: INFM_STEP(5) ! STEP INFORMATION FOR STAGE, INCREMENT, ITERATION, ELEMENT, INTEGRATION POINT
! INFM_STEP(1) : STAGE ID
! INFM_STEP(2) : LOAD INCREMENTAL STEP ID
! INFM_STEP(3) : ITERATION STEP ID
! INFM_STEP(4) : ELEMENT ID
! INFM_STEP(5) : INTEGRATION POINT ID
INTEGER, INTENT(IN) :: ID ! MATERIAL ID OF CURRENT ELEMENT
INTEGER, INTENT(IN) :: NUV ! NUMBER OF PARAMETERS
INTEGER, INTENT(IN) :: NUS ! NUMBER OF INTERNAL STATE VARIABLES
INTEGER, INTENT(IN) :: NUI ! NUMBER OF INTEGER INDICATOR VARIABLES
REAL*8, INTENT(IN) :: DT ! INCREMENTAL TIME
REAL*8, INTENT(IN) :: EPS0(NS) ! TOTAL STRAIN AT PREVIOUS STEP
REAL*8, INTENT(IN) :: DEPS(NS) ! INCREMENTAL STRAIN
REAL*8, INTENT(IN) :: COORD(3) ! COORDINATE OF INTEGRATION POINT
REAL*8, INTENT(IN) :: SE(NS, NS) ! ELASTIC CONSTITUTIVE MATRIX
REAL*8, INTENT(INOUT) :: SIG(NS) ! TOTAL STRESS AT PREVIOUS(IN) & CURRENT(OUT) STEP
REAL*8, INTENT(INOUT) :: STIFF(NS, NS) ! TANGENT STIFFNESS AT CURRENT STEP (OUT)
REAL*8, INTENT(INOUT) :: USRSTA(NUS) ! INTERNAL STATE VARIABLES
REAL*8, INTENT(IN) :: USRVAL(NUV) ! PARAMETERS
INTEGER, INTENT(INOUT) :: IUSRIND(NUI) ! INTEGER INDICATOR VARIABLES
INTEGER :: I, J
REAL*8 :: TEMP
REAL*8, ALLOCATABLE :: DSIG(:)
IF(ALLOCATED(DSIG)) DEALLOCATE(DSIG)
ALLOCATE(DSIG(NS))
DO I = 1, NS
TEMP = 0.D0
DO J = 1, NS
TEMP = TEMP + SE(I, J) * DEPS(J)
STIFF(I, J) = SE(I, J)
ENDDO
DSIG(I) = TEMP
SIG(I) = SIG(I) + DSIG(I)
ENDDO
RETURN
END
!***************************************************************************
[예제 2] 2D 평면 변형률 요소를 위한 단순 비선형 탄성 구성 모델
!***************************************************************************
! USER SUPPLIED MATERIAL SUBROUTINE
!***************************************************************************
SUBROUTINE USRMAT_FEANX(EPS0, DEPS, NS, INFM_STEP, COORD, SE, USRVAL, NUV, &
USRSTA, NUS, IUSRIND, NUI, SIG, STIFF,ID, DT)
IMPLICIT NONE
!DEC$ ATTRIBUTES DLLEXPORT::USRMAT_FEANX
INTEGER, INTENT(IN) :: NS ! NUMBER OF STRESS COMPONENTS
INTEGER, INTENT(IN) :: INFM_STEP(5) ! STEP INFORMATION FOR STAGE, INCREMENT, ITERATION, ELEMENT, INTEGRATION POINT
! INFM_STEP(1) : STAGE ID
! INFM_STEP(2) : LOAD INCREMENTAL STEP ID
! INFM_STEP(3) : ITERATION STEP ID
! INFM_STEP(4) : ELEMENT ID
! INFM_STEP(5) : INTEGRATION POINT ID
INTEGER, INTENT(IN) :: ID ! MATERIAL ID OF CURRENT ELEMENT
INTEGER, INTENT(IN) :: NUV ! NUMBER OF PARAMETERS
INTEGER, INTENT(IN) :: NUS ! NUMBER OF INTERNAL STATE VARIABLES
INTEGER, INTENT(IN) :: NUI ! NUMBER OF INTEGER INDICATOR VARIABLES
REAL*8, INTENT(IN) :: DT ! INCREMENTAL TIME
REAL*8, INTENT(IN) :: EPS0(NS) ! TOTAL STRAIN AT PREVIOUS STEP
REAL*8, INTENT(IN) :: DEPS(NS) ! INCREMENTAL STRAIN
REAL*8, INTENT(IN) :: COORD(3) ! COORDINATE OF INTEGRATION POINT
REAL*8, INTENT(IN) :: SE(NS, NS) ! ELASTIC CONSTITUTIVE MATRIX
REAL*8, INTENT(INOUT) :: SIG(NS) ! TOTAL STRESS AT PREVIOUS(IN) & CURRENT(OUT) STEP
REAL*8, INTENT(INOUT) :: STIFF(NS, NS) ! TANGENT STIFFNESS AT CURRENT STEP (OUT)
REAL*8, INTENT(INOUT) :: EPSP(NS) ! TOTAL PLASTIC STRAIN AT PREVIOUS STEP
REAL*8, INTENT(INOUT) :: USRSTA(NUS) ! INTERNAL STATE VARIABLES
REAL*8, INTENT(IN) :: USRVAL(NUV) ! PARAMETERS
INTEGER, INTENT(INOUT) :: IUSRIND(NUI) ! INTEGER INDICATOR VARIABLES
INTEGER :: I, J
REAL*8 :: EMOD
REAL*8, ALLOCATABLE :: EPS(:)
IF(ALLOCATED(EPS)) DEALLOCATE(EPS)
ALLOCATE(EPS(NS))
EMOD = USRVAL(1)
EPS(1:NS) = EPS0(1:NS) + DEPS(1:NS)
!-----------------------------------------------------------
! TOTAL STRESS
!-----------------------------------------------------------
SIG(1) = EMOD * EPS(1) + 1000.D0 * EMOD * EPS(1)**2
SIG(2) = EMOD * EPS(2) + 1000.D0 * EMOD * EPS(2)**2
SIG(4) = EMOD * EPS(4) + 1000.D0 * EMOD * EPS(4)**2
SIG(3) = (EMOD * EPS(3)) / 2.D0
!-----------------------------------------------------------
! MATERIAL STIFFNESS MATRIX
!----------------------------------------------------------
STIFF(1,1) = EMOD + 2000.D0 * EMOD * EPS(1)
STIFF(2,2) = EMOD + 2000.D0 * EMOD * EPS(2)
STIFF(4,4) = EMOD + 2000.D0 * EMOD * EPS(4)
STIFF(3,3) = 0.5D0 * EMOD
RETURN
END
!***************************************************************************
[예제 3] 3D 솔리드 요소에 서로 다른 두 가지 비선형 탄성 재료 모델 정의. 이 예제에서는 서브루틴으로 전달되는 Material ID를 사용하여 두 개의 서로 다른 재료 모델을 구분하고, 각 재료 모델에 따라 필요한 계산을 수행합니다.
!***************************************************************************
! USER SUPPLIED MATERIAL SUBROUTINE
!***************************************************************************
SUBROUTINE USRMAT_FEANX(EPS0, DEPS, NS, INFM_STEP, COORD, SE, USRVAL, NUV, &
USRSTA, NUS, IUSRIND, NUI, SIG, STIFF,ID, DT) IMPLICIT NONE
!DEC$ ATTRIBUTES DLLEXPORT::USRMAT_FEANX
INTEGER, INTENT(IN) :: NS ! NUMBER OF STRESS COMPONENTS
INTEGER, INTENT(IN) :: INFM_STEP(5) ! STEP INFORMATION FOR STAGE, INCREMENT, ITERATION, ELEMENT, INTEGRATION POINT
! INFM_STEP(1) : STAGE ID
! INFM_STEP(2) : LOAD INCREMENTAL STEP ID
! INFM_STEP(3) : ITERATION STEP ID
! INFM_STEP(4) : ELEMENT ID
! INFM_STEP(5) : INTEGRATION POINT ID
INTEGER, INTENT(IN) :: ID ! MATERIAL ID OF CURRENT ELEMENT
INTEGER, INTENT(IN) :: NUV ! NUMBER OF PARAMETERS
INTEGER, INTENT(IN) :: NUS ! NUMBER OF INTERNAL STATE VARIABLES
INTEGER, INTENT(IN) :: NUI ! NUMBER OF INTEGER INDICATOR VARIABLES
REAL*8, INTENT(IN) :: DT ! INCREMENTAL TIME
REAL*8, INTENT(IN) :: EPS0(NS) ! TOTAL STRAIN AT PREVIOUS STEP
REAL*8, INTENT(IN) :: DEPS(NS) ! INCREMENTAL STRAIN
REAL*8, INTENT(IN) :: COORD(3) ! COORDINATE OF INTEGRATION POINT
REAL*8, INTENT(IN) :: SE(NS, NS) ! ELASTIC CONSTITUTIVE MATRIX
REAL*8, INTENT(INOUT) :: SIG(NS) ! TOTAL STRESS AT PREVIOUS(IN) & CURRENT(OUT) STEP
REAL*8, INTENT(INOUT) :: STIFF(NS, NS) ! TANGENT STIFFNESS AT CURRENT STEP (OUT)
REAL*8, INTENT(INOUT) :: USRSTA(NUS) ! INTERNAL STATE VARIABLES
REAL*8, INTENT(IN) :: USRVAL(NUV) ! PARAMETERS
INTEGER, INTENT(INOUT) :: IUSRIND(NUI) ! INTEGER INDICATOR VARIABLES
INTEGER :: I, J
REAL*8 :: EMOD
REAL*8, ALLOCATABLE :: EPS(:)
IF(ALLOCATED(EPS)) DEALLOCATE(EPS)
ALLOCATE(EPS(NS))
IF(ID == 1)THEN
SIG(1:NS) = 0.D0
EMOD = USRVAL(1)
EPS(1:NS) = EPS0(1:NS) + DEPS(1:NS)
!-----------------------------------------------------------
! TOTAL STRESS
!-----------------------------------------------------------
SIG(1) = EMOD * EPS(1) + 1000.D0 * EMOD * EPS(1)**2
SIG(2) = EMOD * EPS(2) + 1000.D0 * EMOD * EPS(2)**2
SIG(3) = EMOD * EPS(3) + 1000.D0 * EMOD * EPS(3)**2
SIG(4) = (EMOD * EPS(4)) / 2.D0
SIG(5) = (EMOD * EPS(5)) / 2.D0
SIG(6) = (EMOD * EPS(6)) / 2.D0
!-----------------------------------------------------------
! MATERIAL STIFFNESS MATRIX
!-----------------------------------------------------------
STIFF(1,1) = EMOD + 2000.D0 * EMOD * EPS(1)
STIFF(2,2) = EMOD + 2000.D0 * EMOD * EPS(2)
STIFF(3,3) = EMOD + 2000.D0 * EMOD * EPS(3)
STIFF(4,4) = 0.5D0 * EMOD
STIFF(5,5) = 0.5D0 * EMOD
STIFF(6,6) = 0.5D0 * EMOD
ELSEIF(ID == 2) THEN
SIG(1:NS) = 0.D0
EMOD = USRVAL(1)
EPS(1:NS) = EPS0(1:NS) + DEPS(1:NS)
!-----------------------------------------------------------
! TOTAL STRESS
!-----------------------------------------------------------
SIG(1) = EMOD * EPS(1) + 2000.D0 * EMOD * EPS(1)**2
SIG(2) = EMOD * EPS(2) + 2000.D0 * EMOD * EPS(2)**2
SIG(3) = EMOD * EPS(3) + 2000.D0 * EMOD * EPS(3)**2
SIG(4) = (EMOD * EPS(4)) / 2.D0
SIG(5) = (EMOD * EPS(5)) / 2.D0
SIG(6) = (EMOD * EPS(6)) / 2.D0
!-----------------------------------------------------------
! MATERIAL STIFFNESS MATRIX
!-----------------------------------------------------------
STIFF(1,1) = EMOD + 3000.D0 * EMOD * EPS(1)
STIFF(2,2) = EMOD + 3000.D0 * EMOD * EPS(2)
STIFF(3,3) = EMOD + 3000.D0 * EMOD * EPS(3)
STIFF(4,4) = 0.5D0 * EMOD
STIFF(5,5) = 0.5D0 * EMOD
STIFF(6,6) = 0.5D0 * EMOD
ENDIF
RETURN
END
!***************************************************************************
03. DLL 파일 준비
작성한 FORTRAN 코드를 midas FEA NX에서 해석 및 전처리/후처리에 사용하려면, 사용자 서브루틴을 컴파일하고 DLL(Dynamic Link Library) 형식으로 링크해야 합니다. 호환성을 위해 사용자 서브루틴의 DLL을 생성할 때는 Intel FORTRAN Compiler를 사용하는 것을 강력히 권장합니다. 다른 컴파일러를 사용할 경우 midas FEA NX에서 정상적으로 작동하는 것이 보장되지 않습니다.
3.1 Intel FORTRAN 11.1.067
Intel FORTRAN 11.1.067을 사용하여 DLL 파일 생성
1) File > New > Project 를 선택합니다 (Figure 1).
Fig. 1 Project 메뉴 선택
새 프로젝트 창이 열립니다. (Figure 2)
Fig. 2 새 프로젝트 입력 창
2) 다음 예제에서는 앞서 설명한 단순 비선형 탄성 모델 [예제 2]을 이용하여 DLL 파일을 생성하는 방법을 설명합니다.
Figure 3 은 사용자 서브루틴에 필요한 서브루틴 이름 및 인수 목록을 정의하는 부분을 보여줍니다. 실제 계산이 수행되는 부분은 Figure 4에 나타나 있습니다. Figure 5는 사용자 서브루틴 내부에서 사용하기 위해 정의된 내부 함수를 보여줍니다.
Fig. 3 USRMAT_FEANX.f90 파일
Fig. 4 실행부 입력 코드
Fig. 5 함수 입력 코드
Intel FORTRAN 창 상단의 Solution Configuration에서 `Release`를 선택합니다. Figure 6과 같이 `Build` 메뉴에서 Build Solution 기능을 클릭하여 Build 작업을 시작합니다. 컴파일러가 DLL 파일을 정상적으로 생성하면 Figure 7과 같은 메시지가 Output 창에 표시됩니다.
Fig. 6 Build Solution
Fig. 7 Build 성공
04. midas FEA NX에서 사용자 정의 재료 모델 사용
그림 8과 같은 Add/Modify Ground Material 대화상자에는 midas FEA NX Solver에서 사용할 수 있는 구성 모델(Constitutive Model)이 포함되어 있습니다. Isotropic 구성 모델에서 User supplied material을 선택하면 다음의 Non-Linear Parameters 항목이 활성화됩니다. 이 절에서는 각 매개변수의 의미와 필요한 설정 절차를 설명합니다.
- Number of Parameters (NUV)
- Number of Internal State Variables (NUS)
- Number of Indicator Variables (NUI)
Fig. 8 지반 재료 입력 창
※ General 탭의 Modulus of Elasticity(E)와 Poisson’s Ratio는 사용자 서브루틴으로 전달되는 Linear Elastic Constitutive Matrix을 계산하는 데 사용됩니다. 따라서 비선형 해석을 수행하는 경우 해당 값들을 초기값으로 입력해야 합니다. Unit Weight 및 Unit Weight (Saturated) 값은 FEA NX Solver에서 외부 자중 하중을 계산하는 데 계속 사용됩니다.
1. User Supplied Material Library File
Figure 8에 표시된 을 클릭하면 앞 단계에서 생성한 DLL 파일을 선택할 수 있습니다.
Fig. 9 DLL 파일 열기 창
2. Number of Parameters (NUV)
NUV는 사용자 서브루틴에 `USRVAL`로 전달되는 재료 매개변수의 개수를 의미합니다. Figure 8에 표시된 인접 을 클릭하면 재료 매개변수의 값을 확인하거나 수정할 수 있습니다. 일반적으로 구성 모델을 정의하는 데 필요한 재료 계수를 입력합니다. 예를 들어 Mohr-Coulomb 모델을 사용하는 경우 Cohesion, Friction Angle와 같은 계수는 `USRVAL`에 포함되어야 합니다.
Figure 8에 표시된 을 클릭한 경우 다음 절차에 따라 매개변수를 입력할 수 있습니다.
입력 절차:
1) Figure 10과 같이 해당 행에 계수를 입력합니다.
2) 각 값을 입력한 후 "Enter 키"를 누릅니다.
*참고: 값을 입력한 후 "Enter 키"를 누르지 않으면 해당 값은 0으로 설정됩니다. 최대 100개의 데이터 매개변수를 입력할 수 있습니다. 단위는 N-m 단위를 사용해야 합니다.
Fig. 10 사용자 정의 값 입력 창
3. Number of Internal State Variables (NUS)
내부 상태 변수인 NUS는 일반적으로 소성 변형률 성분과 같은 상태 변수를 저장하는 데 사용됩니다. NUV와 달리 NUS는 FORTRAN 루틴 내부에서 수정할 수 있습니다.
Figure 8에 표시된 을 선택하면 다음 절차에 따라 내부 상태 변수의 초기값을 입력할 수 있습니다.
입력절차:
1) Figure 11과 같이 각 해당 행에 계수를 입력합니다.
2) 각 값을 입력한 후 "Enter 키"를 누릅니다.
*참고: 값을 입력한 후 "Enter 키"를 누르지 않으면 해당 값은 0으로 처리됩니다. 최대 100개의 데이터 매개변수를 입력할 수 있습니다. 단위는 N-m 단위를 사용해야 합니다.
Fig. 11 내부 상태 변수 입력 창
4. Number of Integer Indicator Variables (NUI)
내부 정수 변수인 NUI는 소성 상태와 같은 상태를 나타내는 지시값으로 사용됩니다. NUV와 달리 NUI 역시 FORTRAN 루틴 내부에서 수정할 수 있습니다. Figure 8에 표시된 을 선택하면 다음 절차에 따라 정수형 지시 변수의 초기값을 입력할 수 있습니다.
입력 절차:
1) Figure 12와 같이 각 해당 행에 Integer Indicator Variable 값을 입력합니다.
2) 각 값을 입력한 후 "Enter 키"를 누릅니다.
*참고: 값을 입력한 후 "Enter 키"를 누르지 않으면 해당 값은 0으로 처리됩니다. 최대 100개의 데이터 매개변수를 입력할 수 있습니다. 단위는 N-m 단위를 사용해야 합니다
Fig. 12 사용자 정의 정수형 지시 변수 입력 창
참고
midas FEA NX 프로그램 내부에서는 디버깅을 수행할 수 없습니다.복잡한 재료 모델을 사용하는 경우에는 별도의 FORTRAN Driver Program을 사용하여 사용자 정의 재료 서브루틴을 검토하고 오류를 제거하는 것을 권장합니다.midas FEA NX 프로그램 내에서 변수 값을 확인해야 하는 경우에는 FEA NX에서 제공하는 File No. 6을 사용할 수 있습니다. 출력 결과는 `모델명.out` 파일에서 확인할 수 있습니다.