Función lineal en un triángulo
Dado un triángulo de vértices \((x_i,y_i)\) para \(i=1, 2, 3\), la función lineal tal que \[
\varphi =
\begin{cases}
1 & \text{en } P = (x_1,y_1),\\
0 & \text{en } Q = (x_2,y_2),\\
0 & \text{en } R = (x_3,y_3)
\end{cases}
\]
es \[ \begin{aligned}
\varphi(x,y; P, Q, R) &= 1
+
\frac{y_{2} - y_{3}}{D}\left(x - x_{1}\right)
+ \frac{- x_{2} + x_{3}}{D} \left(y - y_{1}\right) ,
\end{aligned}
\] donde \(D = (x_2-x_1)(y_3-y_1) - (y_2-y_1) (x_3-x_1)\).
Cálculo de la matriz de rigidez
Numerados los puntos de la malla como \(P_1, \cdots P_N\),
Sean \(\varphi_i\) las funciones lineales a trozos con \(\varphi_i (P_j) = \delta_{ij}\).
\(\boldsymbol A \gets \boldsymbol 0_{N\times N}\)
for \(T\) triángulo de la malla
\(i_1 , i_ 2, i_3 \gets\) índices tales que \(\textrm{Vértices}(T) = \{ P_{i_1}, P_{i_2}, P_{i_3}\}\)
for \(j = 1,2, 3, \quad k = 1,2, 3\)
\(\displaystyle \boldsymbol A ({i_j,i_k}) \gets \boldsymbol A ({i_j,i_k})+ \sum_{\ell =1}^d \iint_T \frac{\partial \varphi_{i_k}}{\partial x_\ell } \frac {\partial \varphi_{{i_j}} }{\partial x_\ell } \diff x\)
end
end
Observación. Como \(\varphi_{i}\) son lineales en \(T\), las derivadas son constantes, y la integral se calcula de forma exacta.
Condiciones de borde
Para no tener que tratar de manera especial los elementos de borde, podemos construir el sistema incluyendo también los puntos de borde (como si estableciésemos). A posteriori, podemos reducir el sistema fijando el valor en los puntos borde y quitan las correspondientes ecuaciones.
Sean \[
I_{in} = \{ i : P_i \text{ es punto interior} \}, \qquad I_{\partial} = \{1, \cdots , N\} \setminus I_{in}.
\]
Las ecuaciones cuando \(i \in I_{\partial}\), no nos hacen falta. Por otro lado, si escribimos \[
\sum_{j \in I_{in}} a_{ij} u_j + \sum_{j \in I_{\partial}} a_{ij} u_j = \int_\Omega f \varphi_i \qquad \forall i \in I_{in}
\]
podemos reducir el sistema a \[
\sum_{j \in I_{in}} a_{ij} u_j = b_i , \qquad b_i = \int_\Omega f \varphi_i - \sum_{j \in I_{\partial}} a_{ij} u_j \qquad i \in I_{in}
\]