Иди на текст

Третман геометријских граничних услова

Њутн–Рафсонова метода у свакој итерацији решава линеарну једначину \(\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\) добијена у Њутн–Рафсоновој итерацији буде

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1. итерација}) \\ 0 & (\text{2. и наредне итерације}) \end{cases} \]

Измените \(\boldsymbol{K}\) и \(\boldsymbol{R}\) тако да корекција добије ову вредност. На тај начин инкремент померања достиже прописану вредност \(\bar{u}_i\) у првој итерацији; од друге итерације надаље корекција постаје \(0\) и прописана вредност се одржава.

Поступак измене матрице и вектора резидуала

Циљна вредност описана у претходном одељку постиже се следећим двема изменама, уз задржавање облика линеарне једначине \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\).

  1. Дијагонализација реда \(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\).
  2. Пренос из редова \(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\).

У компонентном облику, једначине пре и после измене одговарају једна другој на следећи начин.

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

Нека се измењена матрица коефицијената и десна страна означе са \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\). Линеарна једначина која се на крају решава је

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

Ако постоји више ограничених степени слободе, горње измене 1 и 2 примењују се редом на сваки ограничени степен слободе \(i\).

Опсег обраде у имплементацији ретке матрице

У имплементацији се матрица коефицијената \(\boldsymbol{K}\) чува у облику ретке матрице. Зато се обрада редова \(j(\not= i)\) у поступку 2 из претходног одељка врши само за редове који имају ненулте елементе у колони \(i\), односно за степене слободе чворова који су преко елемената повезани са ограниченим степеном слободе \(i\). За неповезане степене слободе важи \(K_{ji} = 0\), па пренос члана не мења десну страну. Ово ограничење омогућава да се обрада ограничења заврши само локалним операцијама у односу на укупан број чворова.

Повезане теме

AI-assisted translation May contain errors Official docs Status