!MATERIAL¶
Định nghĩa các tính chất vật lý của vật liệu
Nếu một tính chất vật lý phụ thuộc nhiệt độ, có thể nhập dưới dạng bảng cho từng nhiệt độ tương ứng.
Dòng thứ nhất
| Tham số | |
|---|---|
NAME |
Tên vật liệu (bắt buộc) |
ITEM |
Số mục tính chất vật lý (tùy chọn; nếu bỏ qua thì bằng "1") |
INPUT |
Tên tệp ngoài (tùy chọn) |
| Tên tham số | Giá trị tham số | Mô tả |
|---|---|---|
NAME |
<name> | Tên vật liệu |
ITEM |
<ITEMnum> | Số mục tính chất vật lý do người dùng định nghĩa |
INPUT |
<filename> | Tên tệp ngoài (tùy chọn); cũng có thể dùng cùng với dòng thứ 2 và các dòng tiếp theo |
Dòng thứ 2 và các dòng tiếp theo
(Dòng thứ 2) !ITEM=1, SUBITEM=<k>
(Dòng thứ 3) VAL1-1-1, VAL1-1-2, … VAL1-1-k, TEMP1-1
(Dòng thứ 4) VAL1-2-1,VAL1-2-2, … VAL1-2-k, TEMP1-2
...
(Dòng L+2) VAL1-L-1,VAL1-L-2, … VAL1-L-k, TEMP1-L
Lặp lại định nghĩa cho đến !ITEM=<ITEMnum>.
Tham số con (cho !ITEM) |
|
|---|---|
SUBITEM |
Số mục tính chất con được định nghĩa cho mỗi mục tính chất vật lý |
| (tùy chọn; nếu bỏ qua thì bằng "1") |
| Tên tham số con | Giá trị tham số | Mô tả |
|---|---|---|
SUBITEM |
<subITEMnum> | Số mục tính chất con do người dùng định nghĩa |
【Khi tính chất vật lý thứ m phụ thuộc nhiệt độ】
Nếu số phần tử trong bảng phụ thuộc nhiệt độ là N, hãy nhập như sau:
!ITEM=m, SUBITEM=k
VALm1-1, ..., VALm1-k, TEMPm1
VALm2-1, ..., VALm2-k, TEMPm2
...
VALmN-1, ..., VALmN-k, TEMPm-N
| Tên tham số | Thuộc tính | Mô tả |
|---|---|---|
| VALmn-k | R | Giá trị tính chất vật lý (phụ thuộc nhiệt độ) |
| TEMPmn | R | Nhiệt độ tương ứng |
Phải thỏa mãn TEMPm1 < TEMPm2 < ... < TEMPmN.
Khi nhiệt độ nhỏ hơn hoặc bằng TEMPm1, VALm1 được sử dụng; khi nhiệt độ lớn hơn hoặc bằng TEMPmN, VALmN được sử dụng.
【Khi tính chất vật lý thứ m không phụ thuộc nhiệt độ】
| Tên tham số | Thuộc tính | Mô tả |
|---|---|---|
| VALmn-k | R | Giá trị tính chất vật lý (không phụ thuộc nhiệt độ) |
Lưu ý:
- Sẽ xảy ra lỗi nếu tên vật liệu bị trùng.
- Sẽ xảy ra lỗi nếu
MATERIALđược tham chiếu bởi tùy chọn!SECTIONchưa được định nghĩa.- Nếu các tính chất vật lý được nhập riêng cho từng phần tử bằng tham số
MATITEMcủa tùy chọn!ELEMENT, các giá trị đó được ưu tiên. Trong trường hợp này, các giá trị tính chất vật lý nhập bằng tùy chọn!MATERIALkhông được sử dụng.- Sẽ xảy ra lỗi nếu số tùy chọn con
!ITEM=mkhông khớp với số được chỉ định bởi tham sốITEM, hoặc nếu có tùy chọn con chưa được định nghĩa.- Các tùy chọn con
!ITEM=mkhông cần được sắp xếp theo thứ tự m tăng dần.- Khi dùng tùy chọn con
SUBITEM=kvà tính phụ thuộc nhiệt độ, các giá trị bị bỏ qua sẽ trở thành "0.0".- Khi dùng tính phụ thuộc nhiệt độ, các định nghĩa phải được đưa ra theo thứ tự nhiệt độ tăng dần.
- Khi dùng tính phụ thuộc nhiệt độ, sẽ xảy ra lỗi nếu cùng một nhiệt độ được dùng từ hai lần trở lên.
Ví dụ
!MATERIAL, NAME= STEEL, ITEM= 2
!ITEM=1 Không phụ thuộc nhiệt độ
35.0
!ITEM=2
40.0, 0.0
45.0, 100.0
50.0, 200.0
!MATERIAL, NAME= COPPER Số mục = 1 (giá trị mặc định)
!ITEM=1 Không phụ thuộc nhiệt độ
80.0
Các ví dụ sai
Ví dụ 1【Số được chỉ định bởi tham số ITEM và số tùy chọn con !ITEM=m không khớp -1】
Ví dụ 2【Số được chỉ định bởi tham số ITEM và số tùy chọn con !ITEM=m không khớp -2】
Phân tích tĩnh đàn hồi và phân tích dao động riêng¶
!MATERIAL, NAME=<name>, ITEM=<ITEMnum>
!ITEM=1, SUBITEM=2
<Young_modulus>, <Poisson_ratio>
!ITEM=2
<Density>
!ITEM=3
<Expansion_coeff>
| Tên tham số | Giá trị tham số | Mô tả |
|---|---|---|
| NAME | <name> | Tên vật liệu; tương ứng với MATERIAL trong !SECTION |
| ITEM | <ITEMnum> | Số mục tính chất vật lý do người dùng định nghĩa (từ 1 trở lên) <Young_modulus>-----Mô đun Young (bắt buộc) <Poisson_ratio>-------Hệ số Poisson (bắt buộc) <Density>--------------Khối lượng riêng (bắt buộc khi ITEMnum=2) < Expansion_coeff >--Hệ số giãn nở nhiệt tuyến tính (khi ITEMnum=3) |
(Ví dụ)
!MATERIAL, NAME=M1,
ITEM=3 --- Định nghĩa ba loại giá trị tính chất cho vật liệu M1
!ITEM=1, SUBITEM=2 --- Định nghĩa mô đun Young và hệ số Poisson trong !ITEM=1 (bắt buộc)
4000.0, 0.3
!ITEM=2 --- Định nghĩa khối lượng riêng trong !ITEM=2 (bắt buộc khi ITEM=2)
8.0102E-0
!ITEM=3 --- Định nghĩa hệ số giãn nở nhiệt tuyến tính trong !ITEM=3
1.0E-5
Lưu ý:
- Không thể sử dụng vật liệu phụ thuộc nhiệt độ trong phân tích dao động riêng.
Phân tích dẫn nhiệt¶
Đối với phần tử thanh liên kết, phần tử phẳng, phần tử khối và phần tử tấm ba chiều
!MATERIAL, NAME=<name>, ITEM=3
!ITEM=1, SUBITEM=2
<Density>, <Temperature>
!ITEM=2, SUBITEM=2
<Specific_heat>, <Temperature>
!ITEM=3, SUBITEM=2
<Conductivity>, <Temperature>
| Tên tham số | Giá trị tham số | Mô tả |
|---|---|---|
NAME |
<name> | Tên vật liệu; tương ứng với MATERIAL trong !SECTION |
ITEM |
<ITEMnum> | Số mục tính chất vật lý do người dùng định nghĩa (luôn là 3) <Density>----------Khối lượng riêng <Specific_heat>----Nhiệt dung riêng <Conductivity>-----Độ dẫn nhiệt <Temperature>------Nhiệt độ |
(Ví dụ)
!MATERIAL, NAME=M1,
ITEM=3 --- Định nghĩa ba loại giá trị tính chất cho vật liệu M1
!ITEM=1, SUBITEM=1 --- Định nghĩa khối lượng riêng và nhiệt độ trong !ITEM=1 (bắt buộc)
7850., 300.
7790., 500.
7700., 800.
!ITEM=2, SUBITEM=1 --- Định nghĩa nhiệt dung riêng và nhiệt độ trong !ITEM=2 (bắt buộc)
0.465, 300.
0.528, 500.
0.622, 800.
!ITEM=3 --- Định nghĩa độ dẫn nhiệt và nhiệt độ trong !ITEM=3 (bắt buộc)
43., 300.
38.6, 500.
27.7, 800.
Đối với phần tử giao diện
Được định nghĩa trong header !SECTION. (Không cần dữ liệu vật liệu)
(Ví dụ)
!SECTION ở trên định nghĩa các tham số khe hở cho các phần tử thuộc nhóm có tên GAP trong một phần tử giao diện.
- Tham số thứ 1: Chiều rộng khe hở
- Tham số thứ 2: Hệ số truyền nhiệt qua khe hở
- Tham số thứ 3: Hệ số bức xạ khe hở 1
- Tham số thứ 4: Hệ số bức xạ khe hở 2
Tham khảo¶
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