انتقل إلى المحتوى

نظام ترقيم العناصر ومكتبة دوال الشكل

لدالة الشكل \(N_\alpha^e(\boldsymbol{r})\) المقدَّمة في دوال الشكل وتقريب العناصر المحدودة صيغة محددة لكل نوع عنصر. يصنّف هذا الفصل مجموعات العناصر التي يوفرها FrontISTR باستخدام أرقام أنواع عناصر مكوّنة من ثلاثة أرقام، ويعرض واجهة مكتبة دوال الشكل للتعامل الموحد مع كل عنصر. تُعرض أنظمة الإحداثيات الطبيعية ودوال الشكل المحددة للعناصر الصلبة ثلاثية الأبعاد، وكذلك تحويل ترتيب العقد الوسطية للعناصر التربيعية، في دوال شكل العناصر الصلبة ثلاثية الأبعاد، بينما ترد إرشادات اختيار أنواع العناصر في مكتبة العناصر (الوظائف).

تصنيف العناصر وقواعد التسمية

تُعرَّف أنواع عناصر FrontISTR بأرقام مكوّنة من ثلاثة أرقام. ويكون معنى كل رقم كما يلي.

  • الرقم الأول (مجموعة العنصر): 1 = عنصر خطي/جمالون، 2 = عنصر مستوٍ، 3 = عنصر صلب، 5 = عنصر واجهة، 6 = عنصر عارضة، 7 = عنصر قشرة.
  • الرقم الثاني (الشكل الأساسي): يميّز الشكل الهندسي ضمن مجموعة العنصر (مثلث، رباعي الأضلاع، رباعي السطوح، منشور، أو سداسي السطوح).
  • الرقم الثالث (رتبة الاستيفاء): 1 = رتبة أولى (عقد الركن فقط)، 2 = رتبة ثانية (بما في ذلك العقد الوسطية). وكاستثناء، رقم عنصر الجمالون ذي العقدتين هو 301.

تُدرج العناصر المتاحة حسب مجموعة العنصر في الجدول التالي.

مجموعة العنصر نوع العنصر عدد العقد الوصف
عنصر خطي 111 2 عنصر وصلة بعقدتين (غير متاح لتحليل الإجهاد)
112 3 عنصر وصلة بثلاث عقد (غير متاح لتحليل الإجهاد)
عنصر مستوٍ 231 3 عنصر مثلثي خطي بثلاث عقد
232 6 عنصر مثلثي تربيعي بست عقد
241 4 عنصر رباعي الأضلاع خطي بأربع عقد
242 8 عنصر رباعي الأضلاع تربيعي بثماني عقد (عائلة Serendipity)
عنصر صلب 301 2 عنصر جمالون بعقدتين
341 4 عنصر رباعي السطوح خطي بأربع عقد
342 10 عنصر رباعي السطوح تربيعي بعشر عقد
351 6 عنصر منشوري خطي بست عقد
352 15 عنصر منشوري تربيعي بخمس عشرة عقدة
361 8 عنصر سداسي السطوح خطي بثماني عقد
362 20 عنصر سداسي السطوح تربيعي بعشرين عقدة (عائلة Serendipity)
عنصر واجهة 541 4×2 عنصر وجه رباعي الأضلاع خطي بأربع عقد (غير متاح لتحليل الإجهاد)
542 8×2 عنصر وجه رباعي الأضلاع تربيعي بثماني عقد (غير متاح لتحليل الإجهاد)
عنصر عارضة 611 2 عنصر عارضة Bernoulli-Euler بعقدتين (6 درجات حرية لكل عقدة)
641 2×2 عنصر عارضة Bernoulli-Euler بعقدتين (3 درجات حرية لكل عقدة، لدرجات الحرية المختلطة)
عنصر قشرة 731 3 عنصر قشرة مثلثي MITC3 (6 درجات حرية لكل عقدة)
741 4 عنصر قشرة رباعي MITC4 (6 درجات حرية لكل عقدة)
743 9 عنصر قشرة رباعي MITC9 (6 درجات حرية لكل عقدة)
761 3×2 عنصر قشرة مثلثي MITC3 (3 درجات حرية لكل عقدة، لدرجات الحرية المختلطة)
781 4×2 عنصر قشرة رباعي MITC4 (3 درجات حرية لكل عقدة، لدرجات الحرية المختلطة)

لعنصر سداسي السطوح الخطي 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.

تحويل ترتيب العقد الوسطية للعناصر المثلثية التربيعية

بالنسبة إلى العنصر المثلثي التربيعي 232، يختلف ترتيب العقد الوسطية بين تنسيق إدخال شبكة HEC-MW (الذي يرتب عقد الركن حول العنصر ثم العقد الوسطية على الحواف 1-2، 2-3، …) والتنسيق الداخلي لـ FrontISTR الذي تفترضه دوال الشكل في مكتبة العناصر. يُحل الاختلاف بين التنسيقين مباشرة بعد تحميل الشبكة بواسطة hecmw2fstr_mesh_conv ‏(fistr1/src/common/hecmw2fstr_mesh_conv.f90 وhecmw2fstr_connect_conv.c)، الذي يعيد ترتيب العقد الست إلى \(\{1,2,3,6,4,5\}\) وفق جدول التحويل Table232. ولأن التحويل يُجرى مباشرة على المصفوفة التي تخزن اتصال العنصر، تستخدم جميع استدعاءات مكتبة العناصر اللاحقة ترتيب العقد الداخلي لـ FrontISTR. وعند إخراج النتائج، يعيد التحويل العكسي fstr2hecmw_mesh_conv تنسيق HEC-MW قبل الكتابة، لذلك لا يحتاج المستخدمون إلا إلى معرفة تنسيق HEC-MW لكل من الإدخال والإخراج.

تخضع العناصر الصلبة التربيعية ثلاثية الأبعاد 342 (رباعي السطوح) و352 (منشور) لتحويلات تلقائية مشابهة، بينما لا يوجد تحويل للعنصر 362 (سداسي السطوح تربيعي). راجع دوال شكل العناصر الصلبة ثلاثية الأبعاد لمعالجة هذه العناصر. ولا يُجرى تحويل للعنصر المستوي الرباعي التربيعي 242 وعنصر الواجهة 542 لأن ترتيب العقد الوسطية متماثل في تنسيق إدخال HEC-MW والتنسيق الداخلي.

موضوعات ذات صلة