콘텐츠로 이동

!MATERIAL

재료 물성의 정의

물성이 온도 의존적인 경우에는 대응하는 온도별로 표 형식으로 입력할 수 있다.

1행

!MATERIAL, NAME=<name> [, optional parameter]
파라미터
NAME 재료명(필수)
ITEM 물성 항목 수(생략 가능, 생략한 경우 「1」이 됨)
INPUT 외부 파일명(생략 가능)
파라미터명 파라미터 값 내용
NAME <name> 재료명
ITEM <ITEMnum> 사용자 정의 물성 항목 수
INPUT <filename> 외부 파일명(생략 가능), 2행 이후와 병용 가능

2행 이후

(2행) !ITEM=1, SUBITEM=<k>
(3행) VAL1-1-1, VAL1-1-2, … VAL1-1-k, TEMP1-1
(4행) VAL1-2-1,VAL1-2-2, … VAL1-2-k, TEMP1-2
...

(L+2행) VAL1-L-1,VAL1-L-2, … VAL1-L-k, TEMP1-L

이하 「!ITEM=<ITEMnum>」까지 반복해서 정의한다.
서브파라미터(「!ITEM」에 대한 것)
SUBITEM 각 물성 항목에서 정의되는 서브 물성 항목 수
(생략 가능, 생략한 경우 「1」이 됨.)
서브파라미터명 파라미터 값 내용
SUBITEM <subITEMnum> 사용자 정의 서브 물성 항목 수

【m번째 물성이 온도 의존적인 경우】

온도 의존 표의 항목 수가 N인 경우 다음과 같이 입력한다:

!ITEM=m, SUBITEM=k
VALm1-1, ..., VALm1-k, TEMPm1
VALm2-1, ..., VALm2-k, TEMPm2
...
VALmN-1, ..., VALmN-k, TEMPm-N
변수명 속성 내용
VALmn-k R 물성값(온도 의존)
TEMPmn R 대응하는 온도

TEMPm1 < TEMPm2 < ... < TEMPmN 이어야 한다.

온도가 TEMPm1 이하인 경우 VALm1, TEMPmN 이상인 경우 VALmN을 사용한다.

【m번째 물성이 온도 의존적이지 않은 경우】

!ITEM=m, SUBITEM=k
VALm1-1, ..., VALm1-k
VALm2-1, ..., VALm2-k
...
VALmN-1, ..., VALmN-k
변수명 속성 내용
VALmn-k R 물성값(온도 의존 없음)

Note:

  • 재료명이 중복되면 오류가 발생한다.
  • !SECTION」 옵션에서 참조하는 MATERIAL이 정의되어 있지 않으면 오류가 발생한다.
  • !ELEMENT」 옵션에서 파라미터 「MATITEM」을 사용하여 요소별로 물성을 입력한 경우 그 값이 우선 사용된다. 이 경우 「!MATERIAL」 옵션으로 입력한 물성값은 사용되지 않는다.
  • !ITEM=m」 서브옵션의 수와 파라미터 「ITEM」의 수가 일치하지 않거나 정의되지 않은 서브옵션이 있으면 오류가 발생한다.
  • !ITEM=m」 서브옵션은 m이 작은 순서대로 나열할 필요가 없다.
  • !SUBITEM=k」 서브옵션 및 온도 의존성을 사용하는 경우 생략한 값은 「0.0」이 된다.
  • 온도 의존성을 사용하는 경우 온도가 낮은 순서대로 정의해야 한다.
  • 온도 의존성을 사용하는 경우 같은 온도를 2회 이상 사용하면 오류가 발생한다.

사용 예

!MATERIAL, NAME= STEEL, ITEM= 2
!ITEM=1 온도 의존성 없음
35.0
!ITEM=2
40.0, 0.0
45.0, 100.0
50.0, 200.0

!MATERIAL, NAME= CUPPER         항목 수=1(기본값)
!ITEM=1 온도 의존성 없음
80.0

잘못된 사용 예

예 1【파라미터 「ITEM」과 「!ITEM=m」 서브옵션의 수가 일치하지 않음-1】

!MATERIAL, NAME= STEEL, ITEM= 2
!ITEM=3
20.0
!ITEM=1
35.0
!ITEM= 2
40.0

예 2【파라미터 「ITEM」과 「!ITEM=m」 서브옵션의 수가 일치하지 않음-2】

!MATERIAL, NAME= STEEL, ITEM= 3
!ITEM=3
20.0
!ITEM= 2
40.0
!MATERIAL, NAME= CUPPER
...

탄성 정적 해석 및 모달 해석

!MATERIAL, NAME=<name>, ITEM=<ITEMnum>
!ITEM=1, SUBITEM=2
<Young_modulus>, <Poisson_ratio>
!ITEM=2
<Density>
!ITEM=3
<Expansion_coeff>
파라미터명 파라미터 값 내용
NAME <name> 재료명, !SECTION의 MATELIAL에 대응
ITEM <ITEMnum> 사용자 정의 물성 항목 수(1 이상)
<Young_modulus>-----영률(필수)
<Poisson_ratio>-------포아송비(필수)
<Density>--------------질량 밀도(ITEMnum=2일 때 필수)
< Expansion_coeff >--선팽창계수(ITEMnum=3일 때)

(예)

!MATERIAL, NAME=M1,
ITEM=3                   --- 재료명 M1의 재료에서 3종의 물성값을 정의한다는 의미
!ITEM=1, SUBITEM=2       --- !ITEM=1에서 영률과 포아송비를 정의(필수)
4000.0, 0.3
!ITEM=2                  --- !ITEM=2에서 질량 밀도를 정의(ITEM=2일 때 필수)
8.0102E-0
!ITEM=3                  --- !ITEM=3에서 선팽창계수를 정의
1.0E-5

Note:

  • 모달 해석에서는 온도 의존성이 있는 재료를 사용할 수 없다.

열전도 해석

링크, 평면, 솔리드, 3차원 판 요소의 경우

!MATERIAL, NAME=<name>, ITEM=3
!ITEM=1, SUBITEM=2
<Density>, <Temperature>

!ITEM=2, SUBITEM=2
<Specific_heat>, <Temperature>

!ITEM=3, SUBITEM=2
<Conductivity>, <Temperature>
파라미터명 파라미터 값 내용
NAME <name> 재료명, !SECTION의 MATELIAL에 대응
ITEM <ITEMnum> 사용자 정의 물성 항목 수(항상 3)
<Density>----------밀도
<Specific_heat>----비열
<Conductivity>-----열전도율
<Temperature>------온도

(예)

!MATERIAL, NAME=M1,
ITEM=3                --- 재료명 M1의 재료에서 3종의 물성값을 정의한다는 의미

!ITEM=1, SUBITEM=1    --- !ITEM=1에서 밀도와 온도를 정의(필수)
7850., 300.
7790., 500.
7700., 800.

!ITEM=2, SUBITEM=1       --- !ITEM=2에서 비열과 온도를 정의(필수)
0.465, 300.
0.528, 500.
0.622, 800.

!ITEM=3                  --- !ITEM=3에서 열전도율과 온도를 정의(필수)
43., 300.
38.6, 500.
27.7, 800.

인터페이스 요소의 경우

!SECTION 헤더에서 정의한다. (재료 데이터는 불필요)

(예)

!SECTION, TYPE=INTERFACE, EGRP=GAP  --- 섹션 정의
1.0, 20.15, 8.99835E-9, 8.99835E-9

위의 !SECTION에서는 인터페이스 요소에서 그룹명=GAP에 속하는 요소의 갭 파라미터를 정의하고 있다.

  • 제1 파라미터: 갭 폭
  • 제2 파라미터: 갭 열전달계수
  • 제3 파라미터: 갭 복사계수 1
  • 제4 파라미터: 갭 복사계수 2

참고

program TEST
use hecmw
implicit REAL*8 (A-H,O-Z)
type (hecmwT_local_mesh) :: hecMESH

!C
!C    !MATERIAL, NAME=SUS304, ITEM=3
!C    !ITEM=1, SUBITEM= 3
!C      100.0, 200.0, 300.0, 0.00
!C      101.0, 210.0, 301.0, 1.00
!C      102.0, 220.0, 302.0, 2.00
!C      103.0, 230.0, 303.0, 3.00
!C    !ITEM=3, SUBITEM= 2
!C      1000.0, , 0.00
!C      1001.0, 1., 1.00
!C      1002.0, 2., 2.00
!C      1003.0, 3., 3.00
!C    !ITEM=2
!C      5000.0
!C
!C    !MATERIAL, NAME=FEC, ITEM=2
!C    !ITEM=1, SUBITEM= 3
!C      2100.0, 2200.0, 2300.0, 0.00
!C      2101.0, 2210.0, 2301.0, 1.00
!C      2102.0, 2220.0, 2302.0, 2.00
!C      2103.0, 2230.0, 2303.0, 3.00
!C      3103.0, 3230.0, 2304.0, 4.00
!C    !ITEM=2
!C      6000.0, 10.0
!C      6500.0, 30.0
!C

hecMESH%material%n_mat = 2

nn= hecMESH%material%n_mat
allocate (hecMESH%material%mat_name(nn))

hecMESH%material%mat_name(1)= 'SUS304'
hecMESH%material%mat_name(2)= 'FEC'

nn= hecMESH%material%n_mat
allocate (hecMESH%material%mat_ITEM_index(0:nn))
hecMESH%material%mat_ITEM_index(0)= 0
hecMESH%material%mat_ITEM_index(1)= 3
hecMESH%material%mat_ITEM_index(2)= hecMESH%material%mat_ITEM_index(1) + 2

hecMESH%material%n_mat_ITEM= hecMESH%material%mat_ITEM_index(hecMESH%material%n_mat)

nn= hecMESH%material%n_mat_ITEM
allocate (hecMESH%material%mat_subITEM_index(0:nn))

hecMESH%material%mat_subITEM_index(0)= 0
hecMESH%material%mat_subITEM_index(1)= 3
hecMESH%material%mat_subITEM_index(2)= hecMESH%material%mat_subITEM_index(1) + 1
hecMESH%material%mat_subITEM_index(3)= hecMESH%material%mat_subITEM_index(2) + 2
hecMESH%material%mat_subITEM_index(4)= hecMESH%material%mat_subITEM_index(3) + 3
hecMESH%material%mat_subITEM_index(5)= hecMESH%material%mat_subITEM_index(4) + 1

hecMESH%material%n_mat_subITEM=
&        hecMESH%material%mat_subITEM_index(hecMESH%material%n_mat_ITEM)

nn= hecMESH%material%n_mat_subITEM
allocate (hecMESH%material%mat_TABLE_index(0:nn))
hecMESH%material%mat_TABLE_index( 0)= 0
hecMESH%material%mat_TABLE_index( 1)= 4
hecMESH%material%mat_TABLE_index( 2)= hecMESH%material%mat_TABLE_index( 1) + 4
hecMESH%material%mat_TABLE_index( 3)= hecMESH%material%mat_TABLE_index( 2) + 4
hecMESH%material%mat_TABLE_index( 4)= hecMESH%material%mat_TABLE_index( 3) + 1
hecMESH%material%mat_TABLE_index( 5)= hecMESH%material%mat_TABLE_index( 4) + 4
hecMESH%material%mat_TABLE_index( 6)= hecMESH%material%mat_TABLE_index( 5) + 4
hecMESH%material%mat_TABLE_index( 7)= hecMESH%material%mat_TABLE_index( 6) + 5
hecMESH%material%mat_TABLE_index( 8)= hecMESH%material%mat_TABLE_index( 7) + 5
hecMESH%material%mat_TABLE_index( 9)= hecMESH%material%mat_TABLE_index( 8) + 5
hecMESH%material%mat_TABLE_index(10)= hecMESH%material%mat_TABLE_index( 9) + 2

hecMESH%material%n_mat_TABLE=
&        hecMESH%material%mat_TABLE_index(hecMESH%material%n_mat_subITEM)

nn= hecMESH%material%n_mat_TABLE
allocate (hecMESH%material%mat_VAL (nn))
allocate (hecMESH%material%mat_TEMP(nn))

hecMESH%material%mat_VAL = 0.d0
hecMESH%material%mat_TEMP= 0.d0

hecMESH%material%mat_VAL ( 1)= 100.0d0
hecMESH%material%mat_TEMP( 1)=   0.0d0
hecMESH%material%mat_VAL ( 2)= 101.0d0
hecMESH%material%mat_TEMP( 2)=   1.0d0
hecMESH%material%mat_VAL ( 3)= 102.0d0
hecMESH%material%mat_TEMP( 3)=   2.0d0
hecMESH%material%mat_VAL ( 4)= 103.0d0
hecMESH%material%mat_TEMP( 4)=   3.0d0

hecMESH%material%mat_VAL ( 5)= 200.0d0
hecMESH%material%mat_TEMP( 5)=   0.0d0

hecMESH%material%mat_VAL (13)= 5000.0d0

hecMESH%material%mat_VAL (14)= 1000.0d0
hecMESH%material%mat_TEMP (14)=   0.0d0
hecMESH%material%mat_VAL (15)= 1001.0d0
hecMESH%material%mat_TEMP (15)=   1.0d0
hecMESH%material%mat_VAL (16)= 1002.0d0
hecMESH%material%mat_TEMP (16)=   2.0d0
hecMESH%material%mat_VAL (17)= 1003.0d0
hecMESH%material%mat_TEMP (17)=   3.0d0

hecMESH%material%mat_VAL (18)=  0.0d0
hecMESH%material%mat_TEMP (18)= 0.0d0
hecMESH%material%mat_VAL (19)=  1.0d0
hecMESH%material%mat_TEMP (19)= 1.0d0
hecMESH%material%mat_VAL (20)=  2.0d0
hecMESH%material%mat_TEMP (20)= 2.0d0
hecMESH%material%mat_VAL (21)=  3.0d0
hecMESH%material%mat_TEMP (21)= 3.0d0

hecMESH%material%mat_VAL (22)= 2100.0d0
hecMESH%material%mat_TEMP (22)=   0.0d0
hecMESH%material%mat_VAL (23)= 2101.0d0
hecMESH%material%mat_TEMP (23)=   1.0d0
hecMESH%material%mat_VAL (24)= 2102.0d0
hecMESH%material%mat_TEMP (24)=   2.0d0
hecMESH%material%mat_VAL (25)= 2103.0d0
hecMESH%material%mat_TEMP (25)=   3.0d0
hecMESH%material%mat_VAL (26)= 3103.0d0
hecMESH%material%mat_TEMP (26)=   4.0d0

write (*,'(a,i10)') '%n_mat_ITEM ', hecMESH%material%n_mat_ITEM
write (*,'(a,i10)') '%n_mat_subITEM', hecMESH%material%n_mat_subITEM
write (*,'(a,i10)') '%n_mat_TABLE ', hecMESH%material%n_mat_TABLE

end program TEST