código de simulação MHD simples para (auto) educação e brinque com

8

Eu gostaria de um código computacional super simples para resolver problemas de magneto-hidrodinâmica . Alta precisão nem desempenho não é minha preocupação. Não quero apenas explorar visualmente o comportamento qualitativo do plasma. Importante para mim é:

  • Generalidade - não deve ser especializada em nenhum subproblema específico de MHD
  • Fácil de fazer funcionar - não requer bibliotecas difíceis de instalar. A entrada é direta e bem documentada por alguns exemplos
  • Fácil de ler e modificar - você pode ler o código e aprender sobre a solução MHD. Você pode usar esse código como ponto de partida para o seu próprio desenvolvimento de código MHD

Algo tão simples como este Navier Stokes Solver seria o melhor

melhor seria algo em python-numpy ou java, mas C ++ ou Fortran não é um grande problema para mim.

Até agora eu encontrei:

algumas bibliotecas ( MHD-Hermes e python-mhd ) que estão em python, mas parece não ter nenhuma documentação ou exemplo de como usá-lo.

e este Um código MTV TVD MHD gratuito, rápido, simples e eficiente que está em frotran, mas tem apenas 400 linhas

Eu estava pensando em escrever algo sozinho, mas quero ter certeza de que não há nada semelhante já disponível. Eu acho que poderia ser bem fácil, basta pegar o solucionador Navier-Stokes no link acima e introduzir o potencial elétrico e magnético pelo solucionador de poisson FFT (ou Particle Mesh Ewald).

Prokop Hapala
fonte
Esse pequeno código do OpenMP Fortran é realmente legal.
stali
1
Adoro ler coisas com comentários como "! Para manter as coisas estáveis".
Rhys Ulerich
Não acho fácil ler e modificar o OpenFOAM, mas isso ocorre porque as partes que tive que investigar estão enterradas no interior do código. Além disso, até a página da Wikipedia menciona que o OpenFOAM está mal documentado e tem uma curva de aprendizado muito gradual.
precisa
Experimente o pyClaw , baseado no CLAWPACK de Randy LeVeque.
precisa

Respostas:

3

Dê uma olhada nestes três:

  • Piernik MHD é um código que evoluiu do Pen & Trac MHD que você mencionou na sua pergunta. Agora está bastante maduro e o desenvolvimento ainda está ativo. Escrito em Fortran 95/2003 moderno.

  • Godunov MHD, um código MHD projetado especialmente para simular os eventos de reconexão, mas pode ser facilmente modificado e aplicado a outros problemas. Pode ser paralelizado de uma máquina multicore única (OpenMP) até clusters com muitos nós (MPI). Escrito em Fortran 90/95.

  • python-mhd, um código MHD pequeno e simples, fácil de usar. Escrito em Python e C.

corion
fonte
obrigado, eu poderia ver isso com mais detalhes. Sobre python-mhd: Isso seria ideal porque é pytho. Mencionei isso também na pergunta original. No entanto, tenho um problema ao executar o exemplo (escrevo um código code.google.com/p/python-mhd/issues/detail?id=1 ). Não encontrei nenhuma outra documentação ou exemplo além do que na primeira página.
Prokop Hapala