پرش به محتویات

!MATERIAL

تعریف خواص ماده

اگر خواص به دما وابسته باشند، می‌توان برای هر دمای متناظر داده‌ها را به‌صورت جدول وارد کرد.

خط 1

!MATERIAL, NAME=<name> [, پارامتر اختیاری]
پارامتر
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 مقدار خاصیت (بدون وابستگی به دما)

نکته:

  • تکراری بودن نام ماده خطا ایجاد می‌کند.
  • اگر MATERIAL ارجاع‌شده با گزینه !SECTION تعریف نشده باشد، خطا ایجاد می‌شود.
  • اگر خواص برای هر المان با پارامتر MATITEM در گزینه !ELEMENT وارد شده باشند، آن مقادیر اولویت دارند. در این حالت مقادیر خواصی که با گزینه !MATERIAL وارد شده‌اند استفاده نمی‌شوند.
  • اگر تعداد زیرگزینه‌های !ITEM=m با مقدار پارامتر ITEM سازگار نباشد یا زیرگزینه تعریف‌نشده‌ای وجود داشته باشد، خطا ایجاد می‌شود.
  • لازم نیست زیرگزینه‌های !ITEM=m به ترتیب صعودی m قرار گیرند.
  • هنگام استفاده از زیرگزینه SUBITEM=k و وابستگی دمایی، مقادیر حذف‌شده «0.0» در نظر گرفته می‌شوند.
  • هنگام استفاده از وابستگی دمایی، داده‌ها باید به ترتیب افزایش دما تعریف شوند.
  • هنگام استفاده از وابستگی دمایی، استفاده از یک دمای یکسان دو بار یا بیشتر خطا است.

مثال استفاده

!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= COPPER         تعداد آیتم‌ها = 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= COPPER
...

تحلیل استاتیکی الاستیک و تحلیل مودال

!MATERIAL, NAME=<name>, ITEM=<ITEMnum>
!ITEM=1, SUBITEM=2
<Young_modulus>, <Poisson_ratio>
!ITEM=2
<Density>
!ITEM=3
<Expansion_coeff>
نام پارامتر مقدار پارامتر توضیح
NAME <name> نام ماده؛ متناظر با MATERIAL در !SECTION
ITEM <ITEMnum> تعداد آیتم‌های خواص تعریف‌شده توسط کاربر (1 یا بیشتر)
<Young_modulus>-----مدول یانگ (الزامی)
<Poisson_ratio>-------نسبت پواسون (الزامی)
<Density>--------------چگالی جرمی (هنگام ITEMnum=2 الزامی)
< Expansion_coeff >--ضریب انبساط خطی (هنگام ITEMnum=3)

(مثال)

!MATERIAL, NAME=M1,
ITEM=3                   --- برای ماده با نام M1 سه نوع خاصیت تعریف می‌شود
!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

نکته:

  • در تحلیل مودال نمی‌توان از مادهٔ وابسته به دما استفاده کرد.

تحلیل هدایت حرارتی

برای المان‌های link، plane، solid و plate سه‌بعدی

!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> نام ماده؛ متناظر با MATERIAL در !SECTION
ITEM <ITEMnum> تعداد آیتم‌های خواص تعریف‌شده توسط کاربر (همیشه 3)
<Density>----------چگالی
<Specific_heat>----گرمای ویژه
<Conductivity>-----رسانندگی حرارتی
<Temperature>------دما

(مثال)

!MATERIAL, NAME=M1,
ITEM=3                   --- برای ماده با نام M1 سه نوع خاصیت تعریف می‌شود

!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.

برای المان interface

در هدر !SECTION تعریف می‌شود. (داده ماده لازم نیست)

(مثال)

!SECTION, TYPE=INTERFACE, EGRP=GAP   --- تعریف مقطع
1.0, 20.15, 8.99835E-9, 8.99835E-9

در !SECTION بالا، پارامترهای gap برای المان‌های interface متعلق به گروه با نام GAP تعریف شده‌اند.

  • پارامتر 1: عرض gap
  • پارامتر 2: ضریب انتقال حرارت gap
  • پارامتر 3: ضریب تابش gap 1
  • پارامتر 4: ضریب تابش gap 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