Skoči na vsebino

Obravnava geometrijskih robnih pogojev

Newton-Raphsonova metoda pri vsaki iteraciji rešuje linearno enačbo \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\), vendar geometrijski robni pogoji (omejitve pomikov) v tej enačbi še niso upoštevani. To poglavje prikazuje, kako se matrika togosti \(\boldsymbol{K}\) in rezidualni vektor \(\boldsymbol{R}\) spremenita za prostostne stopnje, na katere so uporabljene omejitve pomika \(\boldsymbol{u} = \bar{\boldsymbol{u}}\), tako da pomik po iteraciji doseže predpisano vrednost. Večtočkovne omejitve (MPC) in nelinearne omejitve, povezane s kontaktom, se obravnavajo ločeno; glejte Večtočkovne omejitve in Kontakt.

Načelo ohranitve omejenih pomikov kot neznank

Pomik vozlišča, na katerega deluje geometrijski robni pogoj, ni več neznanka, temveč je določen na predpisano vrednost \(\bar{u}_i\). Te prostostne stopnje bi bilo mogoče obravnavati kot konstante in jih izločiti iz linearne enačbe \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\); FrontISTR pa omejitve uveljavi s spremembo \(\boldsymbol{K}\) in \(\boldsymbol{R}\), pri čemer omejene prostostne stopnje ostanejo v korekcijskem vektorju \(d\boldsymbol{u}\) enako kot druge prostostne stopnje.

Pri tem pristopu se dimenzije koeficientne matrike in vrstni red prostostnih stopenj ne spreminjajo glede na prisotnost omejitev, zato spremenljivk ni treba izločati in ponovno zgoščati sproščenih vrstic ter stolpcev. Ker je takšno prepakiranje nerodno pri izvedbi, ki koeficientno matriko hrani v redki obliki, FrontISTR uporablja pristop, pri katerem se omejitve uveljavijo izključno s posodobitvijo koeficientne matrike in desne strani.

Ciljna vrednost Newton-Raphsonovih popravkov

Za prostostno stopnjo \(i\) z omejenim pomikom naj bo popravek \(du_i\), dobljen v Newton-Raphsonovi iteraciji,

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1st iteration}) \\ 0 & (\text{2nd and subsequent iterations}) \end{cases} \]

\(\boldsymbol{K}\) in \(\boldsymbol{R}\) se spremenita tako, da popravek dobi to vrednost. S tem prirastek pomika v prvi iteraciji doseže predpisano vrednost \(\bar{u}_i\); od druge iteracije naprej je popravek \(0\) in predpisana vrednost se ohranja.

Postopek spreminjanja matrike in rezidualnega vektorja

Ciljna vrednost iz prejšnjega razdelka se doseže z naslednjima dvema spremembama, pri čemer se ohrani oblika linearne enačbe \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\).

  1. Diagonalizacija vrstice \(i\): Diagonalni člen \(K_{ii}\), koeficient pri \(du_i\), zamenjajte z \(1\), vse druge koeficiente \(K_{ij}\ (j \not= i)\) z \(0\), desno stran pa nastavite na \(R_i \to d\bar{u}_i\). Enačba v vrstici \(i\) tako postane \(du_i = d\bar{u}_i\).
  2. Prenos iz vrstic \(j(\not= i)\): Za vsako vrstico \(j(\not= i)\), kjer je \(K_{ji} \not= 0\), prenesite člen \(K_{ji} du_i = K_{ji} d\bar{u}_i\) na desno stran. To pomeni, da od desne strani odštejete \(K_{ji} d\bar{u}_i\), koeficient \(K_{ji}\) pri \(du_i\) pa nastavite na \(0\).

V komponentnem zapisu so enačbe pred in po spremembi povezane takole.

\[ \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} \]

Spremenjeno koeficientno matriko in desno stran označimo z \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\). Linearna enačba, ki jo je na koncu treba rešiti, je

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

Če obstaja več omejenih prostostnih stopenj, se zgornji spremembi 1 in 2 zaporedoma uporabita za vsako omejeno prostostno stopnjo \(i\).

Obseg obdelave pri izvedbi z redko matriko

V izvedbi je koeficientna matrika \(\boldsymbol{K}\) shranjena v redki obliki. Zato se obdelava vrstic \(j(\not= i)\) iz postopka 2 prejšnjega razdelka izvaja samo za vrstice z neničelnimi elementi v stolpcu \(i\), torej za prostostne stopnje vozlišč, ki so prek elementov povezana z omejeno prostostno stopnjo \(i\). Za nepovezane prostostne stopnje je \(K_{ji} = 0\), zato prenos člena ne spremeni desne strani. Ta omejitev omogoča, da se obdelava omejitev zaključi samo z lokalnimi operacijami glede na celotno število vozlišč.

Sorodne teme

AI-assisted translation May contain errors Official docs Status