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.

Introdução ao fempack

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

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:

  1. Transparência: Código claro e bem documentado que permite entender cada passo do FEM

  2. Educação: Estrutura que facilita o aprendizado dos conceitos fundamentais

  3. Verificação: Implementação de verificação por soluções manufaturadas (MMS)

  4. Modularidade: Separação clara entre conceitos (elementos de referência, quadratura, montagem, etc.)

Problemas suportados

O fempack atualmente suporta o problema de Poisson escalar:

Δu=fem Ω-\Delta u = f \quad \text{em } \Omega

com condições de contorno de Dirichlet:

u=gem Ωu = g \quad \text{em } \partial\Omega

onde ΩRd\Omega \subset \mathbb{R}^d é o domínio (d=1d=1 ou d=2d=2).

Elementos finitos implementados

1D

2D

Workflow típico

Um workflow típico com o fempack segue estes passos:

  1. Definir o problema: Especificar ff, gg, e solução exata (para MMS)

  2. Criar malha: Usar Mesh.unit_square_quadrilateral() ou similar

  3. Definir espaço: Criar FunctionSpace com família e grau

  4. Montar sistema: Usar assemble_stiffness() e assemble_load()

  5. Aplicar CCs: Usar apply_dirichlet() para condições de contorno

  6. Resolver: Usar solve_direct() ou métodos iterativos

  7. Verificar: Calcular erros com l2_h1_errors()

  8. Visualizar: Plotar solução e estudar convergência

Próximos passos