پرش به محتویات

پردازش شرایط مرزی هندسی

در روش Newton-Raphson، معادله خطی \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) در هر تکرار حل می‌شود، اما شرایط مرزی هندسی (قیود جابه‌جایی) هنوز در آن اعمال نشده‌اند. این فصل نشان می‌دهد برای درجات آزادی دارای قید جابه‌جایی \(\boldsymbol{u} = \bar{\boldsymbol{u}}\) چگونه باید ماتریس سختی \(\boldsymbol{K}\) و بردار باقیمانده \(\boldsymbol{R}\) را اصلاح کرد تا جابه‌جایی پس از تکرار به مقدار تجویزشده برسد. قیود چندنقطه‌ای (MPC) و قیود غیرخطی ناشی از تماس جداگانه پردازش می‌شوند؛ به قیود چندنقطه‌ای و تماس مراجعه کنید.

سیاست نگه داشتن درجات آزادی مقید در میان مجهولات

جابه‌جایی گره‌ای که شرط مرزی هندسی دارد دیگر مجهول نیست و روی مقدار تجویزشده \(\bar{u}_i\) ثابت می‌شود. می‌توان این درجات آزادی را ثابت در نظر گرفت و از معادله خطی \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) حذف کرد؛ اما FrontISTR با حفظ درجات آزادی مقید در همان بردار اصلاح \(d\boldsymbol{u}\) در کنار سایر درجات آزادی، و با بازنویسی \(\boldsymbol{K}\) و \(\boldsymbol{R}\)، قید را اعمال می‌کند.

در این روش، ابعاد ماتریس ضرایب و ترتیب درجات آزادی با وجود یا عدم وجود قید تغییر نمی‌کند؛ بنابراین نیازی به حذف متغیرها و فشرده‌سازی دوباره سطرها و ستون‌های خالی نیست. چون این فشرده‌سازی در پیاده‌سازی مبتنی بر ماتریس تنک پیچیده است، FrontISTR روش دوم را به‌کار می‌گیرد که قید را فقط با به‌روزرسانی ماتریس ضرایب و سمت راست اعمال می‌کند.

مقدار هدف اصلاح Newton-Raphson

برای درجه آزادی مقید به جابه‌جایی \(i\)، اصلاح \(du_i\) حاصل از تکرار Newton-Raphson باید به صورت زیر باشد:

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{تکرار اول}) \\ 0 & (\text{تکرار دوم و پس از آن}) \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\) است و انتقال جمله سمت راست را تغییر نمی‌دهد. با این محدودیت، اعمال قید فقط با عملیات محلی نسبت به تعداد کل گره‌ها کامل می‌شود.

موارد مرتبط