Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Matrizes Locais

LNCC - Laboratório Nacional de Computação Científica

Para cada elemento KK, calculamos as matrizes elementares que contribuem para o sistema global.

Matriz de Rigidez Local

A matriz de rigidez local para o elemento KK é definida por:

AK[i,j]=∫K∇Nj⋅∇Ni dxA_K[i, j] = \int_K \nabla N_j \cdot \nabla N_i \, d\mathbf{x}

Usando a transformação para o elemento de referência:

AK[i,j]=∫K^(BK−1)T∇N^j⋅(BK−1)T∇N^i ∣JK∣ dx^A_K[i, j] = \int_{\hat K} (\mathbf{B}_K^{-1})^T \nabla \hat N_j \cdot (\mathbf{B}_K^{-1})^T \nabla \hat N_i \, |J_K| \, d\hat{\mathbf{x}}

Caso 1D

Para elementos em 1D:

AK[i,j]=∫K^1hdN^jdx^⋅1hdN^idx^⋅h dx^=1h∫K^dN^idx^dN^jdx^ dx^A_K[i, j] = \int_{\hat K} \frac{1}{h} \frac{d\hat N_j}{d\hat x} \cdot \frac{1}{h} \frac{d\hat N_i}{d\hat x} \cdot h \, d\hat x = \frac{1}{h} \int_{\hat K} \frac{d\hat N_i}{d\hat x} \frac{d\hat N_j}{d\hat x} \, d\hat x

Exemplo P1:

A^=∫01[−11][−11]dx^=[1−1−11]\hat A = \int_0^1 \begin{bmatrix} -1 \\ 1 \end{bmatrix} \begin{bmatrix} -1 & 1 \end{bmatrix} d\hat x = \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}

Logo:

AK=1h[1−1−11]A_K = \frac{1}{h} \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}

Caso 2D - Triângulos P1

Para triângulos P1, os gradientes são constantes:

AK[i,j]=∣K∣⋅(BK−1)T∇N^j⋅(BK−1)T∇N^iA_K[i, j] = |K| \cdot (\mathbf{B}_K^{-1})^T \nabla \hat N_j \cdot (\mathbf{B}_K^{-1})^T \nabla \hat N_i

Caso 2D - Quadriláteros Q1

Para Q1, os gradientes variam espacialmente, então precisamos de quadratura numérica:

AK[i,j]≈∑qwq[(BK−1(x^q))T∇N^j(x^q)⋅(BK−1(x^q))T∇N^i(x^q)]∣JK(x^q)∣A_K[i, j] \approx \sum_{q} w_q \left[ (\mathbf{B}_K^{-1}(\hat{\mathbf{x}}_q))^T \nabla \hat N_j(\hat{\mathbf{x}}_q) \cdot (\mathbf{B}_K^{-1}(\hat{\mathbf{x}}_q))^T \nabla \hat N_i(\hat{\mathbf{x}}_q) \right] |J_K(\hat{\mathbf{x}}_q)|

Matriz de Massa Local

A matriz de massa local para o elemento KK é definida por:

MK[i,j]=∫KNjNi dx=∫K^N^jN^i ∣JK∣ dx^M_K[i, j] = \int_K N_j N_i \, d\mathbf{x} = \int_{\hat K} \hat N_j \hat N_i \, |J_K| \, d\hat{\mathbf{x}}

Caso 1D - P1

MK=h∫01[1−x^x^][1−x^x^]dx^M_K = h \int_0^1 \begin{bmatrix} 1 - \hat x \\ \hat x \end{bmatrix} \begin{bmatrix} 1 - \hat x & \hat x \end{bmatrix} d\hat x

Calculando as integrais:

MK=h[13161613]M_K = h \begin{bmatrix} \frac{1}{3} & \frac{1}{6} \\ \frac{1}{6} & \frac{1}{3} \end{bmatrix}

Lumped Mass Matrix

A matriz de massa concentrada (lumped) é obtida somando cada linha e colocando o resultado na diagonal:

MKlumped=diag(∑jMK[i,j])M_K^{\text{lumped}} = \text{diag}\left( \sum_j M_K[i, j] \right)

Para P1 em 1D:

MKlumped=h2[1001]M_K^{\text{lumped}} = \frac{h}{2} \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}

Vetor de Carga Local

O vetor de carga local para o elemento KK é definido por:

bK[i]=∫KfNi dx=∫K^f(FK(x^))N^i(x^) ∣JK(x^)∣ dx^b_K[i] = \int_K f N_i \, d\mathbf{x} = \int_{\hat K} f(\mathbf{F}_K(\hat{\mathbf{x}})) \hat N_i(\hat{\mathbf{x}}) \, |J_K(\hat{\mathbf{x}})| \, d\hat{\mathbf{x}}

Esta integral é tipicamente calculada usando quadratura numérica:

bK[i]≈∑qwqf(FK(x^q))N^i(x^q)∣JK(x^q)∣b_K[i] \approx \sum_{q} w_q f(\mathbf{F}_K(\hat{\mathbf{x}}_q)) \hat N_i(\hat{\mathbf{x}}_q) |J_K(\hat{\mathbf{x}}_q)|

Implementação no fempack

No código:

Todas essas funções usam quadratura numérica fornecida por fempack.quadrature.