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

سامانه شماره‌گذاری المان‌ها و کتابخانه توابع شکل

تابع شکل \(N_\alpha^e(\boldsymbol{r})\) که در توابع شکل و تقریب اجزای محدود معرفی شد، برای هر نوع المان فرم مشخصی دارد. این فصل گروه‌های المانی ارائه‌شده در FrontISTR را با استفاده از شماره‌های سه‌رقمی نوع المان طبقه‌بندی می‌کند و رابط کتابخانه توابع شکل را برای پردازش یکنواخت هر المان ارائه می‌دهد. دستگاه‌های مختصات طبیعی و توابع شکل مشخص المان‌های جامد سه‌بعدی، و نیز تبدیل ترتیب گره‌های میانی برای المان‌های درجه دوم در توابع شکل المان‌های جامد سه‌بعدی بررسی می‌شوند؛ راهنمای انتخاب نوع المان نیز در کتابخانه المان (قابلیت‌ها) ارائه شده است.

طبقه‌بندی المان و قواعد نام‌گذاری

انواع المان FrontISTR با شماره‌های سه‌رقمی شناسایی می‌شوند. معنی هر رقم به‌صورت زیر است.

  • رقم اول (گروه المان): 1 = المان خطی/خرپا، 2 = المان صفحه‌ای، 3 = المان جامد، 5 = المان واسط، 6 = المان تیر، 7 = المان پوسته.
  • رقم دوم (شکل پایه): شکل هندسی را درون گروه المان متمایز می‌کند (مثلث، چهارضلعی، چهاروجهی، منشور یا شش‌وجهی).
  • رقم سوم (مرتبه درون‌یابی): 1 = مرتبه اول (فقط گره‌های گوشه)، 2 = مرتبه دوم (شامل گره‌های میانی ضلع). به‌عنوان استثنا، المان خرپای دوگره‌ای شماره 301 دارد.

المان‌های ارائه‌شده بر حسب گروه المان در جدول زیر فهرست شده‌اند.

گروه المان نوع المان تعداد گره‌ها توضیح
المان خطی 111 2 المان پیوندی 2 گره‌ای (برای تحلیل تنش قابل استفاده نیست)
112 3 المان پیوندی 3 گره‌ای (برای تحلیل تنش قابل استفاده نیست)
المان صفحه‌ای 231 3 المان مثلثی خطی 3 گره‌ای
232 6 المان مثلثی درجه دوم 6 گره‌ای
241 4 المان چهارضلعی خطی 4 گره‌ای
242 8 المان چهارضلعی درجه دوم 8 گره‌ای (خانواده سرندیپیتی)
المان جامد 301 2 المان خرپای 2 گره‌ای
341 4 المان چهاروجهی خطی 4 گره‌ای
342 10 المان چهاروجهی درجه دوم 10 گره‌ای
351 6 المان منشوری خطی 6 گره‌ای
352 15 المان منشوری درجه دوم 15 گره‌ای
361 8 المان شش‌وجهی خطی 8 گره‌ای
362 20 المان شش‌وجهی درجه دوم 20 گره‌ای (خانواده سرندیپیتی)
المان واسط 541 4×2 المان وجه چهارضلعی خطی 4 گره‌ای (برای تحلیل تنش قابل استفاده نیست)
542 8×2 المان وجه چهارضلعی درجه دوم 8 گره‌ای (برای تحلیل تنش قابل استفاده نیست)
المان تیر 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) برطرف می‌شود؛ این روال شش گره را مطابق جدول تبدیل Table232 به ترتیب \(\{1,2,3,6,4,5\}\) بازمرتب می‌کند. چون تبدیل مستقیماً روی آرایه ذخیره‌کننده اتصال المان انجام می‌شود، همه فراخوانی‌های بعدی کتابخانه المان از ترتیب گره داخلی FrontISTR استفاده می‌کنند. هنگام خروجی نتیجه، تبدیل معکوس fstr2hecmw_mesh_conv پیش از نوشتن، قالب HEC-MW را بازمی‌گرداند؛ بنابراین کاربران فقط باید از قالب HEC-MW برای ورودی و خروجی آگاه باشند.

المان‌های جامد سه‌بعدی درجه دوم 342 (چهاروجهی) و 352 (منشوری) تبدیل‌های خودکار مشابه دارند، در حالی که 362 (شش‌وجهی درجه دوم) هیچ تبدیلی ندارد. برای نحوه برخورد با آن‌ها به توابع شکل المان‌های جامد سه‌بعدی مراجعه کنید. برای المان چهارضلعی صفحه‌ای درجه دوم 242 و المان واسط 542 تبدیلی انجام نمی‌شود، زیرا ترتیب گره‌های میانی ضلع در قالب ورودی HEC-MW و قالب داخلی یکسان است.

موارد مرتبط