OpenLB

OpenLB
Stabil frisättning
1,5 / 14 april 2022 ( 2022-04-14 )
Skrivet i C++
Operativ system Linux , Mac OS , Windows
Typ Computational fluid dynamics , simuleringsprogram
Licens GPLv2 ( GPLv2 )
Hemsida www.openlb.net

OpenLB är en objektorienterad implementering av lattice Boltzmann-metoderna ( LBM). Det är den första implementeringen av en generisk plattform för LBM-programmering, som delas med open source-gemenskapen ( GPLv2) . Koden är skriven i C++ och används av applikationsprogrammerare såväl som utvecklare, med möjlighet att implementera anpassade modeller OpenLB stöder komplexa datastrukturer som möjliggör simuleringar i komplexa geometrier och parallellt exekvering med MPI, OpenMP och CUDA på högpresterande datorer. Källkoden använder begreppen gränssnitt och mallar , så att effektiva, direkta och intuitiva implementeringar av LBM blir möjliga. Effektiviteten och skalbarheten har kontrollerats och bevisats genom kodgranskning. En användarmanual och en källkodsdokumentation från DoxyGen finns på projektsidan.

Funktioner

OpenLB utvecklas ständigt. Vid det här laget är följande funktioner implementerade:

  • Beräkningsvätskedynamik i komplex geometri
  • Automatisk generering av ett nät
  • Turbulent flöde
  • Flerkomponentsflöde
  • Termiskt flöde
  • Ljusstrålning
  • Topologioptimering
  • Partikelflöde (Euler–Euler och Euler–Lagrange-metoden)

Automatiserad nätgenerering

Automatiserad nätgenerering är en av de stora fördelarna med OpenLB jämfört med andra CFD-programvarupaket. De viktigaste fördelarna listas nedan:

  • Användning av geometrier i STL-filformatet eller geometriskt primitiva former (t.ex. kula, cylinder, kon) och deras förening, skärning och skillnad
  • Mycket snabb voxelisering: 600 3 ~ 1 minut
  • Hantering av icke vattentäta ytor
  • Minnesvänlig med okträd
  • Lastfördelning för parallellkörning med MPI, OpenMP och CUDA.

Den automatiska gridgenereringen kan anta både en STL-fil och primitiva geometrier. För geometrin skapas ett enhetligt och rektangulärt rutnät som omsluter geometrins hela utrymme. De överflödiga rutnätscellerna avlägsnas sedan och de återstående kuberna krymps för att passa den givna geometrin. Slutligen distribueras nätet till olika trådar eller processorer för parallell exekvering av simuleringen. Gränsvillkoren och startvärdena kan ställas in med hjälp av materialnummer.

Litteratur

  • Krause, Mathias J. och Latt, Jonas och Heuveline, Vincent. "Mot en hybrid parallellisering av galler Boltzmann metoder." Datorer & matematik med applikationer 58.5 (2009): 1071–1080.
  • Heuveline, Vincent och Mathias J. Krause. "OpenLB: mot ett effektivt parallellt bibliotek med öppen källkod för gitter Boltzmann-vätskeflödessimuleringar." Internationell workshop om state-of-the-art inom vetenskaplig och parallell beräkning . PARA. Vol. 9. 2010.
  • Krause, Mathias J., Thomas Gengenbach och Vincent Heuveline. "Hybrid parallella simuleringar av vätskeflöden i komplexa geometrier: Tillämpning på mänskliga lungor." Europeisk konferens om parallell bearbetning . Springer Berlin Heidelberg, 2010.
  • Krause, Mathias J. "Simulering och optimering av vätskeflöde med Boltzmann-gittermetoder på högpresterande datorer: tillämpning på det mänskliga andningssystemet." Karlsruhe Tekniska Högskola, KIT (2010).
  • Trunk, Robin, et al. "Tröghetssimuleringar av utspädd partikelvätskeflöde med en Euler–Euler gitter Boltzmann-metod." Journal of Computational Science (2016).
  • Mink, Albert, et al. "En 3D Lattice Boltzmann-metod för ljussimulering i deltagande media." Journal of Computational Science (2016).

Utmärkelser

  • Vinnare Mimics Innovation Award (2011)
  • Hederscertifikat i gruppen Humanitarian Impact, "Itanium® Solutions Alliance Innovation Awards" (2009)
  • Finalist i gruppen Humanitarian Impact Innovation, "Itanium® Solutions Alliance Innovation Awards" (2007)

externa länkar