Skip to content

ប្រព័ន្ធលេខធាតុ និងបណ្ណាល័យអនុគមន៍រាង

អនុគមន៍រាង \(N_\alpha^e(\boldsymbol{r})\) ដែលបានណែនាំក្នុង អនុគមន៍រាង និងការប៉ាន់ស្មានធាតុកំណត់ មានទម្រង់ជាក់លាក់ខុសគ្នាតាមប្រភេទធាតុ។ ជំពូកនេះចាត់ថ្នាក់ក្រុមធាតុដែល FrontISTR ផ្ដល់ជាលេខប្រភេទធាតុ 3 ខ្ទង់ និងបង្ហាញចំណុចប្រទាក់នៃបណ្ណាល័យអនុគមន៍រាងសម្រាប់ដោះស្រាយធាតុនីមួយៗតាមរបៀបឯកសណ្ឋាន។ សម្រាប់ប្រព័ន្ធកូអរដោនេធម្មជាតិ និងទម្រង់ជាក់លាក់នៃអនុគមន៍រាងរបស់ធាតុសូលីដ 3 វិមាត្រ ព្រមទាំងការបម្លែងលំដាប់ថ្នាំងកណ្ដាលគែមរបស់ធាតុលំដាប់ទី 2 សូមមើល អនុគមន៍រាងរបស់ធាតុសូលីដ 3 វិមាត្រ ហើយសម្រាប់មគ្គុទ្ទេសក៍ជ្រើសរើសប្រភេទធាតុ សូមមើល បណ្ណាល័យធាតុ (មុខងារ)

ការចាត់ថ្នាក់ធាតុ និងច្បាប់ដាក់ឈ្មោះ

ប្រភេទធាតុរបស់ FrontISTR ត្រូវបានសម្គាល់ដោយលេខ 3 ខ្ទង់។ អត្ថន័យនៃខ្ទង់នីមួយៗមានដូចខាងក្រោម។

  • ខ្ទង់ទី 1 (ក្រុមធាតុ)៖ 1=ធាតុបន្ទាត់/ត្រាស់, 2=ធាតុប្លង់, 3=ធាតុសូលីដ, 5=ធាតុចំណុចប្រទាក់, 6=ធាតុធ្នឹម, 7=ធាតុសែល។
  • ខ្ទង់ទី 2 (រូបរាងមូលដ្ឋាន)៖ បែងចែករូបរាងធរណីមាត្រនៅក្នុងក្រុមធាតុ (ត្រីកោណ, ចតុកោណ, តេត្រាហេដ្រុង, ត្រីកោណ ព្រីស, ហិចសាហេដ្រុង)។
  • ខ្ទង់ទី 3 (លំដាប់អន្តរប៉ូល)៖ 1=លំដាប់ទី 1 (មានតែថ្នាំងជ្រុង), 2=លំដាប់ទី 2 (រួមមានថ្នាំងកណ្ដាលគែម)។ ជាករណីលើកលែង ធាតុត្រាស់ 2 ថ្នាំងមានលេខ 301។

ធាតុដែលមានផ្ដល់ត្រូវបានបង្ហាញក្នុងតារាងខាងក្រោមដោយបែងចែកតាមក្រុមធាតុ។

ក្រុមធាតុ ប្រភេទធាតុ ចំនួនថ្នាំង សេចក្ដីពណ៌នា
ធាតុបន្ទាត់ 111 2 ធាតុលីង 2 ថ្នាំង (មិនអាចប្រើក្នុងការវិភាគស្ត្រេស)
112 3 ធាតុលីង 3 ថ្នាំង (មិនអាចប្រើក្នុងការវិភាគស្ត្រេស)
ធាតុប្លង់ 231 3 ធាតុត្រីកោណលំដាប់ទី 1
232 6 ធាតុត្រីកោណលំដាប់ទី 2
241 4 ធាតុចតុកោណលំដាប់ទី 1
242 8 ធាតុចតុកោណលំដាប់ទី 2 (គ្រួសារ Serendipity)
ធាតុសូលីដ 301 2 ធាតុត្រាស់ 2 ថ្នាំង
341 4 ធាតុ តេត្រាហេដ្រុង លំដាប់ទី 1
342 10 ធាតុ តេត្រាហេដ្រុង លំដាប់ទី 2
351 6 ធាតុ ត្រីកោណ ព្រីស លំដាប់ទី 1
352 15 ធាតុ ត្រីកោណ ព្រីស លំដាប់ទី 2
361 8 ធាតុ ហិចសាហេដ្រុង លំដាប់ទី 1
362 20 ធាតុ ហិចសាហេដ្រុង លំដាប់ទី 2 (គ្រួសារ Serendipity)
ធាតុចំណុចប្រទាក់ 541 4×2 ធាតុផ្ទៃចតុកោណលំដាប់ទី 1 (មិនអាចប្រើក្នុងការវិភាគស្ត្រេស)
542 8×2 ធាតុផ្ទៃចតុកោណលំដាប់ទី 2 (មិនអាចប្រើក្នុងការវិភាគស្ត្រេស)
ធាតុធ្នឹម 611 2 ធាតុធ្នឹម Bernoulli-Euler 2 ថ្នាំង (6 ដឺក្រេសេរីភាពក្នុងមួយថ្នាំង)
641 2×2 ធាតុធ្នឹម Bernoulli-Euler 2 ថ្នាំង (3 ដឺក្រេសេរីភាពក្នុងមួយថ្នាំង សម្រាប់ការលាយដឺក្រេសេរីភាព)
ធាតុសែល 731 3 ធាតុសែលត្រីកោណ MITC3 (6 ដឺក្រេសេរីភាពក្នុងមួយថ្នាំង)
741 4 ធាតុសែលចតុកោណ MITC4 (6 ដឺក្រេសេរីភាពក្នុងមួយថ្នាំង)
743 9 ធាតុសែលចតុកោណ MITC9 (6 ដឺក្រេសេរីភាពក្នុងមួយថ្នាំង)
761 3×2 ធាតុសែលត្រីកោណ MITC3 (3 ដឺក្រេសេរីភាពក្នុងមួយថ្នាំង សម្រាប់ការលាយដឺក្រេសេរីភាព)
781 4×2 ធាតុសែលចតុកោណ MITC4 (3 ដឺក្រេសេរីភាពក្នុងមួយថ្នាំង សម្រាប់ការលាយដឺក្រេសេរីភាព)

ធាតុ ហិចសាហេដ្រុង លំដាប់ទី 1 លេខ 361 មានទម្រង់បង្កើតច្រើន (អាំងតេក្រាលពេញលេញ, មិនស្រប, B-bar, F-bar) ដែលអាចជ្រើសពីការគ្រប់គ្រងការវិភាគ។ សម្រាប់ព័ត៌មានលម្អិត សូមមើល ទម្រង់បង្កើតធាតុប្រសិទ្ធភាពខ្ពស់

ធាតុធ្នឹម 641 និងធាតុសែល 761/781 គឺជាទម្រង់បង្កើតសម្រាប់ភ្ជាប់ធាតុរចនាសម្ព័ន្ធដែលមាន 6 ដឺក្រេសេរីភាពទៅធាតុសូលីដដែលមាន 3 ដឺក្រេសេរីភាពនៅថ្នាំងដូចគ្នា ដោយតំណាងថ្នាំងរចនាសម្ព័ន្ធមួយជាថ្នាំង 3 ដឺក្រេសេរីភាពចំនួនពីរ។ ទម្រង់បង្កើតខ្លួនវាដូចគ្នានឹងកំណែ 6 ដឺក្រេសេរីភាពដែលត្រូវគ្នា (611, 731, 741)។

បណ្ណាល័យអនុគមន៍រាង

រូទីនគណនាធាតុ (ការបង្កើតម៉ាទ្រីសភាពរឹង និងវ៉ិចទ័រកម្លាំងខាងក្នុង) មិនមានរូទីនដាច់ដោយឡែកសម្រាប់ប្រភេទធាតុនីមួយៗទេ ប៉ុន្តែហៅបណ្ណាល័យអនុគមន៍រាងតាមចំណុចប្រទាក់ឯកសណ្ឋានដែលយកលេខប្រភេទធាតុ fetype ជាអាគុយម៉ង់។ ម៉ូឌុល elementInfo (fistr1/src/lib/element/element.f90) ផ្ដល់អនុគមន៍ដូចខាងក្រោម។

  • NumOfQuadPoints(fetype)៖ ត្រឡប់ចំនួនចំណុចអាំងតេក្រាល \(n_q\) សម្រាប់ប្រភេទធាតុ។
  • getQuadPoint(fetype, np, pos)៖ ត្រឡប់កូអរដោនេធម្មជាតិ \(\boldsymbol{r}_i\) នៃចំណុចអាំងតេក្រាល \(i\)
  • getWeight(fetype, np)៖ ត្រឡប់ទម្ងន់ \(w_i\) នៃចំណុចអាំងតេក្រាល \(i\)
  • getShapeFunc(fetype, r, N)៖ ត្រឡប់តម្លៃអនុគមន៍រាង \(N_\alpha^e(\boldsymbol{r})\) នៅកូអរដោនេធម្មជាតិ \(\boldsymbol{r}\)
  • getShapeDeriv(fetype, r, dN)៖ ត្រឡប់ដេរីវេនៃអនុគមន៍រាងតាមកូអរដោនេធម្មជាតិ \(\partial N_\alpha^e/\partial \boldsymbol{r}\)
  • getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x)៖ ផ្ដល់កូអរដោនេថ្នាំងធាតុ \(\boldsymbol{X}^e\) ហើយត្រឡប់ដេរីវេតាមកូអរដោនេរូបវន្ត \(\partial N_\alpha^e/\partial \boldsymbol{x}\) និងដេទែរមីណង់ យ៉ាកូបៀន \(J\)
  • getNumberOfSubface(fetype), getSubFace(fetype, k, ...)៖ ត្រឡប់ចំនួនផ្ទៃព្រំដែនរបស់ធាតុ និងលេខថ្នាំងដែលបង្កើតផ្ទៃនីមួយៗ។ ប្រើសម្រាប់បង្កើតបន្ទុកផ្ទៃ និងផ្ទៃប៉ះ។

អនុគមន៍នីមួយៗបែងចែកសាខាខាងក្នុងតាមលេខប្រភេទធាតុ ហើយហៅសាប់រូទីនអនុគមន៍រាង និងដេរីវេអនុគមន៍រាងក្នុងម៉ូឌុលថ្នាក់ទាបដែលរៀបចំសម្រាប់ប្រភេទធាតុនីមួយៗ (tet4n.f90, tet10n.f90, prism6n.f90, prism15n.f90, hex8n.f90, hex20n.f90, tri3n.f90, tri6n.f90, quad4n.f90, quad8n.f90, quad9n.f90, line2n.f90, line3n.f90)។ តារាងលេខនៃកូអរដោនេ និងទម្ងន់ចំណុចអាំងតេក្រាលត្រូវបានប្រមូលផ្ដុំក្នុង quadrature.f90។ ពេលបន្ថែមប្រភេទធាតុថ្មី គ្រាន់តែអនុវត្តម៉ូឌុលថ្នាក់ទាបដែលត្រូវគ្នា ហើយបន្ថែមវាទៅសាខានៃអនុគមន៍នីមួយៗក្នុង elementInfo

ការបម្លែងលំដាប់ថ្នាំងកណ្ដាលគែមសម្រាប់ធាតុត្រីកោណលំដាប់ទី 2

សម្រាប់ធាតុត្រីកោណលំដាប់ទី 2 លេខ 232 លំដាប់ថ្នាំងកណ្ដាលគែមខុសគ្នារវាងទម្រង់បញ្ចូលមេស HEC-MW (ច្បាប់ដែលរៀបថ្នាំងជ្រុងជុំវិញជាមុន បន្ទាប់មករៀបថ្នាំងកណ្ដាលគែមតាមគែម 1-2, 2-3, …) និងទម្រង់ខាងក្នុង FrontISTR ដែលអនុគមន៍រាងក្នុងបណ្ណាល័យធាតុសន្មត។ ភាពខុសគ្នានេះត្រូវបានដោះស្រាយដោយ hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 និង hecmw2fstr_connect_conv.c) ដែលត្រូវហៅភ្លាមបន្ទាប់ពីអានមេស ហើយរៀបថ្នាំង 6 ឡើងវិញជា \(\{1,2,3,6,4,5\}\) តាមតារាងបម្លែង Table232។ ដោយសារការបម្លែងធ្វើដោយផ្ទាល់លើអារេផ្ទុកព័ត៌មានការតភ្ជាប់ធាតុ ការហៅបណ្ណាល័យធាតុបន្ទាប់ទាំងអស់ប្រើលំដាប់ថ្នាំងខាងក្នុង FrontISTR។ ពេលបញ្ចេញលទ្ធផល fstr2hecmw_mesh_conv ធ្វើបម្លែងបញ្ច្រាសទៅទម្រង់ HEC-MW មុនសរសេរ ដូច្នេះអ្នកប្រើត្រូវយកចិត្តទុកដាក់តែទម្រង់ HEC-MW ទាំងសម្រាប់បញ្ចូល និងបញ្ចេញ។

ធាតុសូលីដ 3 វិមាត្រ 342 (តេត្រាហេដ្រុង លំដាប់ទី 2) និង 352 (ត្រីកោណ ព្រីស លំដាប់ទី 2) ក៏មានការបម្លែងស្វ័យប្រវត្តិប្រភេទដូចគ្នា ខណៈ 362 (ហិចសាហេដ្រុង លំដាប់ទី 2) មិនមានការបម្លែងទេ។ សម្រាប់ការដោះស្រាយទាំងនេះ សូមមើល អនុគមន៍រាងរបស់ធាតុសូលីដ 3 វិមាត្រ។ សម្រាប់ធាតុប្លង់ចតុកោណលំដាប់ទី 2 លេខ 242 និងធាតុចំណុចប្រទាក់ 542 មិនមានការបម្លែងទេ ព្រោះលំដាប់ថ្នាំងកណ្ដាលគែមរបស់ទម្រង់បញ្ចូល HEC-MW និងទម្រង់ខាងក្នុងដូចគ្នា។

ប្រធានបទពាក់ព័ន្ធ