Обробка геометричних граничних умов¶
У методі Ньютона—Рафсона на кожній ітерації розв'язується лінійне рівняння \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\), але геометричні граничні умови (обмеження переміщень) у нього ще не включено. У цьому розділі показано, як змінювати матрицю жорсткості \(\boldsymbol{K}\) і вектор нев'язки \(\boldsymbol{R}\) для ступенів свободи, на які накладено обмеження переміщення \(\boldsymbol{u} = \bar{\boldsymbol{u}}\), щоб після ітерації переміщення досягало заданого значення. Багатоточкові обмеження (MPC) і нелінійні обмеження, пов'язані з контактом, обробляються окремо; див. Багатоточкові обмеження і Контакт.
Принцип збереження обмежених переміщень серед невідомих¶
Переміщення вузла, на який накладено геометричну граничну умову, більше не є невідомим, а фіксується заданим значенням \(\bar{u}_i\). Такі ступені свободи можна було б розглядати як сталі та виключити з лінійного рівняння \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\); однак FrontISTR реалізує обмеження, змінюючи \(\boldsymbol{K}\) і \(\boldsymbol{R}\) та водночас залишаючи обмежені ступені свободи у векторі поправок \(d\boldsymbol{u}\) нарівні з іншими ступенями свободи.
За такого підходу розмірність матриці коефіцієнтів і порядок ступенів свободи не залежать від наявності обмежень, тому немає потреби вилучати змінні та перепаковувати звільнені рядки й стовпці. Оскільки така перепаковка є складною в реалізації зі зберіганням матриці коефіцієнтів у розрідженому форматі, FrontISTR використовує другий підхід, за якого обмеження забезпечуються лише оновленням матриці коефіцієнтів і правої частини.
Цільове значення поправки Ньютона—Рафсона¶
Для обмеженого за переміщенням ступеня свободи \(i\) поправка \(du_i\), що визначається на ітерації Ньютона—Рафсона, має дорівнювати
Матриця \(\boldsymbol{K}\) і вектор \(\boldsymbol{R}\) змінюються так, щоб поправка набувала цього значення. Завдяки цьому на першій ітерації приріст переміщення досягає заданого значення \(\bar{u}_i\), а від другої ітерації поправка стає \(0\) і задане значення зберігається.
Процедура зміни матриці та вектора нев'язки¶
Цільове значення з попереднього розділу досягається двома наведеними нижче перетвореннями зі збереженням форми лінійного рівняння \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\).
- Діагоналізація рядка \(i\): діагональний член \(K_{ii}\), який є коефіцієнтом при \(du_i\), замінюється на \(1\), усі інші коефіцієнти \(K_{ij}\ (j \not= i)\) — на \(0\), а права частина задається як \(R_i \to d\bar{u}_i\). Тоді рівняння рядка \(i\) набуває вигляду \(du_i = d\bar{u}_i\).
- Перенесення з рядків \(j(\not= i)\): для кожного рядка \(j(\not= i)\), якщо \(K_{ji} \not= 0\), член \(K_{ji} du_i = K_{ji} d\bar{u}_i\) переноситься в праву частину. Тобто з правої частини віднімається \(K_{ji} d\bar{u}_i\), а коефіцієнт \(K_{ji}\) при \(du_i\) встановлюється в \(0\).
У покомпонентному записі рівняння до і після перетворення відповідають одне одному так.
Позначимо змінену матрицю коефіцієнтів і праву частину відповідно як \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\). Остаточне лінійне рівняння, яке потрібно розв'язати:
Якщо існує кілька обмежених ступенів свободи, наведені вище перетворення 1 і 2 послідовно застосовуються до кожного обмеженого ступеня свободи \(i\).
Обсяг обробки в реалізації з розрідженою матрицею¶
У реалізації матриця коефіцієнтів \(\boldsymbol{K}\) зберігається в розрідженому форматі. Тому обробка рядків \(j(\not= i)\) у процедурі 2 попереднього розділу виконується лише для рядків, що мають ненульові елементи у стовпці \(i\), тобто для ступенів свободи вузлів, з'єднаних через елементи з обмеженим ступенем свободи \(i\). Для нез'єднаних ступенів свободи \(K_{ji} = 0\), тому перенесення члена не змінює правої частини. Це обмеження дає змогу завершити обробку обмежень лише локальними операціями відносно загальної кількості вузлів.
Пов'язані теми¶
- Віртуальна робота зовнішніх сил і складання глобального рівняння — Побудова \(\boldsymbol{K}, \boldsymbol{R}\) до модифікації
- Метод Ньютона—Рафсона — Зв'язок з ітерацією для визначення поправки \(d\boldsymbol{u}\)
- Критерії збіжності — Оцінювання норми нев'язки \(\tilde{\boldsymbol{R}}\) після обробки обмежень