!MATERIAL¶
재료 물성의 정의
물성이 온도 의존적인 경우에는 대응하는 온도별로 표 형식으로 입력할 수 있다.
1행
| 파라미터 | |
|---|---|
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번째 물성이 온도 의존적이지 않은 경우】
| 변수명 | 속성 | 내용 |
|---|---|---|
| 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】
예 2【파라미터 「ITEM」과 「!ITEM=m」 서브옵션의 수가 일치하지 않음-2】
탄성 정적 해석 및 모달 해석¶
!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에서는 인터페이스 요소에서 그룹명=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