Matrizes Locais
LNCC - Laboratório Nacional de Computação Científica
Para cada elemento K, calculamos as matrizes elementares que contribuem para o sistema global.
Matriz de Rigidez Local¶
A matriz de rigidez local para o elemento K é definida por:
AK[i,j]=∫K∇Nj⋅∇Nidx 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^ Caso 1D¶
Para elementos em 1D:
AK[i,j]=∫K^h1dx^dN^j⋅h1dx^dN^i⋅hdx^=h1∫K^dx^dN^idx^dN^jdx^ Exemplo P1:
A^=∫01[−11][−11]dx^=[1−1−11] Logo:
AK=h1[1−1−11] 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^i Caso 2D - Quadriláteros Q1¶
Para Q1, os gradientes variam espacialmente, então precisamos de quadratura numérica:
AK[i,j]≈q∑wq[(BK−1(x^q))T∇N^j(x^q)⋅(BK−1(x^q))T∇N^i(x^q)]∣JK(x^q)∣ Matriz de Massa Local¶
A matriz de massa local para o elemento K é definida por:
MK[i,j]=∫KNjNidx=∫K^N^jN^i∣JK∣dx^ Caso 1D - P1¶
MK=h∫01[1−x^x^][1−x^x^]dx^ Calculando as integrais:
MK=h[31616131] Lumped Mass Matrix¶
A matriz de massa concentrada (lumped) é obtida somando cada linha e colocando o resultado na diagonal:
MKlumped=diag(j∑MK[i,j]) Para P1 em 1D:
MKlumped=2h[1001] Vetor de Carga Local¶
O vetor de carga local para o elemento K é definido por:
bK[i]=∫KfNidx=∫K^f(FK(x^))N^i(x^)∣JK(x^)∣dx^ Esta integral é tipicamente calculada usando quadratura numérica:
bK[i]≈q∑wqf(FK(x^q))N^i(x^q)∣JK(x^q)∣ Implementação no fempack¶
No código:
fempack.local.stiffness_matrix(): Calcula AK
fempack.local.mass_matrix(): Calcula MK (consistente ou concentrada)
fempack.local.load_vector(): Calcula bK
Todas essas funções usam quadratura numérica fornecida por fempack.quadrature.