2D: Elementy trójkątne algorytmy triangulacyjne (nie tylko do MES, również do geometrii i grafiki komp) http://www.cs.berkeley.edu/~jrs/mesh/
Elementy trójkątne: współrzędne polowe elementy czworokątne: funkcje kształtu bezpośrednie uogólnienie D. współrzędne i 2 - również bezpośrednie uogólnienie D elementy trójkątne: - współrzędne polowe do generacji funkcji kształtu u=2-, w=3-3(x3,y3) powierzchnia trójkąta (,2,3) (bez ½ równoległobok) w P(x,y) (x,y) 2(x2,y2) albo u stosunek powierzchni P23 / 23 ) 2) 3) wartość liniowa w x i w y L=, gdy P= L=0 gdy P=3, P=2, lub gdy P na linii łączącej 2 i 3 (liniowa zależność wierszy macierzy)
Elementy trójkątne: współrzędne polowe (powierzchniowe area) 3(x3,y3) P(x,y) 2(x2,y2) (x,y) L = jeden w (x,y)=, zero w pozostałych punktach: warunki stawiane funkcjom kształtu Lagrange a najniższego rzędu L+L2+L3= - para współrzędnych L,L2 2.5 0.5 0 0 2 3 4 55 66 77 88
Współrzędna polowa L (równoległa do bo 2-3) 3 2.5 0.5 2 0 0 2 3 4 5 6 7 8 4 5 6 7 8 Współrzędna polowa L2 2.5 0.5 0 0 2 3
Elementy trójkątne: kwadratowe funkcje kształtu 3(x3,y3) 5 4 2(x2,y2) 6 (x,y) środki boków trójkąta: dla współrzędnych polowych 0.5 L,L2,L3.5 0.5 0 0 2 3 4 5 6 77 sprawdzić łatwo, że ) 2) dodawanie wierszy nie zmienia wartości wyznacznika mnożenie wiersza przez skalar = mnożenie wyznacznika 88
Elementy trójkątne: kwadratowe funkcje kształtu funkcje kształtu dla węzłów narożnych: 3(x3,y3) 5 4 2(x2,y2) 6 (x,y) środki boków trójkąta: dla współrzędnych polowych 0.5 L,L2,L3.5 0.5 0 0 2 3 4 5 6 77 sprawdzić łatwo, że ) 2) dodawanie wierszy nie zmienia wartości wyznacznika mnożenie wiersza przez skalar = mnożenie wyznacznika 88
Elementy trójkątne: kwadratowe funkcje kształtu.5 0.5 0 0 2 3 4 5 6 7 8
Elementy trójkątne: kwadratowe funkcje kształtu cd. 3(x3,y3) 5 4 2(x2,y2) 4=4L2L3 5=4LL3 6=4LL2 6 (x,y) Węzły na środkach ścian: L,L2 2.5 0.5 0 0 L2 wyklucza krawędź -3 2 3 4 5 iloczyn L,L2 =/4 w 6 66 77 8 L wyklucza krawędź 2-3
Elementy trójkątne: kwadratowe funkcje kształtu cd. 6=4LL2.5 0.5 0 0 2 3 4 5 6 7 8
Elementy trójkątne: kubiczne funkcje kształtu 3(x3,y3) 8 9 /3 długości boku (x,y) 7 6 2(x2,y2) 0 4 5 węzły narożne: 0 środek ciężkości [(x+x2+x3)/3, (y+y2+y3)/3]
Elementy trójkątne: kubiczne funkcje kształtu węzły narożne: 2.5 0.5 0 0 2 3 4 5 6 7 8
Elementy trójkątne: kubiczne funkcje kształtu 3(x3,y3) 8 9 /3 długości boku 7 6 2(x2,y2) 0 4=LL2(3L-) * 9/2 5 4 węzły na bokach itd 2.5 0.5 0 0 2 3 4 5 6 7 8
Elementy trójkątne: kubiczne funkcje kształtu 3(x3,y3) 8 9 /3 długości boku 7 6 2(x2,y2) 0 5 węzeł środkowy (bąbelkowa funkcja kształtu) 0=LL2L3 * 27.5 0.5 0 0 2 3 4 5 6 7 8
trójkątny element odniesienia v3,(-,) (0,0) v,(-,-) funkcje do mapowania f,f2,f3 2 Mapowanie: v2,(,-) odwracalne, o ile wierzchołki niezależne liniowo (nie leżą na jednej linii) Mapowanie jest ściśle liniowe nie biliniowe jak dla kwadratowego elementu odniesienia.
Mapowanie: z elementu odniesienia do elementu fizycznego 3 2) (x,y), 2 mapowanie liniowe: zachowana równoległość ścian w mapowaniu biliniowym tak nie było 3 2
funkcje mapujące f, f2, f3 to funkcje kształtu najniższego rzędu L, L2, L3 dla trójkąta odniesienia v3,(-,) 2 itd. (0,0) v,(-,-) v2,(,-)
odwracalne, o ile wierzchołki niezależne liniowo (nie leżą na jednej linii) dodajmy: łatwo odwracalne Mamy siatkę trójkątną. Chcemy Po co odwracać? wyprowadzić wartość rozwiązania w przestrzeni fizycznej. Najszybciej zaprogramować: pętle po elementach m pętle po współrzędnych odniesienia potem m m wypisać x/y: wada jest taka, że wydruki x/y będą nierówno rozłożone w przestrzeni fizycznej, problem dla narzędzi graficznych Znacznie lepiej sprawę odwrócić: ) przeglądać punkty w przestrzeni fizycznej 2) identyfikować element 3) wyliczyć które odpowiadają x/y, 4) wyliczyć u
) ustalić x,y 2) zidentyfikować element skąd wiadomo w którym elemencie?
) ustalić x,y 2) zidentyfikować element skąd wiadomo w którym elemencie? tylko we właściwym elemencie nie będzie kąta >
3) w elemencie m wyliczyć dla x,y układ równań liniowych na co pozwala wyliczyć u ( dla biliniowej transformacji (czworokątne elementy) URNL łatwiej już transformować bazę do p. fizycznej i tam liczyć
Całkowanie po trójkątnym elemencie odniesienia, pomysł nr jeden: złożenie D kwadratur Gaussa v3,(-,) 2 (0,0) v,(-,-) v2,(,-) można dwukrotnie zastosować jednowymiarowe całkowanie Gaussa:
przekształcić na całkę od do (w tym przedziale określone punkty Gaussa oraz wagi) złożenie D kwadratur Gaussa nowa zmienna całkowania stara współrzędna w nowych punkty Gaussa modyfikacja wagi
całkowanie po elemencie odniesienia: złożenie D kwadratur Gaussa.0 punkty w których wyliczana funkcja g 0.5 0.0-0.5 -.0 -.0-0.5 0.0 0.5.0 funkcje kształtu nie faworyzują tego narożnika, więcej punktów a waga mniejsza
całkowanie po elemencie odniesienia: złożenie D kwadratur Gaussa.0 testy: g( i, j)= im jn (analitycznie można scałkować) 0.5 użyto 2-punktowych kwadratur Gaussa D w D dokładna dla wielomianów stopnia <= 3 0.0-0.5 -.0 -.0-0.5 0.0 0.5.0 dlaczego nie działa dokładnie dla wielomianów 03/30? bo waga: (-xj)/2 jest wielomianem stopnia jednomiany stopnia m+n<=3: mn numer. dokładny 00 2.00000 2.00000 0-0.66667-0.66667 0-0.66667-0.66667 02 0.66667 0.66667 20 0.66667 0.66667 0.00000 0.00000 03-0.44444-0.40000 30-0.22222-0.40000 procedura szwankuje. 2-0.07407-0.3333 numerycznie 2-0.22222-0.3333 złamana symetria / 2
Ekonomiczne kwadratury Gaussa dla trójkąta odniesienia 0 niezależnych wielomianów 2D stopnia <=3 punkt w całkowaniu Gaussa = 3 stopnie swobody (2-położenie, -waga) Dla dokładnego scałkowania wielomianów stopnia 3: 4 punkty powinny wystarczyć całka z jedynki.0 0.5 całka z 0.0-0.5 -.0 itd. -.0-0.5 0.0 0.5.0 za Pawłem Solinem PDE and FEM Wiley-Interscience 2006
Ekonomiczne kwadratury Gaussa dla trójkąta odniesienia wielomiany stopnia [,x,y] skąd się bierze: (wzory skopiowane z poprzedniej strony) jedna waga -/3 -/3
Ekonomiczne kwadratury Gaussa dla trójkąta odniesienia wielomiany stopnia 2 [,x,y,x2,y2,xy].0 0.5 0.0-0.5 -.0 -.0-0.5 0.0 0.5.0
Ekonomiczne kwadratury Gaussa dla trójkąta odniesienia wielomiany stopnia 4.0 0.5 0.0-0.5 -.0 -.0-0.5 0.0 0.5.0
Ekonomiczne kwadratury Gaussa dla trójkąta odniesienia wielomiany stopnia 5.0 0.5 0.0-0.5 -.0 -.0-0.5 0.0 0.5.0
elementy trójkątne: różniczkowanie w przestrzeni odniesienia Mapowanie:
elementy trójkątne: Jakobian mapowania elementu odniesienia do elementu w przestrzeni fizycznej Jakobian: NIGDY nie zależy od położenia jak w przypadku nieprostokątnych elementów czworokątnych widzimy, że J = + pole - pole 2 mapowanie odwracalne o ile 3 wierzchołki nie są współliniowe
całkowanie macierzy sztywności: Przykłady: dalej prezentacja w Beamerze
Triangulacja Delaunaya (najłatwiej się uogólnia do 3D): Advancing front method a triangulacja Delaunay a w generacji MES ) W advancing front: zakładamy siatkę tła: rozmiary i kierunki rozciągnięcia elementów i dla nich szukamy położeń węzłów 2) W triangulacji D.: zakładamy gdzie są węzły i przestrzeń dzielimy na nieprzekrywające się trójkąty o możliwie regularnych kształtach. triangulacja Delauneya: istota : każdy z utworzonych trójkątnych elementów będzie opisany na kole, które w swym wnętrzu nie zawierać będzie żadnego węzła mądrzej : konstruujemy diagram Woronoja a następnie szukamy dla niego odpowiedniego diagramu dualnego, który podzieli obszar całkowania na trójkąty.
diagram (graf) Woronoja podział miasta między np. urzędy pocztowe Ilustracje: ) własne 2) Zienkiewicz 3) Allen Miu punkty tworzące (wierzchołki w MES) krawędzie Woronoja komórka Woronoja w advancing front: węzły lokowane tak aby elementy miały żądany kształt wierzchołki Woronoja w TD: wybierane położenia węzłów na podstawie naszej wiedzy elementy generowane tak aby miały maksymalnie regularne kształty
Zbiór N punktów p, p2,...,pn na płaszczyźnie euklidesowej (tzw. punkty tworzące) dla każdego z punktów pi definiujemy komórkę Woronoja: W(pi) jako zbiór punktów, które są bliżej (nie dalej) punktu pi niż pozostałych punktów przykłady:
Obszar Woronoja a krystalografia komórka Wignera-Seitza http://reference.iucr.org/dictionary/image:w-s-.gif kryształ: układ atomów o symetrii translacyjnej komórka elementarna powtórzona w nieskończoność każdy obszar zawierający jeden węzeł sieci nadaje się na komórkę elementarną komórka WS jest specjalna, bo jest obszarem Woronoja związanym z danym węzłem strefa Brillouina
Przykłady: punkt tworzący pusty diagram Woronoja diagram W.: linia prosta, brak wierzchołków 3 pkty niewspółiniowe: środek okręgu węzeł Woronoja wspóliniowe punkty tworzące, brak w.
Diagram Woronoja, przykłady cd. aby komórka W. była zamknięta = potrzebne 4 niewspółliniowe punkty krawędzie Woronoja: części wspólne komórek Woronoja część wspólna krawędzi Woronoja: węzły Woronoja Allen Miu
potrzebne, ale sama współliniowość 4 punktów nie wystarcza: tzw. przypadek zdegenerowany
Własności: punkt leży na krawędzi W. komórek k oraz l jeśli jest środkiem pustego okręgu dotykającego punkty tworzące pk oraz pl pusty znaczy nie zawierający wierzchołków w swoim wnętrzu
Własności cd. punkt jest wierzchołkiem Woronoja, jeśli środkiem pustego okręgu, który dotyka 3 lub więcej punktów tworzących
triangulacja Delauneya: graf dualny do Woronoja łączymy krawędziami punkty tworzące sąsiednich obszarów Woronoja, które mają wspólną krawędź. Krawędź diagramu D symetralna krawędzi W. wierzchołki Woronoja: środki pustego okręgu opisanego na węzłach jednego elementu Ziekniewicz
Własności: ) triangulacja Delaunaya produkuje trójkąty jeśli w P nie ma 4 punktów współśrodkowych [nie ma wierzchołków z 4-ma krawędziami Woronoja] 2) Każdy trójkąt Delaunaya odpowiada jednemu wierzchołkowi Woronoja, który jest środkiem okręgu opisanego na trójkącie 3) Wnętrze każdego z tych okręgów nie zawiera żadnego punktu tworzącego własność : używana przy wyborze punktów tworzących, 2- w strukturze danych 3-kryterium Delaunaya (kryterium pustego koła) sprawdzany czy naruszany przez nowe pty, również w prostym algorytmie generacji siatki
prosty algorytm triangulacji Delauneya z ominięciem generacji diagramu Woronoja mało szybki, ale najprostszy do napisania = ten na laboratorium.0 0 brzeg: [-,] na [-,] węzły rozkładam ściśle równomiernie, 0.5 0 wewnątrz obszaru całkowania daje na siatce nieco odkształconej (aby uniknąć więcej niż 3 punktów na jednym okręgu) 0.0 0 [uwaga: gęstszy rozkład węzłów tam gdzie trzeba łatwo uzyskać np.stosując generator liczb losowych o zadanym rozkładzie pstwa] -0.5 0 -.0 0 -.0 0-0.5 0 0.0 0 0.5 0.0 0
) buduję elementy których wierzchołkiem jest punkt niebieski 2) przeglądam okolice tego punktu (niebieski kwadrat).0 0 3) dla każdej uporządkowanej trójki punktów z których jeden niebieski konstruuje trójkąt i okrąg na nim opisany 0.5 0 0.0 0 4) jeśli okrąg jest pusty (wewnątrz nie ma innego węzła) trójkąt staje się nowym elementem -0.5 0 -.0 0 -.0 0-0.5 0 0.0 0 0.5 0.0 0 5) Gdy topologia jest ustalona, można przywrócić siatkę równomierną
x3,y3 okrąg opisany na trójkącie: potrzebny środek: xa,ya, oraz promień R x2,y2 x,y jak sprawdzić, że niewspóliniowe: iloczyn wektorowy r-r2 z r-r3 zero jeśli współliniowe 3 w (-3) (-2)
drugie równanie, jak pierwsze z 3 zamiast 2 ()*(x3-x)-(2)*(x2-x) [wyeliminować xa]
Wynik: obszar całkowania podzielony na trójkątne elementy random.exe
Laboratorium: początkowe położenie węzłów czarne punkty lekko przesuniemy o losowy wektor symulacja adaptacji siatki: funkcja ważności liczona w środku ciężkości elementu razy jego pole ma nie przekraczać /80
Warunki brzegowe 2 0-2 -2 0 H 2 chcemy, żeby funkcje własne znikały na brzegu (nieskończona studnia potencjału) jak? wyrzucić wszystkie funkcje kształtu z bazy z brzegu [pozostałe funkcje kształtu = 0 na węzłach brzegowych] albo (wersja dla leniwych) k-ty wiersz/kolumna zerujemy, potem Hkk=-40 Skk= S Zerowanie: odsprzęgnie węzły brzegowe od całej reszty. dostaniemy wartość własną 40 zdegenerowaną tylu krotnie ile jest węzłów brzegowych również: można po prostu skreślić te kolumny/wiersze z macierzy