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
,