Preskočiť na obsah

Spracovanie geometrických okrajových podmienok

Newtonova-Raphsonova metóda rieši v každej iterácii lineárnu rovnicu \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\), geometrické okrajové podmienky (obmedzenia posunutia) však do tejto rovnice ešte nie sú zahrnuté. Táto kapitola ukazuje, ako upraviť maticu tuhosti \(\boldsymbol{K}\) a vektor rezíduí \(\boldsymbol{R}\) pre stupne voľnosti, na ktoré sa aplikujú obmedzenia posunutia \(\boldsymbol{u} = \bar{\boldsymbol{u}}\), aby posunutie po iterácii dosiahlo predpísanú hodnotu. Viacbodové väzby (MPC) a nelineárne väzby spojené s kontaktom sa spracúvajú samostatne; pozri Viacbodové väzby a Kontakt.

Zásada ponechania obmedzení posunutia medzi neznámymi premennými

Posunutie uzla podliehajúceho geometrickej okrajovej podmienke už nie je neznámou premennou, ale je pevne nastavené na predpísanú hodnotu \(\bar{u}_i\). Tieto stupne voľnosti by bolo možné považovať za konštanty a eliminovať ich z lineárnej rovnice \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\); FrontISTR však vynucuje obmedzenia úpravou \(\boldsymbol{K}\) a \(\boldsymbol{R}\), pričom obmedzené stupne voľnosti ponecháva v korekčnom vektore \(d\boldsymbol{u}\) rovnakým spôsobom ako ostatné stupne voľnosti.

Pri tomto prístupe sa rozmery matice koeficientov ani poradie stupňov voľnosti nemenia podľa prítomnosti obmedzení, takže nie je potrebné eliminovať premenné a znovu usporadúvať uvoľnené riadky a stĺpce. Keďže takéto preusporiadanie je pri implementácii ukladajúcej maticu koeficientov v riedkom tvare nepraktické, FrontISTR používa druhý prístup, pri ktorom sa obmedzenia vynucujú výhradne aktualizáciou matice koeficientov a pravej strany.

Cieľová hodnota korekcií Newtonovej-Raphsonovej metódy

Pre stupeň voľnosti \(i\) s obmedzeným posunutím nech je korekcia \(du_i\) získaná v Newtonovej-Raphsonovej iterácii

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1. iterácia}) \\ 0 & (\text{2. a nasledujúce iterácie}) \end{cases} \]

Upravte \(\boldsymbol{K}\) a \(\boldsymbol{R}\) tak, aby korekcia nadobudla túto hodnotu. V prvej iterácii tak prírastok posunutia dosiahne predpísanú hodnotu \(\bar{u}_i\); od druhej iterácie je korekcia \(0\) a predpísaná hodnota sa zachová.

Postup úpravy matice a vektora rezíduí

Cieľová hodnota opísaná v predchádzajúcej časti sa dosiahne nasledujúcimi dvoma úpravami pri zachovaní tvaru lineárnej rovnice \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\).

  1. Diagonalizácia riadku \(i\): Diagonálny člen \(K_{ii}\), teda koeficient pri \(du_i\), nahraďte hodnotou \(1\), všetky ostatné koeficienty \(K_{ij}\ (j \not= i)\) nahraďte hodnotou \(0\) a pravú stranu nastavte na \(R_i \to d\bar{u}_i\). Rovnica v riadku \(i\) sa potom zmení na \(du_i = d\bar{u}_i\).
  2. Presun z riadkov \(j(\not= i)\): Pre každý riadok \(j(\not= i)\), ak \(K_{ji} \not= 0\), presuňte člen \(K_{ji} du_i = K_{ji} d\bar{u}_i\) na pravú stranu. To znamená, že od pravej strany odčítajte \(K_{ji} d\bar{u}_i\) a koeficient \(K_{ji}\) pri \(du_i\) nastavte na \(0\).

V komponentovom tvare si rovnice pred úpravou a po nej zodpovedajú nasledovne.

\[ \begin{bmatrix} K_{11} & K_{12} & \cdots & K_{1i} & \cdots & K_{1N} \\ K_{21} & K_{22} & \cdots & K_{2i} & \cdots & K_{2N} \\ \vdots & \vdots & \ddots & \vdots & & \vdots \\ K_{i1} & K_{i2} & \cdots & K_{ii} & \cdots & K_{iN} \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ K_{N1} & K_{N2} & \cdots & K_{Ni} & \cdots & K_{NN} \\ \end{bmatrix} \begin{bmatrix} du_1 \\ du_2 \\ \vdots \\ du_i \\ \vdots \\ du_N \end{bmatrix} = \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_i \\ \vdots \\ R_N \end{bmatrix} \]
\[ \Longrightarrow \quad \begin{bmatrix} K_{11} & K_{12} & \cdots & 0 & \cdots & K_{1N} \\ K_{21} & K_{22} & \cdots & 0 & \cdots & K_{2N} \\ \vdots & \vdots & \ddots & \vdots & & \vdots \\ 0 & 0 & \cdots & 1 & \cdots & 0 \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ K_{N1} & K_{N2} & \cdots & 0 & \cdots & K_{NN} \\ \end{bmatrix} \begin{bmatrix} du_1 \\ du_2 \\ \vdots \\ du_i \\ \vdots \\ du_N \end{bmatrix} = \begin{bmatrix} R_1 - K_{1i} d\bar{u}_i \\ R_2 - K_{2i} d\bar{u}_i \\ \vdots \\ d\bar{u}_i \\ \vdots \\ R_N - K_{Ni} d\bar{u}_i \\ \end{bmatrix} \]

Označme upravenú maticu koeficientov a pravú stranu postupne \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\). Lineárna rovnica, ktorá sa napokon rieši, je

\[ \tilde{\boldsymbol{K}}\, d\boldsymbol{u} = \tilde{\boldsymbol{R}} \]

Ak existuje viac obmedzených stupňov voľnosti, vyššie uvedené úpravy 1 a 2 sa postupne aplikujú na každý obmedzený stupeň voľnosti \(i\).

Rozsah spracovania v implementácii s riedkou maticou

V implementácii sa matica koeficientov \(\boldsymbol{K}\) ukladá v riedkom tvare. Spracovanie riadkov \(j(\not= i)\) v postupe 2 z predchádzajúcej časti sa preto vykonáva iba pre riadky s nenulovými prvkami v stĺpci \(i\), teda pre stupne voľnosti uzlov spojených prostredníctvom prvkov s obmedzeným stupňom voľnosti \(i\). Pre neprepojené stupne voľnosti platí \(K_{ji} = 0\), takže presun člena nemení pravú stranu. Toto obmedzenie umožňuje vykonať spracovanie väzieb iba lokálnymi operáciami vzhľadom na celkový počet uzlov.

Súvisiace témy

AI-assisted translation May contain errors Official docs Status