Вектор нагрузки 2D

Теперь вычислим вектор нагрузки для двумерного случая. Вектор нагрузки связан с интегралом произведения функции источника на пробную функцию. Рассмотрим интеграл для одного треугольника с вершинами (xi,yi),(xi+1,yi+1),(xi+2,yi+2)(x_i, y_i), (x_{i+1}, y_{i+1}), (x_{i+2}, y_{i+2})

f(x,y)υdS.\int_{\triangle} f(x, y) \cdot \upsilon \,dS.
(6.43)

Пробная функция на треугольнике имеет вид υ(i)(i+2)(x,y)=qiϕi(x,y)+qi+1ϕi+1(x,y)+qi+2ϕi+2(x,y)\upsilon_{(i)(i+2)}(x, y) = q_i \cdot \phi_i(x, y) + q_{i+1} \cdot \phi_{i+1}(x, y) + q_{i+2} \cdot \phi_{i+2}(x, y). Для вычисления интеграла необходимо интерполировать функцию источника f(x,y)f(x, y) на треугольнике \triangle линейной функцией. Представим f(x,y)f(x, y) в виде f~(x,y)=e1+e2x+e3y\widetilde{f}(x, y) = e_1 + e_2 \cdot x + e_3 \cdot y. Коэффициенты e1,e2,e3e_1, e_2, e_3 определяются из условий интерполяции в узлах

{e1+e2xi+e3yi=fie1+e2xi+1+e3yi+1=fi+1e1+e2xi+2+e3yi+2=fi+2\begin{cases} e_1 + e_2 \cdot x_i + e_3 \cdot y_i = f_i\\ e_1 + e_2 \cdot x_{i+1} + e_3 \cdot y_{i+1} = f_{i+1}\\ e_1 + e_2 \cdot x_{i+2} + e_3 \cdot y_{i+2} = f_{i+2} \end{cases}
(6.44)

Поскольку функции <<крышки>> ϕn\phi_n равны единице в своём узле и нулю в остальных, линейный интерполянт функции источника, выраженный через них, принимает вид

f~(x,y)=fiϕi(x,y)+fi+1ϕi+1(x,y)+fi+2ϕi+2(x,y),\widetilde{f}(x, y) = f_i \cdot \phi_i(x, y) + f_{i+1} \cdot \phi_{i+1}(x, y) + f_{i+2} \cdot \phi_{i+2}(x, y),
(6.45)

где fi,fi+1,fi+2f_i, f_{i+1}, f_{i+2} — значения функции источника в вершинах треугольника.

Подставим интерполированную функцию источника и пробную функцию в (6.43). Примем во внимание (6.27) из раздела о функциях <<крышек>>

f(x,y)υdS=(nfnϕn)(mqmϕm)dS=mnqmfnϕmϕndS,\int_{\triangle} f(x, y) \cdot \upsilon \,dS = \int_{\triangle} \left( \sum_{n} f_n \cdot \phi_n \right) \cdot \left( \sum_{m} q_m \cdot \phi_m \right) \,dS = \sum_{m} \sum_{n} q_m \cdot f_n \cdot \int_{\triangle} \phi_m \cdot \phi_n \,dS,

где индексы mm и nn пробегают вершины треугольника {i,i+1,i+2}\{i, i+1, i+2\}.

Воспользуемся соотношениями (6.28) для интегралов произведений функций <<крышек>>, выведенными при вычислении матрицы демпфирования, где SS_{\triangle} — площадь треугольника, которая вычисляется по формуле (6.10). После приведения подобных получаем

f(x,y)υdS=S12[qi(2fi+fi+1+fi+2)+qi+1(fi+2fi+1+fi+2)+qi+2(fi+fi+1+2fi+2)]\begin{aligned} &\int_{\triangle} f(x, y) \cdot \upsilon \,dS = \frac{\displaystyle S_{\triangle}}{\displaystyle 12} \cdot \Big[ q_i \cdot (2 \cdot f_i + f_{i+1} + f_{i+2}) + q_{i+1} \cdot (f_i + 2 \cdot f_{i+1} + f_{i+2})\\ &+ q_{i+2} \cdot (f_i + f_{i+1} + 2 \cdot f_{i+2}) \Big] \end{aligned}

Введём обозначения для элементов локального вектора нагрузки треугольника

ri=S12(2fi+fi+1+fi+2)ri+1=S12(fi+2fi+1+fi+2)ri+2=S12(fi+fi+1+2fi+2)\begin{split} &r_i = \frac{\displaystyle S_{\triangle}}{\displaystyle 12} \cdot (2 \cdot f_i + f_{i+1} + f_{i+2})\\ &r_{i+1} = \frac{\displaystyle S_{\triangle}}{\displaystyle 12} \cdot (f_i + 2 \cdot f_{i+1} + f_{i+2})\\ &r_{i+2} = \frac{\displaystyle S_{\triangle}}{\displaystyle 12} \cdot (f_i + f_{i+1} + 2 \cdot f_{i+2}) \end{split}
(6.46)

Таким образом, локальный вектор нагрузки для двумерного треугольного элемента имеет вид

R=[riri+1ri+2]=S12[211121112][fifi+1fi+2].\begin{aligned}\mathbf{R}_{\triangle} = \begin{bmatrix} r_i\\ r_{i+1}\\ r_{i+2} \end{bmatrix} = \frac{\displaystyle S_{\triangle}}{\displaystyle 12} \begin{bmatrix} 2 & 1 & 1\\ 1 & 2 & 1\\ 1 & 1 & 2 \end{bmatrix} \begin{bmatrix} f_i\\ f_{i+1}\\ f_{i+2} \end{bmatrix}.\end{aligned}
(6.47)

Заметим, что полученный вектор нагрузки совпадает с произведением локальной матрицы демпфирования (6.30) на вектор узловых значений источника, то есть R=Cf\mathbf{R}_{\triangle} = \mathbf{C}_{\triangle} \cdot \mathbf{f}.

Глобальный вектор нагрузки R\mathbf{R} получается путём суммирования вкладов от всех треугольных элементов сетки методом сборки: элементы локальных векторов добавляются к соответствующим элементам глобального вектора согласно глобальной нумерации узлов. Размерность глобального вектора нагрузки равна NN, где NN — общее количество узлов сетки. Важно отметить, что для внутренних узлов происходит суммирование вкладов от всех смежных треугольных элементов, содержащих данный узел. Для граничных узлов вектор нагрузки определяется граничными условиями задачи.