Algorytm określania symetrii cząsteczek
Transkrypt
Algorytm określania symetrii cząsteczek
O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Algorytm określania symetrii czasteczek , Witold Piskorz 21 września 2007 Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , O czym to bedzie: , 1 Po co komu wyznaczanie symetrii? 2 Algorytm wyznaczania symetrii 3 Algorytmy operacji elementarnych Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Wlasności symetrii hamiltonianu: ⇒ zmniejszenie zlożoności obliczeń i wymagań pamieciowych, , ⇒ utrzymanie tożsamościowych (wynikajacych z symetrii) relacji, , ⇒ ulatwienie interpretacji obliczeń. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Jakie informacje bed , a, nam potrzebne? grupa punktowa, wspólrzedne po symetryzacji, , transformacja z orientacji wejściowej (wspólrzedne podane , przez użytkownika) do standardowej (wyznaczonej przez program). Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Ustawienie wstepne , Jeśli liczba atomów == 1, to obliczenia atomowe (Kh ). Wyznacz środek masy i umieść go w OXYZ. Wyznacz glówne osie tensora momentu bezwladności. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Wartości wlasne momentu bezwladności 3 równe: bak , sferyczny, 2 równe: wszystkie niezerowe: bak , symetryczny, przynajmniej jedna zerowa: czasteczka liniowa, , 3 różne wartości wlasne: bak , asymetryczny. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Czasteczka liniowa , Ustaw oś odpowiadajac , a, momentowi == 0 równolegle do osi Z, Jeśli czasteczka i jej odbicie wzgledem plaszczyzny OZ (czyli , , XY) sa, takie same, to D∞h , wpp C∞v . Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , asymetryczny Zorientuj osie momentu bezwladności zgodnie z osiami OXYZ, Sprawdź, które osie sa, osiami dwukrotnymi (moga, być 3, 1, lub brak), Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , asymetryczny (3 osie dwukrotne) Jeśli wszystkie osie X, Y i Z sa, osiami dwukrotnymi, to D2 lub D2h jeśli oprócz osi C2 jest dodatkowo środek inwersji, a C2 ” ” oraz i” generuja, plaszczyzne, symetrii prostopadla, do OZ, to ” jest D2h , wpp jest D2 . Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , asymetryczny (1 oś dwukrotna) Jeśli jest 1 oś dwukrotna (pokrywajaca sie, z OX, OY lub OZ), to , ustaw ja, || do OZ. Może być C2h , C2v lub C2 jeśli jest plaszczyzna symetrii, to C2h wpp, jeśli jest plaszczyzna || osi Z, to grupa C2v , wpp. grupa C2 . Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , asymetryczny (brak osi dwukrotnych) Jeśli nie ma osi dwukrotnych, to Cs , Ci lub C1 . jeśli jest plaszczyzna symetrii, to jest Cs , a plaszczyzna symetrii ma być plaszczyzna, XY. jeśli jest środek inwersji, to grupa Ci , wpp. grupa C1 . Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , sferyczny Trójkrotna degeneracja ⇔ bak , sferyczny. Możliwe sa, grupy: kubiczne T, Td , Th , O, Oh , I lub Ih , oraz D2d , D2h lub D2 . Może sie, zdarzyć, że bak , jest sferyczny przypadkowo. Jeśli sa, 3 prostopadle 2-krotne osie, to grupy: D2d , D2h lub D2 , wpp przypadek najtrudniejszy (omówiony przy okazji baka , symetrycznego). Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , sferyczny: Ustalenie orientacji standardowej 1 Znajdź oś glówna,, 2 ustaw czasteczk e, tak, aby oś glówna byla || OZ, , 3 znajdź glówna, plaszczyzne, , czyli plaszczyzne, symetrii zawierajac , a, oś glówna, , 4 obróć czasteczk e, , , aby glówna plaszczyzna byla plaszczyzna, XZ (czyli OY), Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , sferyczny: Pozostale elementy symetrii po pierwsze znajdź osie C2 , znajdź plaszczyzny (korzystajac , z wygenerowanych par) sprawdź, czy plaszczyzna zawiera OXYZ (tanie) jeśli tak, to sprawdź, czy jest to plaszczyzna symetrii teraz sprawdź osie C6 , . . . , C3 , S6 (= C−6 ), . . . , S2 (= C−2 = i), Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , symetryczny 1 Dwie wartości wlasne momentu ladunku sa, równe i różne od trzeciej (bak , symetryczny): może być dowolna grupa aksjalna, czyli każda oprócz kubicznych. 2 Z wyjatkiem rzadkich przypadków, jedyna, osia, jest oś , o krotności >= 3 (pokrywajaca sie, z niezdegenerowana, osia, , tensora momentu bezwladności). Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , symetryczny: orientacja osi glównej 1 2 Ustaw niezdegenerowana, oś || OZ (glówna oś), określ jej krotność, czyli dla n ∈ (8, 7, 6, 5, 4, 3, 2) rób: jeśli geometria obrócona o 2π/n jest równoważna danej, to dopisz oś Cn do zbioru osi, jeśli geometria obrócona o 2π/2n i odbita w plaszczyźnie ⊥ do osi jest równoważna danej, to dopisz oś S2n do zbioru osi, jeśli geometria obrócona o 2π/n i odbita w plaszczyźnie ⊥ do osi jest równoważna danej, to dopisz oś Sn do zbioru osi. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , symetryczny: orientacja pozostalych elementów symetrii 1 2 Poszukaj ewentualnej osi C2 ⊥OZ (bierzemy pierwsza, znaleziona). , Jeśli jest, to zorientuj ja, || osi OX. Orientacja standardowa jest osiagni eta. , , pozostaje znaleźć pozostale osie C2 wraz z S4 oraz plaszczyzny (σv lub/i σh ) i środek inwersji. 3 wpp, poszukaj σv . Jeśli istnieje, to ustaw ja, w plaszczyźnie XZ. wpp, poszukaj σh . Jeśli istnieje, to ustaw ja, w plaszczyźnie XY. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Bak , symetryczny: określanie pozostalych elementów symetrii 1 Teraz czasteczka znajduje sie, w orientacji standardowej , (zarówno przy obecności jak i nieobecności osi C2 ). Jeszcze raz wyznacz osie C2 i plaszczyzny. 2 Jeśli czasteczka jest plaska, to dodaj plaszczyzne, symetrii do , zbioru, 3 Sprawdź istnienie środka symetrii. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Wyznaczenie grupy punktowej i symetryzacja 1 Majac sie, tablice, , wyznaczone elementy symetrii przeglada , zawierajac a elementy symetrii każdej grupy , , jeśli któraś grupa pasuje, to BINGO! wpp, znajdź grupe, elementów spośród , która ma najwiecej , znalezionych; wypisz ostrzeżenie, gdyż możliwe, że po niewielkiej zmianie kryterium ε zostanie znaleziona wyższa grupa symetrii. Zmiana kryterium należy do użytkownika. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Symetryzacja 1 Stwórz liste, flag odpowiadajac dla , a, liście atomów, a nastepnie , każdego atomu rób: Sprawdź, czy po zastosowaniu kolejno wszystkich znalezionych elementów symetrii któryś inny atom jest do niego równoważny. jeśli tak, to ustaw flage, odpowiadajac , a, temu równoważnemu atomowi. 2 Teraz atomy, dla których flaga nie zostala ustawiona, sa, nierównoważne przez symetrie. , Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Symetryzacja 1 2 Weź liste, nierównoważnych atomów oraz liste, dokladnych elementów symetrii. Dla każdego atomu rób: dla każdego elementu symetrii zastosuj ten element do wspólrzednych atomu. , jeśli nie ma atomu o takich (nowych) wspólrzednych, to dodaj , ten atom (wspólrzedne). , 3 Teraz lista zawiera symetryzowane wspólrzedne atomów. , Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Ustawienie wstepne , Klasyfikacja Czasteczka liniowa , Bak asymetryczny , Bak sferyczny , Bak symetryczny , Wyznaczenie grupy punktowej Czynności końcowe Ponieważ każda operacja symetrii jest rejestrowana, to można latwo wyznaczyć macierz transformacji z orientacji wejściowej do orientacji standardowej. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Algorytm znajdywania osi C2 i plaszczyzn symetrii Algorytm znajdywania osi Cn i Sn (n > 2) Algorytm obrotu wzgledem dowolnej osi o dowolny kat , , Algorytm znajdywania osi C2 i plaszczyzn symetrii 1 Dla i = 1, . . . liczba atomów rób: Dla j = i + 1, . . . liczba atomów rób: weź atom i−ty i j−ty. Znajdź ~v środek odcinka ij. Jeśli odleglość ~v od OXYZ (czyli |~v |) jest > ε, to znormalizuj ~v . wpp ~v = ~i, znormalizuj ~v . obróć wspólrzedne wokól ~v o kat sie, , , π. Jeśli wspólrzedne , pokrywaja,, to dodaj oś C2 do zbioru, obróć wspólrzedne wokól ~v o kat , , π/2 oraz odbij w plaszczyźnie ⊥ do ~v . Jeśli wspólrzedne sie, pokrywaja,, to , dodaj oś S4 do zbioru. Plaszczyzny P: dla ~n ⊥ P, ~v ∈ P równanie plaszczyzny P = (n1 , n2 , n3 ): D = −~n · ~v . |D| < ε ⇔ P 3 OXYZ. Jeśli plaszczyzna jest plaszczyzna, symetrii, to dopisz ja, do puli. Dla k = j + 1, . . . liczba atomów weź atom i, j, k i zastosuj algorytm znajdywania osi Cn i Sn (n > 2) (nastepna plansza). , 2 Sprawdź wystepowanie środka symetrii. , Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Algorytm znajdywania osi C2 i plaszczyzn symetrii Algorytm znajdywania osi Cn i Sn (n > 2) Algorytm obrotu wzgledem dowolnej osi o dowolny kat , , Algorytm znajdywania osi Cn i Sn (n > 2) 1 Sprawdź, czy trójka jest wpólliniowa. Jeśli tak, to weź nastepn , a, , wpp: oblicz wspólczynniki plaszczyzny zawierajacej te, trójke, , , a stad , wektor normalny, przechodzacy przez OXYZ. Sprawdź, czy to , jest oś Cn lub Sn . Jeśli znaleziono oś, to dopisz ja, do zbioru. Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Algorytm znajdywania osi C2 i plaszczyzn symetrii Algorytm znajdywania osi Cn i Sn (n > 2) Algorytm obrotu wzgledem dowolnej osi o dowolny kat , , Algorytm obrotu wzgledem dowolnej osi o dowolny kat , , 1 unormuj oś 2 oblicz kwaternion: cos(k sin(kat/2) · oś[1], sin(kat/2) · oś[2], sin(kat/2) · , , , , at/2), oś[3] 3 znormalizuj kwaternion 4 W = kwaternion[0]; X = kwaternion[1]; Y = kwaternion[2]; Z = kwaternion[3] macierz obrotu: mat = 1 − 2(Y 2 + Z 2 ) 2(XY − ZW ) 2(XZ + YW ) 2(XY + ZW ) 1 − 2(X 2 + Z 2 ) 2(YZ − XW ) 2 2 2(XZ − YW ) 2(YZ + XW ) 1 − 2(X + Y ) Witold Piskorz Algorytm określania symetrii czasteczek , O czym to bedzie: , Po co komu wyznaczanie symetrii? Algorytm wyznaczania symetrii Algorytmy operacji elementarnych Podziekowania , Dziekuj e, za uwage. , , .. . . . i zapraszam do dyskusji. Witold Piskorz Algorytm określania symetrii czasteczek ,