Flumen

Flumen je program, který nabízí možnost simulovat částicové systémy. Hlavně je zaměřen na simulace střetávání proudů částic.

Program je napsán v C++. Jako API používám Win32 API. Pro grafický výstup používám grafickou knihovnu OpenGL. Program je ve funkčním stádiu, nicméně je zde ještě relativně hodně věcí, které by bylo možno vylepšit.

Stáhnout

Strategie, kterou jsem volil pro vyřešení problému

  • Nejdříve jsem vymyslel jednoduchý model kapaliny
  • Na základě tohoto modelu jsem vytvořil počítačovou simulaci
  • Ta se potom doladí za pomoci vypozorovaných informací

Model kapaliny

Model kapaliny jsem se snažil udělat co možná nejednodušší. Zachoval jsem proto jen dva základní principy mikrosvěta:

  • Jednotlivé části kapaliny na sebe působí přitažlivou silou, klesající s druhou mocninou vzdálenosti
  • Dvě části kapaliny se při nárazu odrazí

Co se rozumí odrazem?

Odrazem se rozumí tato změna kinetické energie:

  • Z kinetické energie částice se vezme, složka, která míří ve směru, kde se částice srazily.
  • Ta se od první částice odečte a přičte se k druhé částici.
  • A naopak.

Počítačový model

Dokonalý model předpokládá interakci každých dvou kapek. To je však pro rozsáhlejší systémy velice výpočetně složité. (Časová složitost takovéhoto řešení je O(N^2).) Časovou náročnost takovéto simulace můžeme snížit vhodnou aproximací:

  • Rozdělíme simulační prostor na menší buňky.
  • Každá kapka silově působí pouze na kapky ve své buňce. (případně ve své buňce a buňkách okolních)

Tím se časová náročnost algoritmu o něco zmenšila. (Každá částice v programu má svou barvu, ta je dána právě tím, v jaké buňce se nachází.)

Konstanty v simulaci

Simulace obsahuje mnoho konstant, které ovlivňují výsledné chování, např.:

  • Gravitační zrychlení
  • Velikost aproximačních buněk
  • Koeficient, kterým se násobí přitažlivá síla
  • Nejrůznější vlastnosti proudu jako je:
    • Hustota
    • Rychlost
    • Průřez

Dále by bylo dobré v simulaci nastavit takovou sadu konstant, aby v ní nasimulované jevy odpovídaly skutečnosti. Zatím mi však chybí dostatek vhodných dat z reálného světa.

Ověření správnosti fyzikálního modelu

Můžeme postupovat takto:

  • Získáme vhodnou sadu konstant, tak že budeme simulaci porovnávat s pozorováním
  • Zkusíme nasimulovat takové jevy, s kterými jsme nepočítali při tvorbě konstant
  • Výsledky můžeme posoudit podle pokusů v realitě

Pravděpodobná kvalita získané simulace

Vzhledem k tomu, že děje v proudech částic, zvláště pak v kapalinách jsou vysoce složité, obávám se, že jsem volil až moc zjednodušený model kapaliny. Proto si myslím, že simulace je relativně nepřesná. Nicméně je možné, že při vhodné volbě konstant může určitý druh dějů při střetech proudění simulovat dobře.

Ovládání

Programu Flumen lze ovládat pomocí myši. Stisknutím levého tlačítka myši a tahem můžeme pohybovat kameru, kolečkem můžeme kameru zoomovat. Šipkami lze kameru rotovat. Stisknutím mezerníku se zapne/vypne běh simulace, držením klávesy P simulace běží, dokud ji nepustíme a stisknutím klávesy O se simulace posune o jeden krok. Dále stisknutím klavesy ENTER se otevře Ovládací panel. Z toho lze měnit vlastnosti prostředí a vlastnosti dvou proudů. Dale je z něj možné ukládat a nahrávat proudy z/do seznamu proudů. (Tento systém ukládání/nahrávaní je dost nešikovný, časem ho předělám na lepší, když nebudu línej.)

Reklamy
Příspěvek byl publikován v rubrice Prográmky. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Zanechat odpověď

Vyplňte detaily níže nebo klikněte na ikonu pro přihlášení:

WordPress.com Logo

Komentujete pomocí vašeho WordPress.com účtu. Odhlásit /  Změnit )

Google+ photo

Komentujete pomocí vašeho Google+ účtu. Odhlásit /  Změnit )

Twitter picture

Komentujete pomocí vašeho Twitter účtu. Odhlásit /  Změnit )

Facebook photo

Komentujete pomocí vašeho Facebook účtu. Odhlásit /  Změnit )

Připojování k %s