Перейти до змісту

Система нумерації елементів і бібліотека функцій форми

Функція форми \(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-вузловий квадратичний чотирикутний елемент (сімейство Serendipity)
Об'ємний елемент 301 2 2-вузловий ферменний елемент
341 4 4-вузловий лінійний тетраедральний елемент
342 10 10-вузловий квадратичний тетраедральний елемент
351 6 6-вузловий лінійний призматичний елемент
352 15 15-вузловий квадратичний призматичний елемент
361 8 8-вузловий лінійний гексаедральний елемент
362 20 20-вузловий квадратичний гексаедральний елемент (сімейство Serendipity)
Інтерфейсний елемент 541 4×2 4-вузловий лінійний елемент чотирикутної грані (недоступний для аналізу напружень)
542 8×2 8-вузловий квадратичний елемент чотирикутної грані (недоступний для аналізу напружень)
Балковий елемент 611 2 2-вузловий балковий елемент Бернуллі–Ейлера (6 ступенів свободи на вузол)
641 2×2 2-вузловий балковий елемент Бернуллі–Ейлера (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): для точки інтегрування \(i\) повертає природні координати \(\boldsymbol{r}_i\).
  • getWeight(fetype, np): для точки інтегрування \(i\) повертає вагу \(w_i\).
  • getShapeFunc(fetype, r, N): у природних координатах \(\boldsymbol{r}\) повертає значення функцій форми \(N_\alpha^e(\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 і внутрішньому форматі однаковий.

Пов'язані теми

AI-assisted translation May contain errors Official docs Status