PROJEKT INśYNIERSKI. Aplikacja internetowa do wizualizacji FSI 2D na przykładzie symulacji pracy zastawki aortalnej z zastosowaniem Adobe Flexa.



Podobne dokumenty
Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

C-geo definicja/edycja obiektów, zapis danych w formacie shape

Instrukcja Instalacji

Generator Wniosków Płatniczych dla Programu Operacyjnego Kapitał Ludzki. Instrukcja Instalacji

Instalacja i opis podstawowych funkcji programu Dev-C++

Programowanie obiektowe

WSCAD. Wykład 5 Szafy sterownicze

Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt

Praca w programie Power Draft

5.4. Tworzymy formularze

URLOPY BY CTI. Instrukcja obsługi

Cash Flow System Instrukcja

Operacje na gotowych projektach.

Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Flash - podstawy

Tworzenie prezentacji w MS PowerPoint

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

I. Program II. Opis głównych funkcji programu... 19

Współpraca Integry z programami zewnętrznymi

5.4. Efekty specjalne

Opis preprocesora graficznego dla programu KINWIR -I

AUTOCAD MIERZENIE I PODZIAŁ

PREZENTACJE MULTIMEDIALNE cz.2

5. Administracja kontami uŝytkowników

Przewodnik Szybki start

Misja #1 Poznajemy Prophio.

Modele symulacyjne PyroSim/FDS z wykorzystaniem rysunków CAD

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla administratora systemu Warszawa 2007

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Inkscape. Menu. 1 SVG (ang. Scalable Vector Graphics) uniwersalny format dwuwymiarowej, statycznej i

Webowy generator wykresów wykorzystujący program gnuplot

Instrukcja użytkownika ARSoft-WZ3

Praca w programie Power Draft

Rozdział 2. Konfiguracja środowiska pracy uŝytkownika

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

Jak rozpocząć pracę? Mapa

Podstawy technologii cyfrowej i komputerów

Rodzaje plików. Podstawowe definicje.

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Straszyński Kołodziejczyk, Paweł Straszyński. Wszelkie prawa zastrzeżone. FoamPro. Instrukcja obsługi

Zastosowania Robotów Mobilnych

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

Platforma e-learningowa

Załącznik techniczny przedmiotu zamówienia komponentu

Spis treści. Lekcja 1: PowerPoint informacje podstawowe 1. Lekcja 2: Podstawy pracy z prezentacjami 36. Umiejętności do zdobycia w tej lekcji 36

Instrukcja pierwszego logowania do Serwisu BRe Brokers!

biegle i poprawnie posługuje się terminologią informatyczną,

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

Przewodnik... Tworzenie Landing Page

4. Podstawowa konfiguracja

Proporcje podziału godzin na poszczególne bloki. Tematyka lekcji. Rok I. Liczba godzin. Blok

ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ

Instrukcja instalacji i obsługi gotowych szablonów aukcji allegro oraz szablonów na zamówienie

PLAN SZKOLEŃ FEMAP. Nasza oferta: Solid Edge najefektywniejszy dostępny obecnie na rynku system CAD klasy mid-range,

PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Platforma e-learningowa

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

KURS ACCESS 2003 Wiadomości wstępne

Spis treści Szybki start... 4 Podstawowe informacje opis okien... 6 Tworzenie, zapisywanie oraz otwieranie pliku... 23

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Pokaz slajdów na stronie internetowej

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Import danych w formacie txt

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Instrukcja obsługi programu Creative Fotos

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

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

OGÓLNOPOLSKI SYSTEM OCHRONY ZDROWIA OSOZ STRONA INTERNETOWA APTEKI

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Dokumentacja instalacji aktualizacji systemu GRANIT wydanej w postaci HotFix a

Specyfikacja techniczna

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:

Aby pobrać program FotoSender naleŝy na stronę lub i kliknąć na link Program do wysyłki zdjęć Internetem.

Omówienie procesu zakupowego w sklepie internetowym Papyrus Sp. z o. o. Spis treści

Instrukcja uŝytkownika

Komputery I (2) Panel sterowania:

Te i wiele innych cech sprawia, że program mimo swej prostoty jest bardzo funkcjonalny i spełnia oczekiwania większości klientów.

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Pomoc do programu Oferent

INSTRUKCJA OBSŁUGI BIULETYNU INFORMACJI PUBLICZNEJ

Jest to program stworzony z myślą o nauczycielach, wykładowcach, trenerach i prezenterach.

Dodawanie grafiki i obiektów

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Instrukcja użytkownika aplikacji modernizowanego Systemu Informacji Oświatowej PRACA NA WIELU BAZACH DANYCH

Moduł galeria internetowa do systemu FotoSender

CorelDRAW. wprowadzenie

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

VectraPortal. VectraPortal. wersja Instrukcja użytkownika Podstawowa funkcjonalność serwisu. [czerwiec 2016]

Transkrypt:

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE Wydział InŜynierii Metali i Informatyki Przemysłowej PROJEKT INśYNIERSKI pt. Aplikacja internetowa do wizualizacji FSI 2D na przykładzie symulacji pracy zastawki aortalnej z zastosowaniem Adobe Flexa. Imię i nazwisko dyplomanta: Mateusz Stec Kierunek studiów: Informatyka Stosowana Profil dyplomowania: Modelowanie i Technologie Informacyjne Nr albumu: 216726 Opiekun: dr Magdalena Kopernik Podpis dyplomanta: Podpis opiekuna: Kraków 2011

Oświadczam, świadomy(-a) odpowiedzialności karnej za poświadczenie nieprawdy, Ŝe niniejszy projekt inŝynierski wykonałem(-am) osobiście i samodzielnie i Ŝe nie korzystałem(-am) ze źródeł innych niŝ wymienione w pracy. Kraków, dnia. Podpis dyplomanta Mateusz Stec - Projekt Inżynierski Strona 2

Spis treści: 0. Wstęp 4 Część I Teoretyczna 1. Środowisko obliczeniowe MES ADINA. 6 2. Platforma Adobe Flash. 10 2.1 Opis i historia platformy Flash. 10 2.2 Adobe Flex jako środowisko do tworzenia RIA. 10 2.3 Zalety i wady technologii Flash oraz przypadki jej uŝycia. 11 3. Cel i załoŝenia projektu. 14 Część II Badania własne 4. Charakterystyka aplikacji Flexhibit oraz omówienie jej głównych składowych. 16 4.1 Framework aplikacji. 17 4.2 UŜyte biblioteki i algorytmy. 18 4.3 Parser plików wejściowych eksportowanych z programu ADINA. 19 4.4 Struktura danych w aplikacji. 22 4.4.1 Klasa Mesh. 22 4.4.2 Klasa Node. 23 4.4.3 Klasa Element. 24 4.5 Wizualizacja symulacji. 24 4.6 Graficzny interfejs aplikacji. 27 5. Symulacja przepływu krwi przez zastawkę aortalną. 29 6. Dyskusja wyników. 31 7. Podsumowanie i wnioski. 34 Spis ilustracji. 35 Spis tabel. 35 Spis wzorów. 36 Bibliografia. 36 Mateusz Stec - Projekt Inżynierski Strona 3

0. Wstęp Modelowanie i symulacje komputerowe rozwijają się juŝ od kilkudziesięciu lat, a od kilkunastu są nierozerwalnie połączone z procesami produkcyjnymi, medycyną i przemysłem. Na początku rozwijane m.in. do tworzenia symulacji pocisków artyleryjskich w przemyśle wojennym, z czasem stały się mechanizmem pomagającym ludziom, poprawiającym standard ich Ŝycia i umoŝliwiającym tworzenie coraz doskonalszych ekwiwalentów ludzkich organów, ratujących zdrowie i Ŝycie. Z racji wykorzystania maszyn cyfrowych, symulacje te opierają się na metodach numerycznych. Jedną z najczęściej stosowanych pośród nich jest metoda elementów skończonych (MES), pozwalająca podzielić poddawany symulacji rzeczywisty obszar na wiele małych elementów, na których moŝna wykonać obliczenia czyli elementów skończonych. Podczas tworzenia oprogramowania do tych obliczeń stosuje się dwa podejścia: tworzenie uniwersalnych programów, zdolnych do badań na wielu typach modeli i zjawisk, które są wykorzystywanych komercyjnie, oraz programy dedykowane, tworzone od podstaw z myślą o jednostkowym problemie lub bardzo ograniczonej domenie problemów. W niniejszej pracy zawarte zostały tematy związane z wykorzystaniem symulacji MES w medycynie. Prace nad sztucznym sercem, zarówno w Polsce jak i na świecie trwają od wielu lat, rozwijane są biologiczne zastawki serca, roboty kardiochirurgiczne, czy teŝ techniki terapii komórkowej w oparciu o komórki macierzyste. Bardzo często zdarza się, Ŝe ludzka ingerencja w sprawy tak bardzo prywatne jak własne ciało, powoduje wśród opinii publicznej sprzeciw oraz dylematy etyczne i moralne. Główną przyczyną takich emocji wydaje się być strach i niezrozumienie danego tematu, dlatego tak waŝną kwestią jest odpowiednie uświadomienie ludzi. Środowiska obliczeniowe MES zazwyczaj prezentują wyniki w tzw. post-procesorach, które są ich częścią. Zwykły człowiek nie jest więc w stanie zobaczyć, jak wygląda i pracuje zastawka serca, stworzona podczas takiego modelowania bez instalowania zaawansowanego i często trudno dostępnego oprogramowania. Niniejsza praca stanowi prezentację projektu, który mógłby to zmienić. Jest to aplikacja internetowa, która pozwala na wizualizację symulacji FSI (ang. Fluid Structure Interaction), czyli obliczeń jednocześnie dla płynu i ciała stałego, jaki to przypadek ma miejsce np. w zastawce aortalnej. Aplikacja ta pozwala na oglądanie modelu zastawki oraz jego pracy jako animacji lub krok po kroku, pokazując w wybrany sposób elementy i węzły Mateusz Stec - Projekt Inżynierski Strona 4

modelu oraz dane na ich temat. Aby ją uruchomić wystarczy jedynie przeglądarka internetowa z wtyczką Flash Player, którą kaŝdy uŝytkownik sieci ma na swoim komputerze. Mateusz Stec - Projekt Inżynierski Strona 5

Część I Teoretyczna Mateusz Stec - Projekt Inżynierski Strona 6

1. Środowisko obliczeniowe MES ADINA Oprogramowania pozwalające na modelowanie i rozwiązywanie problemów metodą elementów skończonych posiadają szerokie zastosowanie w róŝnych dziedzinach przemysłu. W zaleŝności od wymagań i rodzaju produkcji stosuje się róŝne środowiska obliczeniowe, wybierając to najbardziej odpowiednie dla danego zagadnienia. Większość dostępnych komercyjnie programów poradzi sobie z najprostszymi problemami, nie wymagając przy tym od uŝytkownika dogłębnej znajomości metody elementów skończonych. Typowe środowisko obliczeniowe składa się z trzech głównych modułów, wyposaŝonych w graficzny interfejs odpowiadający kaŝdej z nich (Rysunek 1.): Rysunek 1. Środowisko obliczeniowe MES. Wykorzystano ilustracje z [11]. Zadania podczas tworzenia symulacji w typowym programie MES rozkładają się następująco: preprocesor o stworzenie bądź wczytanie geometrii o dyskretyzacja problemu (stworzenie siatki elementów skończonych) o złoŝenie procesu o nałoŝenie warunków brzegowych obliczenia o dla kaŝdego elementu, węzła i kroku czasowego obliczane są odpowiednie parametry przy uŝyciu metod numerycznych postprocesor o przedstawienie wyników symulacji i jej parametrów Mateusz Stec - Projekt Inżynierski Strona 7

o moŝliwość ingerencji w sposób wyświetlania wizualizacji o obserwacja zachowania symulacji w poszczególnych krokach czasowych Jak widać większość czynności mających wpływ na wynik symulacji, na które uŝytkownik ma wpływ ma miejsce w preprocesorze. Po wykonaniu obliczeń ich wynik jest prezentowany w postprocesorze. Tutaj uŝytkownik moŝe zobaczyć jak przebiega symulacja i czy ona odpowiada oczekiwanym efektom. Jeśli nie, istnieje moŝliwość zmiany poszczególnych danych w preprocesorze i ponowne obliczenie symulacji. Jest to o tyle korzystne, szczególnie w przemyśle, Ŝe pozwala na wyeliminowanie większości błędnych załoŝeń bez rozpoczynania produkcji, co oszczędza duŝo czasu, surowców i minimalizuje koszty produkcji. Po wykonaniu obliczeń moŝna zazwyczaj wyeksportować ich wyniki do plików tekstowych, co w przypadku tego projektu pozwoliło na wykorzystanie ich podczas tworzenia wizualizacji, czyli w pewien sposób zastąpienie postprocesora samego programu. Ze względu na wsparcie symulacji FSI został wybrany komercyjny program ADINA, który oprócz symulacji FSI umoŝliwia obliczenia transferu ciepła, analizę napręŝeń ciał stałych oraz struktur statycznych i dynamicznych. FSI umoŝliwia jednoczesne przeprowadzenie obliczeń dla modelu cieczy i ciała stałego oraz uwzględnienie ich wzajemnego oddziaływania na siebie, co sprawdza się w przypadku płatków zastawki aortalnej i krwi przez nią przepływającej. Stworzenie geometrii modeli cieczy i ciała stałego nie jest w programie ADINA zadaniem łatwym, jednak istnieje moŝliwość zaimportowania geometrii z innych programów, m.in. typu CAD. Fakt ten powoduje wsparcie dla formatu IGES (ang. Initial Graphics Exchange Specification), który moŝna zaimportować do interfejsu ADINA w dwóch postaciach: jako przedstawienie szkieletowe, składające się jedynie z węzłów i krawędzi elementów, z których następnie budowana jest macierzysta geometria programu ADINA, składająca się z powierzchni i objętości, jako geometria ADINA Modeler. Istnieje więc wygodny sposób stworzenia modelu w programach mających o wiele większe moŝliwości, takimi jak AutoCAD czy SolidWorks. W przypadku niniejszego projektu wykorzystano program AutoCAD, z którego następnie geometrię zaimportowano do programu Rhinoceros 3D. Wersja testowa tej aplikacji daje moŝliwość łatwej zmiany Mateusz Stec - Projekt Inżynierski Strona 8

płaszczyzny modelu, oraz umoŝliwia bezpośredni eksport plików IGS i IGES, co w przypadku AutoCAD-a nie jest moŝliwe bez instalowania dodatkowych wtyczek. Dzięki bogatej i rozbudowanej bazie samouczków dostępnej na stronie internetowej programu, poznanie programu ADINA jest bardzo ułatwione, co jest dodatkowym atutem tego oprogramowania. Mateusz Stec - Projekt Inżynierski Strona 9

2. Platforma Adobe Flash 2.1 Historia i opis platformy Flash Adobe Flash to zintegrowany zestaw technologii programowania aplikacji, składający się z szeregu programów, narzędzi i środowisk programistycznych. Prekursorem technologii Flash była aplikacja SmartSketch, której autorem był Jonathan Gay, umoŝliwiająca rysowanie na komputerach z tabletem. Wraz z rozwojem Internetu SmartSketch został ponownie wydany jako FutureSplash. W 1996 roku został wykupiony przez Macromedia i wypuszczony pod nazwą Flash, powstałą ze skrócenia słów Future i Splash. Po niespełna dziesięciu latach, w roku 2005 firma Adobe Systems wykupiła Macromedia, a w 2007 r. ukazała się pierwsza nowa wersja Macromedia Flash pod skrzydłami Adobe Adobe Flash CS3 Professional. Z narzędzi słuŝącym technologii Flash moŝna wymienić Flash Professional (tworzenie animacji i grafiki wektorowej), Flash Catalyst (narzędzie do łatwego budowania stron internetowych w technologii Flash) oraz Flash Builder (rozbudowane narzędzie do tworzenia aplikacji RIA). Jako framework całej technologii Adobe uznaje Adobe Flex, opisany w kolejnym podrozdziale. Ponadto w skład platformy wchodzą rodzina serwerów Flash Media Server oraz LiveCycle, usługi Flash Platform Services, klient Flash Player oraz środowisko AIR umoŝliwiające tworzenie aplikacji desktopowych. Głównym językiem programowania platformy jest aktualnie ActionScript 3.0. Jest to język programowania zorientowany obiektowo, bazujący na ECMAScript. Najczęściej uŝywane na stronach WWW są pliki w formacie SWF, będącym bazowym plikiem wynikowym kompilacji kodu ActionScript. 2.2 Adobe AIR jako środowisko do tworzenia RIA Wraz z rozwojem platformy Flash, rozwinęły się kolejne technologie, pozwalające na coraz szybsze i łatwiejsze projektowanie i programowanie aplikacji internetowych i desktopowych. Od 2007 r. rozwijane jest wieloplatformowe środowisko uruchomieniowe Adobe AIR (Adobe Integrated Runtime), słuŝące do tworzenia tzw. bogatych aplikacji Mateusz Stec - Projekt Inżynierski Strona 10

internetowych RIA (Rich Internet Application), uŝywających technologii Adobe Flash, Adobe Flex, HTML oraz Ajax, mogących być rozwijanych jako aplikacje desktopowe. Adobe Flex, aktualnie w wersji 4, to SDK (Software Development Kit) dla aplikacji RIA. Aplikacje Flex mogą być pisane przy uŝyciu programu Adobe Flash Builder, bądź teŝ z innymi, zazwyczaj darmowymi środowiskami korzystającymi z kompilatora Flex od Adobe. Tworząc graficzny interfejs uŝytkownika w aplikacjach RIA korzystamy z MXML, języka opartego na znacznikach XML, natomiast całość interakcji jest uzyskiwana poprzez ActionScript. Flex, który oferuje wiele komponentów i gotowych dodatków, takich jak wykresy czy grafy. Obecnie technologiami porównywanymi z Flexem są Curl, OpenLaszlo, Ajax, XUL, JavaFX oraz Microsoft Silverlight. 2.3 Zalety i wady technologii Flash oraz przypadki jej uŝycia. Flash i jego technologie, pomimo ich popularności i powszechnego uŝycia, ma tyle samo zwolenników co i przeciwników. UŜytkownicy popierający Flasha zdają sobie sprawę z mnogości zastosowań, łatwości rozwijania aplikacji oraz ich estetyki oraz wieloplatformowości, natomiast wrogowie Flasha narzekają na jego awaryjność, niski poziom bezpieczeństwa oraz zuŝywanie duŝej ilości zasobów komputera. W Tabeli 1. zawarto najwaŝniejsze wady i zalety technologii Flash. Zalety jest oparty na grafice wektorowej, pliki SWF są więc bardzo lekkie i ładują się relatywnie szybko jeśli zachodzi potrzeba, istnieje moŝliwość zaimportowania bitmap równolegle do wektorów Wady ze względu na swoją wektorowość zuŝywa o wiele więcej zasobów procesora niŝ statyczne strony WWW jest zamkniętym standardem, oferującym jedynie SDK do rozwijania aplikacji wspiera dźwięk oraz video (oparte głównie na nim są serwisy takie jak YouTube czy Vimeo), zarówno osadzone jak i strumieniowane nieodpowiednio zabezpieczona aplikacja moŝe łatwo spowodować niestabilność przeglądarki Mateusz Stec - Projekt Inżynierski Strona 11

pozwala tworzyć treści bogate w animacje, interaktywne i przyjazne uŝytkownikom oferuje dokładnie takie same wraŝenia we wszystkich przeglądarkach i platformach bez konieczności uwzględniania ich podczas rozwoju aplikacji dobrze integruje się z innymi technologiami sieciowymi umoŝliwia zapisywanie nieusuwalnych ciasteczek (usunąć moŝna je jedynie ręcznie) pod postacią Local Shared Objects (LSO) bywa naduŝywany i nieumiejętnie stosowany na stronach WWW, przez co przybywa mu przeciwników istnieją opinie, Ŝe łamie załoŝenia Internetu, wg których funkcjonalność powinna dominować nad wyglądem jest powszechnie uŝywany - Flash Player jest najczęściej zainstalowaną wtyczką w 99% komputerów z dostępem do Internetu [13] nie jest w pełni wspierany przez Apple, co moŝe być dla niektórych bardzo duŝym minusem posiada ogromne zaplecze developerów, dostarczające wsparcia przy tworzeniu aplikacji Flash stosunkowo łatwy do nauczenia się, oprócz komercyjnych programów Adobe moŝna uŝywać darmowych środowisk z uŝyciem Flex SDK Tabela 1. Zalety i wady technologii Flash Rozwijająca się technologia HTML 5, mnogość alternatyw przy budowaniu statycznych stron oraz częste niewłaściwe uŝycie Flasha jest powodem, dla którego warto poświęcić chwilę na przemyślenie gdzie warto, a gdzie nie powinno się uŝywać tej technologii. Ogólnie przyjmuje się, Ŝe warto uŝywać technologii Adobe: na stronach reklamujących produkt bądź usługę, mających przyciągnąć uwagę wyglądem i jakością wykonania, na stronach przedsiębiorstw, gdzie moŝna uŝyć szybkich i bezpiecznych metod przesyłu oraz integracji danych, komponentów do wykresów i innych sposobów przyjaznego wyświetlania informacji, Mateusz Stec - Projekt Inżynierski Strona 12

do tworzenia bannerów reklamowych, do pisania gier działających bezpośrednio w przeglądarce. Nie powinno się natomiast uŝywać Flasha do: tworzenia formularzy do logowania (nie ma moŝliwości zapamiętania wprowadzanych danych), stron opartych głównie na tekście kaŝda strona, składająca się w większości z tekstu powinna pozostać w HTML. Mateusz Stec - Projekt Inżynierski Strona 13

3. Cel i założenia projektu Jako cel niniejszej pracy zostało obrane stworzenie aplikacji internetowej wizualizującej symulację stworzoną w środowisku MES ADINA dzięki danym z niego wyeksportowanym. Będzie ona umoŝliwiała dowolnemu uŝytkownikowi Internetu zobaczenie modelu zastawki aortalnej i jej zachowania bez konieczności instalowania jakiegokolwiek dodatkowego oprogramowania. Sama aplikacja powinna: być jak najbardziej intuicyjna i przyjazna uŝytkownikowi, zarówno pod względem uruchomienia jak i korzystania z graficznego interfejsu, być wieloplatformowa, działająca identycznie na wszystkich wspierających ją platformach oraz we wszystkich przeglądarkach internetowych, co moŝna osiągnąć dzięki uŝyciu technologii Flash, swoim wyglądem i funkcjonalnością wzbudzać zainteresowanie uŝytkowników, prowadzące do chęci poznania i zgłębienia przez nich rozpatrywanego tematu. umoŝliwiać dalsze jej rozwijanie pod względem budowy, m.in. dostosowanie jej do dowolnej symulacji o dowolnych parametrach stworzonej w programie ADINA lub teŝ innych, eksportujących dane do plików tekstowych środowisk obliczeniowych MES, moŝliwość wizualizacji dowolnych parametrów w odpowiedni sposób, wyświetlanie rozbudowanych informacji o węzłach i elementach, moŝliwość wczytania kilku symulacji naraz, itp. Biorąc pod uwagę przyszłą moŝliwość wczytania dowolnych plików tekstowych z dysku została uŝyta technologia Flex, umoŝliwiająca aplikacjom internetowym Flash operacje na plikach dyskowych. Ponadto do spełnienia wszystkich załoŝeń potrzebny jest model MES zastawki aortalnej oraz przeprowadzenie symulacji przepływu krwi przez nią. Symulacja ta oraz przykładowe symulacje dostępne na stronie producenta ADINY będą wzorcem, do którego będzie moŝna odnieść wyniki wizualizacji w tworzonej aplikacji. Mateusz Stec - Projekt Inżynierski Strona 14

Część II Badania własne Mateusz Stec - Projekt Inżynierski Strona 15

4. Charakterystyka aplikacji Flexhibit oraz omówienie jej głównych składowych Aplikacja, której poświęcona jest niniejsza praca, została zaimplementowana jako narzędzie do wizualizacji symulacji FSI zastępująca postprocesor programu ADINA wykorzystującego do obliczeń metodę elementów skończonych. Z załoŝenia miała być prosta, wygodna i wiernie odwzorowująca model stworzony w środowisku obliczeniowym, a ponadto miała być łatwa w dalszej konserwacji i rozbudowywaniu. Aby spełniała te kryteria, została podzielona na trzy współpracujące ze sobą części (Rysunek 2.): Rysunek 2. Schemat budowy aplikacji Flexhibit parser plików wejściowych jest odpowiedzialny za analizę plików wyeksportowanych w programie ADINA oraz umieszczenie odpowiednich danych w pamięci aplikacji, struktura w pamięci określa sposób przechowywania danych i powiązania między nimi, scena wizualizująca zawiera wszystkie widoczne na ekranie elementy (takŝe graficzny interfejs uŝytkownika). Aplikacja została napisana przy uŝyciu technologii Flash / Flex w języku ActionScript 3.0 z uŝyciem darmowego, rozbudowanego edytora kodu FlashDevelop. Mateusz Stec - Projekt Inżynierski Strona 16

4.1 Framework aplikacji. Aplikacja Flexhibit została stworzona w oparciu o rozbudowany framework zawierający wszystkie prawie wszystkie klasy aplikacji. Decyzja ta została spowodowana faktem, Ŝe większość jej elementów jest niezbędna do funkcjonowania aplikacji wizualizującej dany problem. Ponadto moŝliwość bogatej rozbudowy programu oraz moŝliwość ponownego wykorzystania kodu w innych aplikacja przemawia za taką budową programu. Całość frameworku składa się z klas podzielonych na pakiety wg ich roli w aplikacji jak przedstawiono na Rysunku 3. Rysunek 3. Rozkład klas w pakietach frameworku Poszczególne pakiety odpowiedzialne są za: data przechowywanie wczytanych danych, informacji o zgromadzonych danych i sposobach ich identyfikacji, display koordynację wyświetlanie elementów aplikacji, gui graficzny interfejs uŝytkownika, osadzony w klasach pakietu display, loading wczytywanie plików wejściowych, parsing analizę składniową plików wejściowych oraz zapis ich do obiektów klas pakietu data, structure przechowywanie danych o elementach wizualizacji oraz sposobach ich wyświetlania, utils ułatwianie wyświetlania informacji o elementach modelu. Szczegółowy opis klas znajduje się w kolejnych podrozdziałach. Mateusz Stec - Projekt Inżynierski Strona 17

4.2 UŜyte biblioteki i algorytmy. Większość kodu w aplikacji została napisana od podstaw w celu maksymalnego przystosowania go do potrzeb problemu. Zrezygnowano więc m.in. z bibliotek umoŝliwiających szybkie i grupowe wczytywanie plików z dysku (np. BulkLoader). Sama animacja wizualizacji opiera się na licznikach czasu, jednakŝe została uŝyta biblioteka umoŝliwiająca łatwe tworzenie prostych animacji i optymalizująca je TweenLite, tworzona przed organizację GreenSock [9]. Jest to prosty, lecz bardzo szybki i wydajny silnik umoŝliwiający tworzenie tzw. tweenów (tween, z ang. pomiędzy ), na których opiera się animacja w technologii Flash, będących alternatywą dla animacji poklatkowych. Tworzony macierzysty obiekt Tween odpowiada za modyfikację obiektu wg podanych parametrów, takich jak połoŝenie, skala, obrót czy kolor. Biblioteka ta posłuŝyła w aplikacji do animowania elementów interfejsu graficznego, umoŝliwia pokazywanie i ukrywanie m.in. skali kolorów wektorów prędkości, niepotrzebnej gdy wektory nie są wyświetlane. Stworzenie takiej animacji sprowadza się do następującego kodu: Kod: TweenLite.to(_scale,.5, { x:stage.stagewidth - 50 } ); Klasa TweenLite zawiera statyczną metodę TweenLite.to(), tworzącą animację określoną przez podane parametry. W podanym powyŝej przykładzie _scale jest modyfikowanym obiektem skali kolorów,.5 to czas trwania animacji oraz dodatkowy, podany w nawiasach klamrowych, parametr x jest odpowiedzialny za poziome przesunięcie skali w odpowiednie miejsce, odległe o 50 pikseli od prawej krawędzi sceny. Aby znajdować odpowiedni kolor dla wektorów prędkości o danych wartościach, posłuŝono się algorytmem zwracającym kolor na podstawie wartości oraz przedziału, do którego wartość ta zostaje przyrównana. PosłuŜono się algorytmem wykorzystywanym w edytorze grafiki wektorowej SVG Inkscape [16]. Algorytm ten został przepisany z języka C na język ActionScript 3.0. Wszystkie pozostałe algorytmy, takie jak np. analiza plików tekstowych czy obliczanie kąta rotacji modelu podczas obracania go zostały opracowane samodzielnie. Mateusz Stec - Projekt Inżynierski Strona 18

4.3 Parser plików wejściowych eksportowanych z programu ADINA. Częścią projektu, bez której wizualizacja nie mogłaby dojść do skutku jest klasa odpowiedzialna za wczytanie informacji o modelu i symulacji z plików tekstowych. Jest to klasa DataParser. Posiada ona dwie główne metody publiczne: parsedatfile() oraz parsetxtfile(). Są one odpowiedzialne za rozpoczęcie analizy plików wejściowych o rozszerzeniach odpowiednio DAT i TXT. W skład danych, które moŝemy uzyskać z pliku DAT wchodzą m.in. dane na temat połoŝenia węzłów siatki oraz rozmieszczenia elementów skończonych. Sam plik jest podzielony na sekcje, których nagłówki określają co będzie się w nich znajdowało. W niniejszym projekcie istotne okazały się głównie sekcje: NODAL POINT DATA informacje o węzłach siatki elementów skończonych Kod: C*** NODAL POINT DATA 1 0 1 2 3 0 0 0 0 0 0 0 0.000000000000 7.609276334075 23.07534065465 1 W załączonej części pliku znajduje się nagłówek sekcji oraz informacje o pierwszym węźle modelu cieczy. Kolor żółty informuje nas o indeksie węzła, natomiast kolor niebieski to współrzędne węzła. ELEMENT DATA informacje o elementach skończonych siatki Kod: C*** ELEMENT DATA 1 3 0 1 1.00000000 1 0.0 0.0 1 0 000 109 27 28 W sekcji ELEMENT DATA kolor żółty informuje nas o indeksie elementu, kolor zielony o liczbie węzłów w elemencie, a kolor niebieski to indeksy tych węzłów. Pozostałe dane znajdujące się w pliku DAT, np. znajdujące się w sekcji ELEMENT GROUP mogą posłuŝyć do rozbudowania aplikacji o nowe funkcjonalności, np. obsługę i identyfikację róŝnych typów elementów w aktualnej aplikacji wspierane są elementy 3- i 4-węzłowe. Mateusz Stec - Projekt Inżynierski Strona 19

W pliku TXT zostały wyeksportowane parametry symulacji w kolejnych krokach czasowych, takie jak połoŝenie węzłów, ich prędkość i działające na nie ciśnienie. ADINA umoŝliwia wyeksportowanie w jednym pliku tekstowym do sześciu parametrów. Narzuca to pewne ograniczenia, jeśli jednak zajdzie potrzeba moŝna stworzyć kilka plików, zapisując w kaŝdym z nich róŝne parametry. W niniejszym projekcie ograniczono eksportowane dane do pięciu parametrów: Y-POSITION pozycja węzła na osi Y, Z-POSITION pozycja węzła na osi Z, Y-VELOCITY współrzędna Y wektora prędkości, Z-VELOCITY współrzędna Z wektora prędkości, PRESSURE ciśnienie w węźle. Zostały wybrane parametry osi Y i Z poniewaŝ ADINA umieszcza dane o modelu na tej płaszczyźnie. NaleŜy o tym pamiętać podczas tworzenia geometrii w programach innych niŝ ADINA. Ponadto podczas eksportowania tych informacji naleŝy ustawić opcję Smoothing Technique na wartość AVERAGED. Zabieg ten spowoduje uśrednienie wartości w węzłach i uporządkowanie ich według kolejnych węzłów, co umoŝliwi odpowiednie zanalizowanie go w aplikacji. Nie jest waŝna natomiast kolejność eksportowania danych, poniewaŝ aplikacja w pierwszej kolejności analizuje nagłówek pliku tekstowego i na jego podstawie określa w jakiej kolejności podawane będą parametry do poszczególnych węzłów. Kod: POINT Y-POSITION Z-POSITION Y-VELOCITY Z-VELOCITY PRESSURE Time 0.00000E+00 Node 1 7.60928E+00 2.30753E+01 0.00000E+00 0.00000E+00 0.00000E+00 Node 2 7.60808E+00 2.22083E+01 0.00000E+00 0.00000E+00 0.00000E+00 Node 3 7.60688E+00 2.13413E+01 0.00000E+00 0.00000E+00 0.00000E+00 Node 4 7.60568E+00 2.04743E+01 0.00000E+00 0.00000E+00 0.00000E+00 ( ) Time 4.90000E+00 Node 1 7.60928E+00 2.30753E+01 0.00000E+00 0.00000E+00 5.39851E-02 Node 2 7.60808E+00 2.22083E+01 0.00000E+00 0.00000E+00 8.29740E-02 Node 3 7.60688E+00 2.13413E+01 0.00000E+00 0.00000E+00 1.30137E-01 Node 4 7.60568E+00 2.04743E+01 0.00000E+00 0.00000E+00 1.72304E-01 ( ) Kolorem pomarańczowym oznaczony został nagłówek, w którym zawarte są nazwy parametrów. Kolor zielony to wartość aktualnego kroku czasowego, kolor żółty to indeks Mateusz Stec - Projekt Inżynierski Strona 20

węzła, a wiersz zaznaczony kolorem niebieskim zawiera wartości wyeksportowanych parametrów. Ogólna zasada działania parsera, zarówno dla plików DAT jak i TXT, jest oparta na następujących krokach, wykonywanych dla kaŝdego pliku: 1) Znajdź część pliku zawierającą potrzebne informacje i określ jej długość, następnie usuń pozostałą część. 2) Podziel otrzymany obszar na podobszary z informacjami o pojedynczym węźle / elemencie / kroku czasowym. 3) Dla kaŝdego z tych podobszarów znajdź odpowiednie informacje i zapisz je do odpowiedniego obiektu w pamięci. W Tabeli 2. znajdują się informacje o poszczególnych funkcjach klasy DataParser: Nazwa funkcji Opis funkcji parsedatfile () : void parsenodalpointdata () : void getcoord (from:string, xyz:string) : Number parseelementdata () : void Rozpoczyna parsowanie pliku DAT. Analizuje informacje z sekcji NODAL POINT DATA. Zwraca wartość oczekiwanej współrzędnej. Analizuje informacje z sekcji ELEMENT DATA. getelementnumber (data:string) : int getelementnodecount (data:string) : int getelementnodes (data:string) : Vector.<int> Funkcje te zwracają informacje odpowiednio o indeksie, liczbie węzłów i indeksy tych węzłów w elemencie. parsetxtfile () : void Rozpoczyna parsowanie pliku TXT. gettimestepscount () : void parsetxtheader () : Array getnodecount () : void createnodes () : void getparametervalues () : void recountnodesid () : void isntnull (item:*, id:int, ar:array) : Boolean isntnullorzero (item:*, id:int, array:array) : Boolean isntshort (item:*, id:int, array:array) : Boolean Analizuje liczbę kroków czasowych symulacji. Analizuje nagłówek pliku zawierający informacje o wyeksportowanych parametrach. Analizuje liczbę węzłów modelu. Tworzy obiekty węzłów w pamięci. Odczytuje i zapisuje do odpowiednich obiektów wartości parametrów. Przelicza indeksy węzłów w przypadku, gdy nie są numerowane od 1. Funkcje filtrujące tablice wg odpowiednich kryteriów. Tabela 2. Funkcje składowe klasy DataParser. Mateusz Stec - Projekt Inżynierski Strona 21

4.4 Struktura danych w aplikacji. Dane o modelu i symulacji po wczytaniu plików zostają zapisane w klasie DataManager jako ciągi znaków. Następnie parser przetwarza te ciągi i zapisuje informacje w odpowiednich klasach. Główną klasą, która zbiera informacje o siatce jest klasa Mesh (Rysunek 4.). Rysunek 4. Uproszczony diagram klas przechowujących informacje o siatce. 4.4.1 Klasa Mesh. Siatka w metodzie elementów skończonych składa się z węzłów oraz elementów skończonych. czyli figur dla których węzły stają się wierzchołkami, bądź dzielą krawędź. Model danych w aplikacji Flexhibit jest więc stworzony na podobnej zasadzie. Klasa Mesh jest zbiorem informacji o elementach skończonych i węzłach tej siatki, zapisanych w obiekcie Vector. Jest to implementacja tablicy, która, w przeciwieństwie do zwykłego obiektu Array, zawiera określony z góry typ danych. Ten typ tablicy jest szybszy w dostępie i odczycie danych, ustępuje jedynie szybkością podczas usuwania elementów z tablicy, co w tym przypadku nie ma znaczenia, gdyŝ usuwanie elementów nie następuje w trakcie trwania aplikacji. Główna klasa siatki MES zawiera takŝe dane na temat ilości węzłów w siatce, ilości kroków czasowych symulacji oraz informacje czy mamy do czynienia z siatką cieczy bądź ciała stałego. Ponadto jest kontenerem dla wizualizacji węzłów i elementów, rozszerzając klasę MovieClip. Tabela 3. przedstawia funkcje składowe klasy Mesh. Mateusz Stec - Projekt Inżynierski Strona 22

Nazwa funkcji Opis funkcji onaddedtostage (e:event) : void Tworzy kontenery dla węzłów i elementów. Funkcja wykonuje się po dodaniu siatki do sceny. drawmesh () : void Dla każdego obiektu siatki wykonuje funkcje wizualizujące dany obiekt. getnodebyid (id:int) : Node Zwraca węzeł o podanym indeksie. Tabela 3. Funkcje składowe klasy Mesh. 4.4.2 Klasa Node. Dane zawarte w węzłach są podstawowymi i najwaŝniejszymi informacjami w aplikacji. To na ich podstawie budowane są elementy, a ich parametry są kluczowe podczas wyświetlania symulacji. Pierwszymi danymi zapisywanymi w klasie Node są współrzędne kaŝdego z węzłów. Następnie w tablicy asocjacyjnej stworzonej na bazie obiektu Object umieszczane są wartości wczytanych parametrów. KaŜdy element tej tablicy, nazwany po parametrze, jest obiektem Vector. Kolejne komórki wektora zawierają wartości danego parametru w kolejnych krokach czasowych. Tworzona jest więc pewnego rodzaju tablica dwuwymiarowa złoŝona z obiektów Object i Vector. KaŜdy z węzłów posiada równieŝ swój indeks z symulacji (zmienna id) oraz indeks z tablicy znajdującej się w pamięci arrayid. W Tabeli 4. zawarto waŝniejsze funkcje klasy Node. Nazwa funkcji Opis funkcji drawnode () : void Rysuje ciało węzła i dodaje go do sceny. setpositiononscene () : void Ustawia wyjściową pozycję węzła na scenie. setdisplacements (mesh:mesh) : void Oblicza współrzędne węzła w kolejnych krokach czasowych. Jako argument przyjmuje obiekt Mesh, z którego pobiera ilość kroków czasowych. setpositionontimestep (step:int) : void Ustawia pozycję i pozostałe parametry węzła odpowiednio do kroku czasowego podanego jako argument funkcji. setvisible (vis:boolean) : void Ustawia widoczność ciała węzła. setvelvectorsvisible (vis:boolean) : void Ustawia widoczność wektorów prędkości węzła. showinfo (e:mouseevent) : void hideinfo (e:mouseevent) : void Obsługuje najechanie bądź zjechanie z węzła kursora myszki, pokazując lub chowając informacje o nim. Tabela 4. WaŜniejsze funkcje składowe klasy Node. Mateusz Stec - Projekt Inżynierski Strona 23