[WikiDyd] [TitleIndex] [WordIndex

Laboratorium ,,Języki i metodyka programowania I''

Projekt indywidualny: Analizator jakości siatek trójkątnych

Wprowadzenie

Proszę zaprojektować i wykonać program wypisujący raport analizy jakości dwuwymiarowych siatek trójkątnych. Siatki te wykorzystane są w metodzie elementów skończonych, która używana jest w wielu projektach inżynierskich. Zadaniem tych projektów jest modelowanie złożonych zjawisk fizycznych. Metoda elementów skończonych, a co za tym idzie siatki trójkątne (oraz przede wszystkim trójwymiarowe, czworościenne) wykorzystywana jest np. przy projektowaniu samolotów, samochodów, silników, prognozowaniu pogody, prognozowaniu trzęsień ziemi itp. Osoby zainteresowane tą metodą mogą znaleźć więcej informacji na stronie wikipedii: http://pl.wikipedia.org/wiki/Metoda_element%C3%B3w_sko%C5%84czonych . W przypadku siatek trójkątnych najwyższa jakość siatki, za pomocą której uzyskuje się wyniki obarczone najmniejszym błędem numerycznym występuje dla siatek o elementach zbliżonych jak najbardziej do elementów równobocznych.

Program ma być wywoływany z listą argumentów - nazw plików zawierających opis siatki trójkątnej w formacie .poly, który jest wykorzystywany przez program triangle. Program ma czytać te pliki i na ich podstawie wyznaczać wartości współczynników określających jakość siatki. Na zakończenie program powinien wyświetlić raport na ekranie.

  1. Program powinien umożliwiać:
    • . przy każdorazowym wywołaniu przetwarzanie jednej siatki
    • . wyznaczać całkowitą powierzchnię siatki
    • . wyznaczać maksymalne, minimalne i średnie powierzchnie wszystkich elementów
    • . wyznaczać maksymalne, minimalne i średnie powierzchnie elementów znajdujących się w danych podobszarach (każdy element posiada znacznik w postaci numeru, który określa przynależność do danego podobszaru)
    • . wyznaczać n największych i n najmniejszych kątów między krawędziami wszystkich elementów wraz z informacją w którym elemencie się znajdują

    • . wyliczać n największych różnic między długościami boków danego tójkąta (Zakładając, że trójkąt ma boki o długościach 3,4,5 to największą różnicą między długościami jego boków jest wartość 2 = 5 - 3)

  2. Program ma być zbudowany modularnie. Podział na pliki źródłowe ma być odzwierciedleniem funkcjonalnej struktury programu.
    • Lista modułów:
    • . analizator powierzchni
    • . analizator kątów
    • . kontener danych
    • . wczytywanie danych
    • . formater wydruku
    • . sterowanie
  3. Program ma wczytywać siatki wygenerowane przez narzędzie o nazwie triangle (http://www.cs.cmu.edu/~quake/triangle.html).

  4. Program powinien prawidłowo obslugiwać komentarze za pomocą znaku #.

Format plików siatek trójkątnych jest opisany na stronie projektu triangle

Przykładowe pliki:

Plik z węzłami triangle.1.node:

8  2  0  1
   1    0  0    1
   2    5  5    1
   3    5  0    1
   4    0  5    1
   5    2  2    0
   6    2  4    0
   7    4  4    0
   8    4  2    0
# Generated by triangle example.poly

Plik z elementami triangle.1.ele:

10  3  0
   1       1     5     4
   2       5     1     3
   3       4     6     2
   4       6     4     5
   5       5     8     6
   6       8     3     2
   7       3     8     5
   8       7     2     6
   9       2     7     8
  10       8     7     6
# Generated by triangle example.poly

Pliki zostały wygenerowane przez program triangle za pomocą komendy:

triangle example.poly

z pliku definującego kształt obszaru zawierającego:

8 2 0 0
1 0 0
2 5 5
3 5 0
4 0 5
5 2 2
6 2 4
7 4 4
8 4 2
8 0
1 1 4
2 4 2
3 2 3
4 1 3
5 5 6
6 6 7
7 7 8
8 5 8
0
2
1 1 1 1 0.1
2 3 3 2 0.1

2015-09-23 06:43