Computação Científica com Julia
Introdução
Esta página tem o material referente ao curso Computação Científica com Julia. Este curso tem por objetivo usar uma abordagem construtiva e prática para programação em Julia de métodos numéricos.
Nestes dias de quarentena e corona virus, o curso não pode ser presencial. Assim está aberto a todos que que desejarem. Para tirar dúvidas, estarei disponível segundas, quartas e sextas das 9:00 às 10:00 em https://meet.jit.si/iptscicomp. Do computador, só é necessário o browser. Em telefones e tablets é necessário instalar um app.
Estrutura do curso
O curso será dado usando screencasts no youtube. Os vídeos podem ser encontrados no canal do youtube https://www.youtube.com/channel/UCxsN52VZT5QZKDU66lx4XXQ. Cada aula terá exercícios propostos e a solução dos exercícios será dada, nesta página ao final de uma semana.
A idéia do curso é construir, a partir de elementos básicos como
- Interpolação
- Derivadas numéricas
- Integração
- Solução de sistemas lineares
um solver de elementos finitos de alta ordem. Se possível, vamos tentar resolver as equações de Navier-Stokes. Vamos ver onde conseguimos ir.
Os interessados já ficam avisados que simplesmente assistir uns vídeos e fazer perguntinhas nas conversas só têm um resultado: perda de tempo. Este curso pressupõe participação ativa e programação contínua. Se não estiver disposto, nem comece.
Pessoas sábias já disseram que o melhor software é aquele que não precisamos escrever. Neste espírito, acho interessante a cada voluntário escolher algum problema de interesse pessoal e algum software, de preferência livre, e tentar, em paralelo a este curso resolver este problema. Abaixo existem links para diferentes softwares na net.
Paralelo a esse curso, vou também dar um curso mais aprofundado de programação em Julia. A idéia é estudar o manual https://docs.julialang.org/en/v1/. Maiores detalhes, ir para a página do curso de programação em Julia.
Preparando o ambiente de programação
Fiz um screecast para instalação do Julia no linux e outro no windows
Instalação no Linux
Instalação no Windows
Aulas
Introdução à programação em Julia
Aqui você encontra os links para os screencasts da introdução à programação em Julia.
Apresentação do curso
Screencast da aula:
Notebooks
Aula 01: Interpolação e aproximação
Notebook com as notas de aula sobre interpolação e aproximação
Screencast da aula
Solução dos problemas da aula 01
Notebook com a solução dos problemas da aula 01
Screencast com a solução dos exercícios
Aula 02: Interpolação trigonométrica
Notebook com as notas de aula sobre interpolação e aproximação
Screencast da aula
Solução dos problemas da aula 02
Notebook com a solução dos problemas da aula 01
Screencast com a solução dos exercícios
Bibliografia
- Burden e Faires, Análise Numérica
- Karniadakis e Kirby, Parallel Scientific Computing in C++ and MPI
- Golub e Van Loan, Matrix Computations
- Recomendação do Gabriel: Gilbert Strang, Computational Science and Engineering
Links importantes
Há uma organização do github com os softwares e slides do curso: https://github.com/iptscicomp
- http://julialang.org
- Lista de discussão https://discourse.julialang.org/
- Canal do youtube https://www.youtube.com/user/JuliaLanguage
- Documentação: https://docs.julialang.org
- Junolab, um ambiente baseado no editor Atom para programação em Julia: https://junolab.org/
- GitHub do julia: https://github.com/JuliaLang
- Para chat, existe o Slack Julia oficial: https://julialang.slack.com/
- http://gen.lib.rus.ec/
- http://sci-hub.tw/
Trabalho
Durante o transcorrer do curso, use algum software para resolver um problema concreto:
- OpenFoam - CFD
- SU2 - CFD
- CalculiX - Elementos Finitos
- Code Saturne - CFD
- Code Aster - Elementos Finitos
- Fenics - Elementos Finitos
- FreeFem++ - Elementos Finitos
- Dedalus Project - Métodos espectrais
- Nektar - Método de elementos espectrais/elementos finitos hp
- MEEP - Eletromagnetismo
- LAMMPS - Dinâmica molecular
Editores e ferramentas importantes
- Projeto Jupyter - principal ambiente de trabalho
- Atom e Junolab
- Visual Studio Code
- Emacs - para quem for valente...
- Distribuição de Python Anaconda - Muito prático no Windows. Já vem com o Jupyter.
- Julia Box - use Julia a partir do Browser na web
Comentários
Comments powered by Disqus