O fempack é um pacote Python educacional desenvolvido para ensinar os fundamentos do método de elementos finitos (FEM) aplicado a problemas de equações diferenciais parciais elípticas.
Motivação¶
Este pacote foi criado com os seguintes objetivos:
Transparência: Código claro e bem documentado que permite entender cada passo do FEM
Educação: Estrutura que facilita o aprendizado dos conceitos fundamentais
Verificação: Implementação de verificação por soluções manufaturadas (MMS)
Modularidade: Separação clara entre conceitos (elementos de referência, quadratura, montagem, etc.)
Problemas suportados¶
O fempack atualmente suporta o problema de Poisson escalar:
com condições de contorno de Dirichlet:
onde é o domínio ( ou ).
Elementos finitos implementados¶
1D¶
P1: Elementos lineares no intervalo
P2: Elementos quadráticos no intervalo
2D¶
P1: Elementos lineares em triângulos
Q1: Elementos bilineares em quadriláteros
Workflow típico¶
Um workflow típico com o fempack segue estes passos:
Definir o problema: Especificar , , e solução exata (para MMS)
Criar malha: Usar
Mesh.unit_square_quadrilateral()ou similarDefinir espaço: Criar
FunctionSpacecom família e grauMontar sistema: Usar
assemble_stiffness()eassemble_load()Aplicar CCs: Usar
apply_dirichlet()para condições de contornoResolver: Usar
solve_direct()ou métodos iterativosVerificar: Calcular erros com
l2_h1_errors()Visualizar: Plotar solução e estudar convergência
Próximos passos¶
Explore os Tutoriais para ver exemplos práticos
Consulte a Referência de Cálculos para entender a matemática por trás
Use a API Reference como referência detalhada das funções