Ruchome Piaski v1.0. Maciej Matyka email: maq@panoramix.ift.uni.wroc.pl



Podobne dokumenty
Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

1. Opis. 2. Wymagania sprzętowe:

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Ćwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w ośrodku lepkim (Instrukcja obsługi interfejsu użytkownika)

Połączenie AutoCad'a z bazą danych

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

Kopiowanie ustawień SolidWorks

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

2.2 Opis części programowej

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Aplikacja npodpis do obsługi certyfikatu

WinUcz procedura uprzedniego wywozu

Aplikacja do podpisu cyfrowego npodpis

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

mfaktura Instrukcja instalacji programu Ogólne informacje o programie biuro@matsol.pl

TM PROGRAM TERMINALA RS232 DLA MULTIPLEKSERA 8XRS232 / ETHERNET 10BASE-T

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Webowy generator wykresów wykorzystujący program gnuplot

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Krok 2: Pierwsze uruchomienie

VinCent Administrator

Symfonia Start e-dokumenty

Aplikacja npodpis do obsługi certyfikatu

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

5.6.2 Laboratorium: Punkty przywracania

5.4. Tworzymy formularze

Finanse VULCAN. Jak wprowadzić fakturę sprzedaży?

Przewodnik dla klienta

Omega Plus. Wersja

Instrukcja instalacji i obsługi programu Szpieg 3

Budowa argumentacji bezpieczeństwa z użyciem NOR-STA Instrukcja krok po kroku

Laboratorium - Archiwizacja i odzyskiwanie danych w Windows Vista

Program V-SIM tworzenie plików video z przebiegu symulacji

Maskowanie i selekcja

Szpieg 2.0 Instrukcja użytkownika

System Symfonia e-dokumenty

Krótka instrukcja instalacji Adobe Acrobat Reader

Laboratorium Ericsson HIS NAE SR-16

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Windows 10 - Jak uruchomić system w trybie

Instrukcja użytkownika ARsoft-CFG WZ1 4.0

na podstawie modelu 3D

Wyszukiwanie plików w systemie Windows

Instrukcja instalacji programu serwisowego NTSN krok po kroku

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Skrypty piszemy dla duszków, czyli obiektów, które chcemy oprogramować i dla sceny tła, na którym wykonuje się program.

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Tworzenie prezentacji w MS PowerPoint

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012. Przygotowanie do druku

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Konwersja maszyny fizycznej na wirtualną.

Aplikacja npodpis do obsługi certyfikatu

Sage Symfonia e-dokumenty. Zakładanie nowej firmy

Modelowanie części w kontekście złożenia

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Wizualizacja pogody dla windsurferów

Po otrzymaniu maila zapraszającego do udziału w korzystaniu z aplikacji ProfiAuto Usługi dla Serwisu, należy użyć przycisku Aktywuj aplikację.

Easy CD/DVD Recorder Instrukcja

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Wprowadzenie do projektu QualitySpy

LeftHand Sp. z o. o.

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

PLANSZA. Plansza składa się z następujących pól:

Procedura konfiguracji programu Outlook Express z wykorzystaniem protokołu POP3

Dodawanie, edycja i usuwanie zbioru kolekcji

Instalacja programu dreryk

czyli Arkuszy / Układów na podstawie modelu

Aplikacja npodpis do obsługi certyfikatu (instrukcja użytkownika)

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

KONFIGURACJA KONTA POCZTOWEGO DO POBRANIA WIADOMOŚCI Z OBECNEGO SERWERA POCZTOWEGO. Zespół Systemów Sieciowych

Tworzenie i obsługa wirtualnego laboratorium komputerowego

WIZUALIZER 3D APLIKACJA DOBORU KOSTKI BRUKOWEJ. Instrukcja obsługi aplikacji

WPROWADZENIE DO ŚRODOWISKA SCICOS

1. INSTALACJA SERWERA

Instrukcja automatycznego tworzenia pozycji towarowych SAD na podstawie danych wczytywanych z plików zewnętrznych (XLS).

FAQ: /PL Data: 14/06/2007 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-200

R o g e r A c c e s s C o n t r o l S y s t e m 5

Podręczna pomoc Microsoft Power Point 2007

System obsługi wag suwnicowych

UNIFON podręcznik użytkownika

System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW

Instrukcja konfiguracji programu Fakt z modułem lanfakt

(wersja robocza) Spis treści:

WIZUALIZER 3D APLIKACJA DOBORU KOSTKI BRUKOWEJ. Instrukcja obsługi aplikacji

Transkrypt:

Ruchome Piaski v1.0 Maciej Matyka email: maq@panoramix.ift.uni.wroc.pl Uniwersytet Wrocławski Wydział Fizyki i Astronomii Fizyka II BIS 16 lutego 2002 roku

Spis treści 1 Teoria 4 1.1 Ogólne założenia......................................... 4 1.2 Pętla czasowa........................................... 4 1.3 Algorytm działania programu Ruchome Piaski........................ 5 1.3.1 Fragmenty kodu źródłowego............................... 6 2 Program Ruchome Piaski 7 2.1 Wymagania sprzętowe...................................... 7 2.2 Kod źródłowy programu..................................... 7 2.3 Opis programu.......................................... 7 2.3.1 Okno główne programu................................. 7 2.3.2 Obsługa programu.................................... 8 3 Efekty działania 8 3.1 Piach usypujący się na przeszkodach.............................. 8 3.2 Dowolna konfiguracji brzegów.................................. 9 3.3 Klepsydra............................................. 10 4 Podsumowanie 10 2

Streszczenie W dokumentacji tej przedstawiam ogólne założenia modelu użytego do symulacji piasku przy użyciu metod stosowanych w symulacjach opartych na automatach komórkowych. Oprócz tego w pracy tej znajduje się opis funkcji programu Ruchome Piaski napisanego na bazie przedstawionych algorytmów. W ostatniej części znajdują się przykłady gotowych symulacji stworzonych opisywanym programem. 3

1 Teoria 1.1 Ogólne założenia Wykonanie symulacji piasku wymaga poczynienia kilku założeń co do modelu. Po pierwsze - zakładamy, że piasek składa się z równej wielkości ziaren o jednakowym kształcie, jednakowym ciężarze. Zakładamy, że cała symulacja odbywa się w polu grawitacyjnym, jednakże nie definiujemy przyspieszenia jako takiego - cząstki opadające będą miały stałą prędkość. Już w tym miejscu widać, jak duże uproszczenia stosujemy. Definiujemy przestrzeń zdefiniowaną jako siatka komórek, które mogą przyjąć tylko wartości 0 lub 1 (0 - ziarna w komórce nie ma, 1 - ziarno jest). 1.2 Pętla czasowa Pętla czasowa programu jest bardzo prosta i sprowadza się do implementacji ogólnych zasad usypywania się piasku. Zasady te - przedstawione na rysunku (1). Już tu widać jaka jest ogólna idea naszego rozwiązania - pracować będziemy przy pomocy narzędzia 2x2, którego przejście przez całą tablicę spowoduje co najwyżej usypanie każdego z ziaren o jedną jednostkę w dół. Zasady te zawierają też w sobie sytuacje, gdy ziarno piasku usypuje się na boki. Dodatkowo, dla zwiększenia realizmu (pomysł zaczerpnięty z [1]) sytuację z rysunku (2) trochę komplikujemy. Otóż wprowadzamy warunek na opadanie podwójnego ziarna piasku - opadnie ono, ale z pewnym z góry określonym prawdopodobieństwem P. Takie potraktowanie podwójnych ziaren piasku zwiększa realizm symulacji. Rozsądną wydaje się wartość ok. P =0.5. Rysunek 1: Ogólne zasady ruchu ziaren piasku. 4

Rysunek 2: Dwa zlepione ziarna piasku. 1.3 Algorytm działania programu Ruchome Piaski. Algorytm działania programu przedstawia się nadzwyczaj prosto i taki w zasadzie jest. Rysunek 3: Algorytm programu Ruchome Piaski. Na rysunku (3) w formie diagramów pokazana jest struktura programu. Podział kroku czasowego na dwa oddzielne (dla kroków nieparzystych i parzystych z osobna) został wprowadzony, bo tego wymaga charakter zagadnienia. Co drugi krok czasowy należy działać komórką roboczą 2x2 wedle zasad z rysunku (1) obniżając startowy punkt o jedną jednostkę w dół. Gdybyśmy bowiem startowali zawsze z tego samego miejsca - żadne ziarno piasku nie opadło by o więcej niż jedną jednostkę w dół! 5

1.3.1 Fragmenty kodu źródłowego Zgodnie z podanym algorytmem zapiszemy teraz kompletną implementację kroku czasowego w języku c. Warto zdefiniować często używane oznaczenia komórek roboczych, by bezpośrednio w pętli czasowej używać zapisanych wcześniej równań, jak pokazujemy poniżej: #define Gul G[i][j] #define Gur G[i+1][j] #define Sul S[i][j] #define Sur S[i+1][j] #define Sll S[i][j-1] #define Slr S[i+1][j-1] Zgodnie z tą definicją krok czasowy przebiegu po całej siatce można zapisać w formie, jak poniżej: // dla kroku czasowego parzystego pętla dla y(ny-1;1) i x(2;nx-1) // dla kroku nieparzystego pętla dla y(ny-2;1) i x(3;nx-1) for(j=ny-1-(step%2);j>1;j-=2) for(i=2+(step%2);i<nx-1;i+=2) // nie wykonujemy operacji na komórkach brzegowych if(!gul &&!Gur) { if(sul==c_snd && Sur==C_SND && Sll!=C_SND && Slr!=C_SND) { if(rand()/(float)rand_max>0.4) { Sll=Sul; Slr=Sur; Sul=C_EMP; Sur=C_EMP; } } else { nsul = Sul*(Gul + (1-Gul)*Sll*(Slr + (1-Slr) * Sur)); nsur = Sur*(Gur + (1-Gur)*Slr*(Sll + (1-Sll) * Sul)); nsll = Sll+(1-Sll)*(Sul*(1-Gul)+(1-Sul)*Sur*(1-Gur)*Slr); nslr = Slr+(1-Slr)*(Sur*(1-Gur)+(1-Sur)*Sul*(1-Gul)*Sll); } } Sul = nsul; Sur = nsur; Sll = nsll; Slr = nslr; // zwiększenie indeksu kroku czasowego step++; 6

2 Program Ruchome Piaski 2.1 Wymagania sprzętowe Wymagania sprzętowe programu Ruchome Piaski nie są duże, jednak szybki procesor bardzo dobrze wpływa na jakość symulacji. Mamy tu do czynienia z animacją w czasie rzeczywistym, co znacznie wpływa na szybkość animacji generowanej przez program. Wersja dostarczona do konkursu jest skompilowana pod system operacyjny Windows (98/2000/NT/Millenium/XP). 2.2 Kod źródłowy programu Do programu dołączony jest pełen kod w języku C++ wraz z plikami konfiguracyjnymi Visual C++. Program można bez problemu skompilować pod systemy operacyjne Linux, bo do stworzenia interfejsu graficznego wykorzystana została biblioteka FOX. Do wizualizacji danych wykorzystany został port OpenGL zaimplementowany w bibliotece FOX. odatkowo użytych zostało kilka funkcji biblioteki GLut. 2.3 Opis programu 2.3.1 Okno główne programu Rysunek 4: Okno główne programu Ruchome Piaski. W oknie głównym programu po stronie lewej znajduje się obszar wydzielony na wizualizację danych, po stronie prawej znajduje się pasek z przyciskami i opcjami programu. 7

2.3.2 Obsługa programu Obsługa jest bardzo prosta, przy pomocy myszki dokonujemy zmian w geometrii problemu w części wizualizacyjnej okna programu. W zależności od ustawienia opcji po prawej stronie (znaczniki Sypanie piaskiem i Edycja brzegów ) możemy dodać piasek, lub edytować komórki brzegowe. Przycisk Czyść Wszystko powoduje wyczyszczenie geometrii problemu - wszystkie komórki w modelu stają się puste. Warto wspomnieć też o użytecznej opcji Pauza, którą warto używać przy definiowaniu nowych geometrii - sypanie piasku przy włączonej opcji Pauza nie spowoduje jego opadania, dopiero ponowne wciśnięcie Start spowoduje ruch. Stworzone konfiguracje można zapisać na dysku do późniejszego wykorzystania (opcje Zapisz i Wczytaj ). 3 Efekty działania 3.1 Piach usypujący się na przeszkodach Symulacja usypywania piasku na przeszkodach. W chwili początkowej duża objętość piasku znajduje się ponad przeszkodami. Na rysunkach widać wyraźnie wewnętrzne (lokalne) zatrzymywanie się pojedynczych ziaren piasku na ziarnach podwójnych (połączonych). Efekt ten można wzmocnić lub osłabić poprzez edycję parametru P. 8

3.2 Dowolna konfiguracji brzegów Ten przykład zamiszczam po to, by pokazać jak dowolne mogą być brzegi, oraz konfiguracja piasku w chwili początkowej. Tu na tym przykładzie napis UWr jest złożony z ziaren piasku, napis WFiA stanowi barierę złożoną z komórek brzegowych. Po uruchomieniu symulacji UWr się rozsypuje i sypie się na WFiA. Proszę o zachowanie poczucia humoru przy analizowaniu tego przykładu ;). 9

3.3 Klepsydra Symulacja dwuwymiarowej klepsydry. Usypujący się piasek z górnej komory tworzy stożek o kącie rozwarcia 45 o, co jest spowodowane użyciem siatki prostokątnej modelu. 4 Podsumowanie Chciałbym podziękować prof. Pękalskiemu za [1], które okazało się być wspaniałym opracowaniem powoli wprowadzającym w teorie automatów komórkowych. Program ten powstał raczej na zasadzie próby wykorzystania algorytmów przedstawionych w [1], jednak zdecydowałem się go wystawić do konkursu, bo na ludziach którym go pokazałem robił pozytywne wrażenie. Można by oczywiście zająć się badaniem tak uproszczonego modelu na gruncie fizyki (zależności tworzenia się lawin od gęstości piasku itp.), ale w tym miejscu nie o to chyba chodzi. Życzę miłej zabawy z programem! Literatura [1] B. Chopard and Michel Droz, University of Geneva Cellular Automata Modelling of Physical Systems., Cambridge University Press, 1998. 10