MC-EA02
Introdução ao Firedrake

Professor: Diego Tavares Volpatto (LNCC/ESSS)

Horarios: Terça 22 e Quinta 24 de 11:30h às 13:00h

Objetivo: Neste curso, iremos aprender a utilizar o Firedrake, um sistema automatizado para solucionar equações diferenciais parciais (EDPs) numericamente com o método de Elementos Finitos. O Firedrake torna a implementação de métodos de Elementos Finitos bastante facilitada e rápida, provendo uma linguagem de domínio específico que se assemelha à forma que as formulações de elementos finitos são escritas matematicamente. Além disso, o Firedrake é um framework composto por várias bibliotecas e disponível em linguagem Python, possibilitando a combinação de diversas e poderosas bibliotecas científicas acessíveis por essa linguagem.
Esse curso é indicado para aqueles que tenham conhecimentos básicos de métodos numéricos para EDPs. O método de Elementos Finitos será introduzido de forma básica, sendo qualquer conhecimento prévio desejável. Caso você deseje aprender uma forma de solucionar equações diferenciais parciais com métodos de elementos finitos sem muito sofrimento para implementações, esse curso é para você.

Pré-requisitos:
  1. Recomendável
    • Conhecimento de métodos numéricos para solução de sistemas lineares e não-lineares
    • Conhecimento de métodos numéricos para solução de equações diferenciais parciais
  2. Desejável (opcional)
    • Conhecimentos básicos do Método de Elementos Finitos.
    • Básico de linguagem de programação Python


Ementa:
  1. Introdução ao Firedrake
    • O que é Firedrake?
    • Instalação
    • Formas de utilização
  2. Introdução prática ao Metodo de Elementos Finitos usando o Firedrake
    • Um primeiro exemplo 1D: Poisson
    • Resolvendo o problema de Poisson
    • Solucionando o problema da Elasticidade Linear
  3. Formulações de Elementos Finitos Mistas
    • Problema de Poisson misto
  4. Problemas transientes
    • Equação do calor
    • Sistemas reativos: Modelo de Gray-Scott
  5. (Opcional) Utilizando PETSc com Firedrake
    • Métodos de Krylov
    • Configurando solvers
    • Pre-condicionadores
    • Acessando objetos da PETSc construídos pelo Firedrake