OpenLB
| OpenLB | |
|---|---|
| Versão atual | 1.8[1] |
| Data de lançamento da versão atual | 24 abril de 2025 |
| Linguagem de programação | C++ |
| Sistema operacional | Linux, Mac OS, Windows |
| Licença | GPLv2 (GPLv2) |
| Website | www.openlb.net |
OpenLB é uma ferramenta para simulação de fenômentos físicos através do Método de Lattice Boltzmann (LBM), desenvolvida por programação orientada a objetos. É a primeira implementação de uma plataforma genérica para programação LBM, que é compartilhada com a comunidade de código aberto (GPLv2) . O código é escrito em C++ e é usado por programadores de aplicativos, bem como desenvolvedores, com a capacidade de implementar modelos personalizados. [2] OpenLB suporta estruturas de dados complexas que permitem simulações em geometrias complexas e execução paralela usando MPI, OpenMP e CUDA em computadores de alto desempenho. O código-fonte usa os conceitos de interfaces e templates, para que implementações eficientes, diretas e intuitivas do LBM se tornem possíveis. [3] A eficiência e a escalabilidade foram verificadas e comprovadas por revisões de código. [4] A documentação do código-fonte está disponivel em DoxyGen e um manual do usuário está disponível na página do projeto.
Funções
[editar | editar código]O OpenLB está em constante desenvolvimento. Até o momento, os seguintes recursos já foram implementados:
- Dinâmica de fluidos computacional em geometria complexa
- Geração automática de uma grade [5]
- Fluxo turbulento
- Fluxo multicomponente [6]
- Fluxo térmico [7]
- Radiação de luz
- Otimização de topologia
- Fluxo de partículas (método de Euler-Euler e Euler-Lagrange)
Geração automatizada de rede
[editar | editar código]A geração automatizada de grades é uma das grandes vantagens do OpenLB em relação a outros pacotes de software CFD. As principais vantagens estão listadas abaixo:
- Uso de geometrias no STL ou formas geometricamente primitivas (por exemplo, bola, cilindro, cone) e sua união, intersecção e diferença
- Voxelização muito rápida: 600 3 ~ 1 minuto
- Manuseio de superfícies não estanques
- Amigável à memória usando octrees
- Distribuição de carga para execução paralela com MPI, OpenMP e CUDA.
A geração automática de grades pode assumir tanto um arquivo STL quanto geometrias primitivas. Para a geometria, é criada uma grade uniforme e retangular que abrange todo o espaço da geometria. As células de grade supérfluas são então removidas e os cuboides restantes são reduzidos para se ajustarem à geometria fornecida. Por fim, a grade é distribuída para diferentes threads ou processadores para a execução paralela da simulação. As condições de contorno e os valores iniciais podem ser definidos usando números de material.
Literatura
[editar | editar código]- Krause, Mathias J. and Latt, Jonas and Heuveline, Vincent. "Towards a hybrid parallelization of lattice Boltzmann methods." Computers & Mathematics with Applications 58.5 (2009): 1071–1080.
- Heuveline, Vincent, and Mathias J. Krause. "OpenLB: towards an efficient parallel open source library for lattice Boltzmann fluid flow simulations." International Workshop on State-of-the-Art in Scientific and Parallel Computing. PARA. Vol. 9. 2010.
- Krause, Mathias J., Thomas Gengenbach, and Vincent Heuveline. "Hybrid parallel simulations of fluid flows in complex geometries: Application to the human lungs." European Conference on Parallel Processing. Springer Berlin Heidelberg, 2010.
- Krause, Mathias J. "Fluid flow simulation and optimisation with lattice Boltzmann methods on high performance computers: application to the human respiratory system." Karlsruhe Institute of Technology, KIT (2010).
- Trunk, Robin, et al. "Inertial dilute particulate fluid flow simulations with an Euler–Euler lattice Boltzmann method." Journal of Computational Science (2016).
- Mink, Albert, et al. "A 3D Lattice Boltzmann method for light simulation in participating media." Journal of Computational Science (2016).
Prêmios
[editar | editar código]- Winner Mimics Innovation Award (2011)[8]
- Honorary certificate in the Group Humanitarian Impact, "Itanium® Solutions Alliance Innovation Awards" (2009)[9]
- Finalist in the Group Humanitarian Impact Innovation, "Itanium® Solutions Alliance Innovation Awards" (2007)
Referências
[editar | editar código]- ↑ «OpenLB 1.8»
- ↑ «OpenLB is ... | OpenLB – Open Source Lattice Boltzmann Code». openlb.net. Consultado em 28 de fevereiro de 2017
- ↑ Heuveline, Vincent; Latt, Jonas (1 de abril de 2007). «The openlb project: an open source and object oriented implementation of lattice boltzmann methods». International Journal of Modern Physics C. 18 (4): 627–634. Bibcode:2007IJMPC..18..627H. ISSN 0129-1831. doi:10.1142/S0129183107010875
- ↑ Fietz, Jonas; Krause, MathiasJ.; Schulz, Christian; Sanders, Peter; Heuveline, Vincent (1 de janeiro de 2012). «Optimized Hybrid Parallel Lattice Boltzmann Fluid Flow Simulations on Complex Geometries». Euro-Par 2012 Parallel Processing. Col: Lecture Notes in Computer Science (em inglês). 7484. [S.l.: s.n.] pp. 818–829. ISBN 978-3-642-32819-0. doi:10.1007/978-3-642-32820-6_81
- ↑ Erro de citação: Etiqueta
<ref>inválida; não foi fornecido texto para as "refs" nomeadasKrause2010 - ↑ «Bifurcation | OpenLB – Open Source Lattice Boltzmann Code». optilb.org. Consultado em 28 de fevereiro de 2017
- ↑ «Rayleigh Benard | OpenLB – Open Source Lattice Boltzmann Code». optilb.org. Consultado em 28 de fevereiro de 2017
- ↑ «Innovative Patient-Specific Intranasal Flow Simulations»
- ↑ «Itanium Solutions Alliance Selects Sweden's Kiwok as the 2009 Innovation Awards Winner for Humanitarian Impact». 28 de julho de 2009