Preskoči na sadržaj

Obrada geometrijskih rubnih uvjeta

Newton-Raphsonova metoda u svakoj iteraciji rješava linearnu jednadžbu \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\), ali geometrijski rubni uvjeti (ograničenja pomaka) još nisu uključeni u tu jednadžbu. Ovo poglavlje pokazuje kako izmijeniti matricu krutosti \(\boldsymbol{K}\) i vektor reziduala \(\boldsymbol{R}\) za stupnjeve slobode na koje se primjenjuju ograničenja pomaka \(\boldsymbol{u} = \bar{\boldsymbol{u}}\), tako da pomak nakon iteracije dosegne zadanu vrijednost. Višetočkasta ograničenja (MPC) i nelinearna ograničenja povezana s kontaktom obrađuju se zasebno; pogledajte Višetočkasta ograničenja i Kontakt.

Načelo zadržavanja ograničenja pomaka kao nepoznatih varijabli

Pomak čvora pod geometrijskim rubnim uvjetom više nije nepoznata varijabla, nego je fiksiran na zadanu vrijednost \(\bar{u}_i\). Ti stupnjevi slobode mogli bi se tretirati kao konstante i eliminirati iz linearne jednadžbe \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\); međutim, FrontISTR nameće ograničenja izmjenom \(\boldsymbol{K}\) i \(\boldsymbol{R}\), pri čemu ograničene stupnjeve slobode zadržava u vektoru korekcije \(d\boldsymbol{u}\) na isti način kao ostale stupnjeve slobode.

Ovim pristupom dimenzije matrice koeficijenata i redoslijed stupnjeva slobode ne mijenjaju se ovisno o prisutnosti ograničenja, pa nema potrebe za eliminacijom varijabli i ponovnim pakiranjem oslobođenih redaka i stupaca. Budući da je takvo prepakiranje nezgrapno u implementaciji koja matricu koeficijenata pohranjuje u rijetkom obliku, FrontISTR primjenjuje potonji pristup, u kojem se ograničenja nameću isključivo ažuriranjem matrice koeficijenata i desne strane.

Ciljna vrijednost Newton-Raphsonovih korekcija

Za stupanj slobode \(i\) s ograničenim pomakom neka korekcija \(du_i\) dobivena Newton-Raphsonovom iteracijom bude

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1. iteracija}) \\ 0 & (\text{2. i sljedeće iteracije}) \end{cases} \]

Izmijenite \(\boldsymbol{K}\) i \(\boldsymbol{R}\) tako da korekcija poprimi ovu vrijednost. Time prirast pomaka u prvoj iteraciji doseže zadanu vrijednost \(\bar{u}_i\); od druge iteracije nadalje korekcija postaje \(0\) i zadana se vrijednost održava.

Postupak izmjene matrice i vektora reziduala

Ciljna vrijednost opisana u prethodnom odjeljku postiže se sljedećim dvjema izmjenama uz zadržavanje oblika linearne jednadžbe \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\).

  1. Dijagonalizacija retka \(i\): dijagonalni član \(K_{ii}\), koeficijent uz \(du_i\), zamijenite s \(1\), sve ostale koeficijente \(K_{ij}\ (j \not= i)\) s \(0\), a desnu stranu postavite na \(R_i \to d\bar{u}_i\). Jednadžba u retku \(i\) tada postaje \(du_i = d\bar{u}_i\).
  2. Premještanje iz redaka \(j(\not= i)\): za svaki redak \(j(\not= i)\), ako je \(K_{ji} \not= 0\), premjestite član \(K_{ji} du_i = K_{ji} d\bar{u}_i\) na desnu stranu. Drugim riječima, od desne strane oduzmite \(K_{ji} d\bar{u}_i\), a koeficijent \(K_{ji}\) uz \(du_i\) postavite na \(0\).

U komponentnom obliku jednadžbe prije i nakon izmjene odgovaraju sljedećem prikazu.

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

Neka se izmijenjena matrica koeficijenata i desna strana označe s \(\tilde{\boldsymbol{K}}\) odnosno \(\tilde{\boldsymbol{R}}\). Linearna jednadžba koja se na kraju rješava glasi

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

Ako postoji više ograničenih stupnjeva slobode, prethodne izmjene 1 i 2 uzastopno se primjenjuju na svaki ograničeni stupanj slobode \(i\).

Opseg obrade u implementaciji rijetke matrice

U implementaciji se matrica koeficijenata \(\boldsymbol{K}\) pohranjuje u obliku rijetke matrice. Zato se obrada redaka \(j(\not= i)\) iz postupka 2 prethodnog odjeljka provodi samo za retke koji imaju nenulti element u stupcu \(i\), odnosno za stupnjeve slobode čvorova koji su preko elemenata povezani s ograničenim stupnjem slobode \(i\). Za nepovezane stupnjeve slobode vrijedi \(K_{ji} = 0\), pa premještanje člana ne mijenja desnu stranu. Ovo ograničenje omogućuje da se obrada ograničenja dovrši samo lokalnim operacijama u odnosu na ukupan broj čvorova.

Povezane teme

AI-assisted translation May contain errors Official docs Status