براہِ راست مواد پر جائیں

!MATERIAL

مادّی خواص کی تعریف

اگر کوئی خاصیت درجۂ حرارت پر منحصر ہو تو متعلقہ درجۂ حرارتوں کے لیے جدول ان پٹ دیا جا سکتا ہے۔

پہلی سطر

!MATERIAL, NAME=<name> [, اختیاری پیرامیٹر]
پیرامیٹر
NAME مادّے کا نام (لازمی)
ITEM خاصیت کی مدات کی تعداد (اختیاری؛ نہ دینے پر 1)
INPUT بیرونی فائل کا نام (اختیاری)
پیرامیٹر کا نام پیرامیٹر قدر وضاحت
NAME <name> مادّے کا نام
ITEM <ITEMnum> صارف کی تعریف کردہ خاصیت کی مدات کی تعداد
INPUT <filename> بیرونی فائل کا نام (اختیاری)؛ دوسری اور بعد کی سطروں کے ساتھ بھی استعمال کیا جا سکتا ہے

دوسری اور بعد کی سطریں

(دوسری سطر) !ITEM=1, SUBITEM=<k>
(تیسری سطر) VAL1-1-1, VAL1-1-2, … VAL1-1-k, TEMP1-1
(چوتھی سطر) 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> تک تعریف دہرائیں
subپیرامیٹر (!ITEM کے لیے)
SUBITEM ہر خاصیت کی مد میں متعین ذیلی خصوصیت کی مدات کی تعداد
(اختیاری؛ نہ دینے پر 1)
subپیرامیٹر کا نام پیرامیٹر قدر وضاحت
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 مادّی خاصیت کی قدر (درجۂ حرارت سے آزاد)

نوٹ:

  • مادّے کے نام کی تکرار خطا ہے۔
  • اگر !SECTION اختیار میں حوالہ دیا گیا MATERIAL متعین نہ ہو تو خطا ہے۔
  • اگر !ELEMENT اختیار کے پیرامیٹر MATITEM سے ہر عنصر کے لیے خاصیت دی گئی ہو تو وہ قدر ترجیحی طور پر استعمال ہوتی ہے۔ اس صورت میں !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> مادّے کا نام؛ !SECTION کے مادّہ سے مطابقت رکھتا ہے
ITEM <ITEMnum> صارف کی تعریف کردہ خاصیت کی مدات کی تعداد (1 یا زیادہ)
<Young_modulus>----- Young کا معاملِ لچک (لازمی)
<Poisson_ratio>------- Poisson کی نسبت (لازمی)
<Density>-------------- کمیتی کثافت (ITEMnum=2 پر لازمی)
< Expansion_coeff >-- خطی حرارتی پھیلاؤ کا عددی سر (ITEMnum=3 پر)

(مثال)

!MATERIAL, NAME=M1,
ITEM=3                   --- مادّہ M1 کے لیے تین قسم کی خاصیت کی قدریں متعین کی جاتی ہیں
!ITEM=1, SUBITEM=2       --- !ITEM=1 میں Young کا معاملِ لچک اور Poisson کی نسبت متعین کریں (لازمی)
4000.0, 0.3
!ITEM=2                  --- !ITEM=2 میں کمیتی کثافت متعین کریں (ITEM=2 پر لازمی)
8.0102E-0
!ITEM=3                  --- !ITEM=3 میں خطی حرارتی پھیلاؤ کا عددی سر متعین کریں
1.0E-5

نوٹ:

  • موڈل تجزیے میں درجۂ حرارت پر منحصر مادّہ استعمال نہیں کیا جا سکتا۔

حرارت ترسیل کا تجزیہ

لنک، سطحی، ٹھوس اور سہ ابعادی پلیٹ عناصر کے لیے

!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 کے مادّہ سے مطابقت رکھتا ہے
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.

انٹرفیس عناصر کے لیے

!SECTION ہیڈر میں متعین کریں۔ (مادی ڈیٹا کی ضرورت نہیں)

(مثال)

!SECTION, TYPE=INTERFACE, EGRP=GAP   --- سیکشن کی تعریف
1.0, 20.15, 8.99835E-9, 8.99835E-9

اوپر کے !SECTION میں انٹرفیس عنصر کے لیے گروپ نام گیپ میں شامل عناصر کے گیپ پیرامیٹرز متعین کیے گئے ہیں۔

  • پہلا پیرامیٹر: گیپ کی چوڑائی
  • دوسرا پیرامیٹر: گیپ حرارت منتقلی کا عددی سر
  • تیسرا پیرامیٹر: گیپ اشعاع کا عددی سر 1
  • چوتھا پیرامیٹر: گیپ اشعاع کا عددی سر 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