Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.6 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Microsoft Windows 0 476 546529 455193 2026-06-12T14:04:22Z Niojs123 37938 /* Historia Windows */ 546529 wikitext text/x-wiki {{wikipedia|Microsoft Windows}} {{status|-75%|Systemy operacyjne}} <small>< [[Microsoft Windows/Okładka|Okładka]]</small> ==Wstęp== # [[Microsoft Windows/Wstęp|Wstęp]] ## [[Microsoft Windows/Wstęp#O Windows|O Windows]] ==Historia Windows== {{wikipedia|Historia systemów Microsoft Windows|Historia Windows}} # [[Microsoft Windows/Windows|DOS/Windows 9x]] ## [[Microsoft Windows/Windows#Windows 1.0|Windows 1.0]] ## [[Microsoft Windows/Windows#Windows 2.0|Windows 2.0]] ## [[Microsoft Windows/Windows#Windows 3.0|Windows 3.0]] # [[Microsoft Windows/Windows NT|Windows NT]] ## [[Microsoft Windows/Windows NT#Windows 2000|Windows 2000]] ## [[Microsoft Windows/Windows NT#Windows Vista|Windows Vista]] ## [[Microsoft Windows/Windows NT#Windows 7|Windows 7]] ## [[Microsoft Windows/Windows NT#Windows 8|Windows 8]] ## [[Microsoft Windows/Windows NT#Windows 10|Windows 10]] ## [[Microsoft Windows/Windows NT#Windows 11|Windows 11]] ==Pierwsze kroki== ## [[Microsoft Windows/Rejestr|Rejestr]] ## [[Microsoft Windows/Usługi|Usługi]] ==Dodatki== # [[Microsoft Windows/Mistrzowskie kombinacje|Dodatek B: Mistrzowskie kombinacje]] <!-- I. Wstęp A. Co to jest Microsoft Windows i dlaczego go używać? B. Przegląd różnych wersji systemu Windows C. Podstawowa terminologia i pojęcia II. Pierwsze kroki z systemem Windows A. Instalowanie systemu Windows B. Poruszanie się po pulpicie Windows C. Korzystanie z menu Start i paska zadań D. Dostosowywanie ustawień systemu Windows III. Zarządzanie plikami A. Zrozumienie systemów plików i ścieżek plików B. Tworzenie, zmienianie nazw i usuwanie plików i folderów C. Kopiowanie, przenoszenie i organizowanie plików D. Wyszukiwanie plików i folderów IV. Aplikacje i oprogramowanie A. Instalowanie i aktualizowanie oprogramowania B. Uruchamianie i zamykanie aplikacji C. Praca z oknami i zakładkami D. Zarządzanie i zapisywanie plików w aplikacjach V. Personalizacja i dostępność A. Dostosowywanie ustawień pulpitu i wyświetlania B. Zmiana tapety i motywu C. Konfigurowanie opcji ułatwień dostępu VI. Internet i łączność A. Łączenie z Wi-Fi i Ethernetem B. Przeglądanie sieci za pomocą Microsoft Edge C. E-mail i komunikacja D. Bezpieczeństwo i prywatność online VII. Konserwacja i rozwiązywanie problemów A. Podstawowa konserwacja i optymalizacja systemu B. Rozwiązywanie typowych problemów C. Korzystanie z Panelu sterowania systemu Windows VIII. Wniosek A. Podsumowanie kluczowych funkcji i zalet systemu Windows B. Końcowe przemyślenia i zalecenia C. Dalsza lektura i eksploracja --> 0ll7rd4ww7qzw8cq0yvzpj730gq4zqo 546531 546529 2026-06-12T14:07:46Z Niojs123 37938 /* Historia Windows */ 546531 wikitext text/x-wiki {{wikipedia|Microsoft Windows}} {{status|-75%|Systemy operacyjne}} <small>< [[Microsoft Windows/Okładka|Okładka]]</small> ==Wstęp== # [[Microsoft Windows/Wstęp|Wstęp]] ## [[Microsoft Windows/Wstęp#O Windows|O Windows]] ==Historia Windows== {{wikipedia|Historia systemów Microsoft Windows|Historia Windows}} # [[Microsoft Windows/Windows|DOS/Windows 9x]] ## [[Microsoft Windows/Windows#Windows 1.0|Windows 1.0]] ## [[Microsoft Windows/Windows#Windows 2.0|Windows 2.0]] ## [[Microsoft Windows/Windows#Windows 3.0|Windows 3.0]] # [[Microsoft Windows/Windows NT|Windows NT]] ## [[Microsoft Windows/Windows NT#Windows NT 3.1+|Windows NT 3.1+]] ## [[Microsoft Windows/Windows NT#Windows 2000|Windows 2000]] ## [[Microsoft Windows/Windows NT#Windows Vista|Windows Vista]] ## [[Microsoft Windows/Windows NT#Windows 7|Windows 7]] ## [[Microsoft Windows/Windows NT#Windows 8|Windows 8]] ## [[Microsoft Windows/Windows NT#Windows 10|Windows 10]] ## [[Microsoft Windows/Windows NT#Windows 11|Windows 11]] ==Pierwsze kroki== ## [[Microsoft Windows/Rejestr|Rejestr]] ## [[Microsoft Windows/Usługi|Usługi]] ==Dodatki== # [[Microsoft Windows/Mistrzowskie kombinacje|Dodatek B: Mistrzowskie kombinacje]] <!-- I. Wstęp A. Co to jest Microsoft Windows i dlaczego go używać? B. Przegląd różnych wersji systemu Windows C. Podstawowa terminologia i pojęcia II. Pierwsze kroki z systemem Windows A. Instalowanie systemu Windows B. Poruszanie się po pulpicie Windows C. Korzystanie z menu Start i paska zadań D. Dostosowywanie ustawień systemu Windows III. Zarządzanie plikami A. Zrozumienie systemów plików i ścieżek plików B. Tworzenie, zmienianie nazw i usuwanie plików i folderów C. Kopiowanie, przenoszenie i organizowanie plików D. Wyszukiwanie plików i folderów IV. Aplikacje i oprogramowanie A. Instalowanie i aktualizowanie oprogramowania B. Uruchamianie i zamykanie aplikacji C. Praca z oknami i zakładkami D. Zarządzanie i zapisywanie plików w aplikacjach V. Personalizacja i dostępność A. Dostosowywanie ustawień pulpitu i wyświetlania B. Zmiana tapety i motywu C. Konfigurowanie opcji ułatwień dostępu VI. Internet i łączność A. Łączenie z Wi-Fi i Ethernetem B. Przeglądanie sieci za pomocą Microsoft Edge C. E-mail i komunikacja D. Bezpieczeństwo i prywatność online VII. Konserwacja i rozwiązywanie problemów A. Podstawowa konserwacja i optymalizacja systemu B. Rozwiązywanie typowych problemów C. Korzystanie z Panelu sterowania systemu Windows VIII. Wniosek A. Podsumowanie kluczowych funkcji i zalet systemu Windows B. Końcowe przemyślenia i zalecenia C. Dalsza lektura i eksploracja --> rtngo969jydgd10h8ndxho37o18iesg 546534 546531 2026-06-12T14:22:12Z Niojs123 37938 /* Historia Windows */ 546534 wikitext text/x-wiki {{wikipedia|Microsoft Windows}} {{status|-75%|Systemy operacyjne}} <small>< [[Microsoft Windows/Okładka|Okładka]]</small> ==Wstęp== # [[Microsoft Windows/Wstęp|Wstęp]] ## [[Microsoft Windows/Wstęp#O Windows|O Windows]] ==Historia Windows== {{wikipedia|Historia systemów Microsoft Windows|Historia Windows}} # [[Microsoft Windows/Windows|DOS/Windows 9x]] ## [[Microsoft Windows/Windows#Windows 1.0|Windows 1.0]] ## [[Microsoft Windows/Windows#Windows 2.0|Windows 2.0]] ## [[Microsoft Windows/Windows#Windows 3.0|Windows 3.0]] # [[Microsoft Windows/Windows NT|Windows NT]] ## [[Microsoft Windows/Windows NT#Windows NT 3.1+|Windows NT 3.1+]] ## [[Microsoft Windows/Windows NT#Windows 2000|Windows 2000]] ## [[Microsoft Windows/Windows NT#Windows XP|Windows XP (pierwsza 32-bitowa wersja.)]] ## [[Microsoft Windows/Windows NT#Windows Fundamentals for Legacy PCs|Windows Fundamentals for Legacy PCs]] ## [[Microsoft Windows/Windows NT#Windows Serwer 2003|Windows Serwer 2003]] ## [[Microsoft Windows/Windows NT#Windows Home Serwer Home Serwer]] ## [[Microsoft Windows/Windows NT#Windows Vista|Windows Vista]] ## [[Microsoft Windows/Windows NT#Windows Serwer 2008|Windows Serwer 2008]] ## [[Microsoft Windows/Windows NT#Windows 7|Windows 7]] ## [[Microsoft Windows/Windows NT#Windows Home Serwer 2011|Windows Home Serwer 2011]] ## [[Microsoft Windows/Windows NT#Windows 8|Windows 8]] ## [[Microsoft Windows/Windows NT#Windows Serwer 2012|Windows Serwer 2012]] ## [[Microsoft Windows/Windows NT#Windows 10|Windows 10]] ## [[Microsoft Windows/Windows NT#Windows Serwer 2016|Windows Serwer 2016]] ## [[Microsoft Windows/Windows NT#Windows Serwer 2019|Windows Serwer 2019(Wydany w 2018 roku)]] ## [[Microsoft Windows/Windows NT#Windows 11|Windows 11]] ==Pierwsze kroki== ## [[Microsoft Windows/Rejestr|Rejestr]] ## [[Microsoft Windows/Usługi|Usługi]] ==Dodatki== # [[Microsoft Windows/Mistrzowskie kombinacje|Dodatek B: Mistrzowskie kombinacje]] <!-- I. Wstęp A. Co to jest Microsoft Windows i dlaczego go używać? B. Przegląd różnych wersji systemu Windows C. Podstawowa terminologia i pojęcia II. Pierwsze kroki z systemem Windows A. Instalowanie systemu Windows B. Poruszanie się po pulpicie Windows C. Korzystanie z menu Start i paska zadań D. Dostosowywanie ustawień systemu Windows III. Zarządzanie plikami A. Zrozumienie systemów plików i ścieżek plików B. Tworzenie, zmienianie nazw i usuwanie plików i folderów C. Kopiowanie, przenoszenie i organizowanie plików D. Wyszukiwanie plików i folderów IV. Aplikacje i oprogramowanie A. Instalowanie i aktualizowanie oprogramowania B. Uruchamianie i zamykanie aplikacji C. Praca z oknami i zakładkami D. Zarządzanie i zapisywanie plików w aplikacjach V. Personalizacja i dostępność A. Dostosowywanie ustawień pulpitu i wyświetlania B. Zmiana tapety i motywu C. Konfigurowanie opcji ułatwień dostępu VI. Internet i łączność A. Łączenie z Wi-Fi i Ethernetem B. Przeglądanie sieci za pomocą Microsoft Edge C. E-mail i komunikacja D. Bezpieczeństwo i prywatność online VII. Konserwacja i rozwiązywanie problemów A. Podstawowa konserwacja i optymalizacja systemu B. Rozwiązywanie typowych problemów C. Korzystanie z Panelu sterowania systemu Windows VIII. Wniosek A. Podsumowanie kluczowych funkcji i zalet systemu Windows B. Końcowe przemyślenia i zalecenia C. Dalsza lektura i eksploracja --> ri8s1btjx89qvjy03jhekc8npz4qae1 Microsoft Office 2007/Instalacja 0 14017 546580 540274 2026-06-12T21:55:57Z Igor123121 34732 drobne techniczne 546580 wikitext text/x-wiki == Instalacja == Skoro już nabyliśmy lub pobraliśmy z Internetu wersję trial pakietu Office 2007, możemy rozpocząć instalację. {{Porada|Jeżeli mamy na dysku wcześniejszą wersję pakietu Office, możemy ją zastąpić nowszą (ale stracimy w ten sposób dostęp do starszych programów) lub zainstalujemy pakiet osobno (wtedy będziemy mieli dostęp zarówno do starszej, jak i nowszej wersji).}} {{Uwaga|Pakiet Office może zajmować około 2 GB miejsca na dysku. Upewnijmy się, czy starczy nam miejsca na instalację.}} Wkładamy płytę do napędu CD lub klikamy dwukrotnie plik instalacyjny. Pojawi się okno instalatora. Wpisujemy klucz produktu (można też go pominąć, ale zalecamy wpisanie go teraz) i ewentualnie klucz referencyjny. W następnym oknie czytamy licencję i akceptujemy ją, zaznaczając pole ''Akceptuję warunki tej umowy'' i klikamy na '''Kontynuuj'''. W kolejnym oknie wybieramy rodzaj instalacji: ''Zainstaluj teraz'' lub ''Dostosuj''. Polecam wybranie tej drugiej opcji &ndash; pozwoli nam kontrolować, co instalujemy. W zależności od wyboru, wciskamy wybrany przycisk. Jeżeli wybraliśmy opcję ''Zainstaluj teraz'', pojawi się od razu proces instalacji. Jeżeli wybraliśmy natomiast ''Dostosuj'', pojawi się okno z czterema zakładkami do wyboru. Przyjrzyjmy się pierwszej (''Uaktualnij''). Jeżeli mamy starszą wersję, to tutaj możemy zdecydować, czy chcemy ją nadpisać (opcja ''Usuń wszystkie poprzednie wersje''), pozostawić (''Zachowaj wszystkie poprzednie wersje'') lub usunąć tylko pojedyncze aplikacje. Po dokonaniu wyboru, przechodzimy na zakładkę ''Sposób instalacji''. W tej zakładce wybieramy, jaką część pakietu chcemy zainstalować (autor poleca uruchomienie wszystkiego z dysku komputera &ndash; nie będziemy musieli później wkładać płyty). Przejdźmy teraz do zakładki ''Lokalizacja''. Na tej zakładce wybieramy miejsce instalacji. Na ostatniej zakładce ''Informacje o użytkowniku'' wpisujemy nasze dane osobowe &ndash; przydatne będą na przykład podczas pisania listów, gdy program Word sam wstawi odpowiednie dane. Pole ''Organizacja'' możemy pozostawić puste, gdy nie pracujemy w firmie. Wybieramy opcję ''Zainstaluj teraz''. Proces kopiowania na dysk potrwa kilkanaście minut. == Aktywacja == Przy pierwszym uruchomieniu dowolnego programu z pakietu pojawi się monit z prośbą o aktywację. Ponieważ potrwa to tylko chwilę, polecamy to zrobić teraz. {{Porada|Aby móc aktywować pakiet w wersji próbnej, musimy mieć połączenie z Internetem. Wersję pełną można aktywować także przez telefon.}} W pierwszym oknie kreatora klikamy na ''Dalej''. Następnie wybieramy opcję aktywacji przez internet i klikamy na ''Dalej''. Po chwili pojawi się informacja o aktywacji i &ndash; jeżeli używamy wersji próbnej &ndash; do kiedy będziemy mogli używać pakiet. Zamykamy okno kreatora, klikając na ''Zamknij''. Teraz możesz już przejść do części głównej tej książki. Bez aktywacji można tylko 24 razy korzystać z programu. Po limicie możliwe jest obsługiwanie tylko funkcji otwórz, zapisz i drukuj. <noinclude> {{Nawigacja|Microsoft Office 2007| [[../Porównanie pakietów/]]| [[../Jak zdobyć wersję trial/|Jak zdobyć wersję trial?]]| }}</noinclude> pcos2iqqgytbtpgazwpyckl4os6du4s Ogólna teoria względności/Fizyka w słabozakrzywionych czasoprzestrzeniach 0 16249 546542 470271 2026-06-12T16:07:19Z Persino 2851 546542 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> Tutaj będziemy rozpatrywać czy równania grawitacji Einsteina (Ogólnej teorii względności) przechodzą w równania Newtona. Jaki jest warunek zachowawczy dla pól grawitacyjnych, oraz czy wzór na energię całkowitą w przybliżeniu małych pól i małych pędów, czy przechodzi na energię cząstki w polu grawitacyjnym znanego z mechaniki klasycznej. === Fizyka w słabych stacjonarnych polach grawitacyjnych === Teraz będziemy rozpatrywać metrykę w słabo zakrzywionych czasoprzestrzeniach, które wcześniej wyznaczyliśmy dla słabych pól grawitacyjnych Newtonowskich, którego interwał czasoprzestrzenny dla słabego pola grawitacyjnego jest już wyznaczony i jest w postaci {{LinkWzór|5.65|Słabe_pola_grawitacyjne}}, nasz rozważany interwał jest zależny o potencjału skalarnego pola Newtowskiego. Stosując definicję czterowektora prędkości, którą w ogólnej teorii względności tak samo zapisujemy jak szczególnej teorii względności, tylko że w tym pierwszym przypadku interwał czasoprzestrzenny jest ściśle określany, i zapisujemy go wedle sposobu {{LinkWzór|1.7|Wprowadzenie do ogólnej teorii względności}}. Różniczka interwału czasoprzestrzennego występującego w pochodnej przy definicji czterowektora prędkości jest zdefiniowany tak by kwadrat był zdefiniowany wedle sposobu {{LinkWzór|1.3|Wprowadzenie do ogólnej teorii względności}}, wtedy możemy napisać część przestrzenna czteroprędkości przy pomocy pochodnej względem czasu: {{CentrujWzór|<MATH>u^{i}={{dx^{i}}\over{dt}}{{dt}\over{ds}}</MATH>|6.1}} Naszą metrykę {{LinkWzór|5.65|Słabe_pola_grawitacyjne}} przedstawiamy wyłączając przed pierwiastek wyrażenie cdt w naszej różniczce interwału czasoprzestrzennego, którego czas t jest liczony w sekundach: {{CentrujWzór|<MATH>ds=cdt\sqrt{\left(1+{{2\varphi}\over{c^2}}\right)-\left(1-{{2\varphi}\over{c^2}}\right){{v^2}\over{c^2}}}</MATH>|6.2}} Pochodna czterowektora położenia dla współrzędnych przestrzennych w naszej rozważanej metryce jest: {{CentrujWzór|<MATH>u^{i}=v^i{{dt}\over{cdt\sqrt{\left(1+{{2\varphi}\over{c^2}}\right)-\left(1-{{2\varphi}\over{c^2}}\right){{v^2}\over{c^2}}}}}={{v^i}\over{c}}\left(\left(1+{{2\varphi}\over{c^2}}\right)- \left(1-{{2\varphi}\over{c^2}}\right){{v^2}\over{c^2}}\right)^{-{{1}\over{2}}}</MATH>|6.3}} Części przestrzenna czterowektora prędkości są równa zero, bo zachodzi v<<c dla prędkości o wiele mniejszych od prędkości światła, wtedy wyrażenie w nawiasie w {{LinkWzór|6.3}} dla słabych pól grawitacyjnych jest równe zero. Cześć czasowa czterowektora prędkości przybliżeniu jest równa jeden: {{CentrujWzór|<MATH>u^0={{dx^0}\over{ds}}={{dx^0}\over{dt}}{{dt}\over{ds}}\simeq{{cdt}\over{dt}}{{dt}\over{cdt}}=1</MATH>{{Tekst|,a także }}<MATH>u^i\simeq 0</MATH>{{Tekst|, bo }}<MATH>{{v}\over{c}}<<1</MATH>|6.4}} co to wynika z wyrażenia na u{{Sup|i}} opisanej powyżej dla słabych pól grawitacyjnych, ale też musi być spełnione: {{Formuła|<MATH>{{\varphi}\over{c^2}}<<1</MATH>}}, aby prędkość zerowa czerowektora prędkości była równa w przybliżeniu jeden. Z własności prędkości w czterowektorze, można udowodnić, że można pominąć prędkości dla &mu;&ne; 0, rozważyć tylko będziemy przypadek &mu;=0, dla którego u{{Sup|0}}&asymp;1, stąd drugi wyraz w równaniu na linie geodezyjne na ruch po stycznej można przedstawić: {{CentrujWzór|<MATh>{\Gamma^{\mu}}_{\alpha\beta}u^{\alpha}u^{\beta}={\Gamma^{\mu}}_{00}u^0u^0= {\Gamma^{\mu}}_{00}</MATH>|6.5}} Na podstawie {{LinkWzór|6.5}} równanie ruchu cząstki po stycznej wedle równania na linie geodezyjne {{LinkWzór|1.75|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}} jest wyrażone: {{CentrujWzór|<MATH>{{du^{\mu}}\over{ds}}+{\Gamma^{\mu}}_{\alpha\beta}u^{\alpha}u^{\beta}\Rightarrow {{du^{\mu}}\over{ds}}+{\Gamma^{\mu}}_{00}=0</MATH>|6.6}} To co nam pozostało do policzenia w równaniu {{LinkWzór|6.6}} jest policzenie elementów tensora Christoffela, tzn. elementów &Gamma;{{Sup|&mu;}}{{Sub|00}}. Tutaj policzymy najpierw &Gamma;{{Sup|0}}{{Sub|00}}, i dalej elementy tensora &Gamma;{{Sup|i}}{{Sub|00}}. Policzmy tensor Christoffela dla &mu;=0, a więc: {{CentrujWzór|<MATH>{\Gamma^0}_{00}={{1}\over{2}}g^{00}\left(g_{00,0}+g_{00,0}-g_{00,0}\right)={{1}\over{2}}g^{00}g_{00,0}</MATH>|6.7}} Według naszej metryki {{LinkWzór|5.63|Słabe_pola_grawitacyjne}}, mamy składowe tylko diagonalne tensora metrycznego dla omawianego słabego pola grawitacyjnego Newtonowskiego, dzięki którego elementy tensora metrycznego tworzą interwał czasoprzestrzenny opisującego słabe pole Newtonowskie {{LinkWzór|5.65|Słabe_pola_grawitacyjne}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>g_{00}=1+{{2\varphi}\over{c^2}}\;</MaTH>|6.8}}|2={{CentrujWzór|<MATH>g_{ij}=\left(-1+{{2\varphi}\over{c^2}}\right)\delta_{ij}</MATH>|6.9}}}} Ogólnie mówiąc pochodna tensora metrycznego względem x{{Sup|&mu;}} dla metryki newtonowskiej obowiązującego w ogólnej teorii względności dla słabych pól grawitacyjnych, dla wszystkich jego składowych, piszemy: {{CentrujWzór|<MATH>g_{\alpha\beta,\mu}={{2}\over{c^2}}\varphi_{,\mu}\delta_{\alpha\beta}</MATH>|6.10}} Elementy odwrotne tensora metrycznego liczymy podobnie jak w punkcie {{LinkWzór|6.8}} i {{LinkWzór|6.9}}, które potrzebne będą nam do policzenia elementów tensora Christoffela wraz z elementami tensora prostego metrycznego: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>g^{00}=\left(1+{{2\varphi}\over{c^2}}\right)^{-1}\;</MATH>|6.11}}|2={{CentrujWzór|<MATH>g^{ij}=\left(-1+{{2\varphi}\over{c^2}}\right)^{-1}\delta^{ij}</MATH>|6.12}}}} Tensor Christoffela dla wszystkich wskaźników zerowych w tym tensorze {{LinkWzór|6.7}} po wykorzystaniu policzonego elementu tensora metrycznego odwrotnego też o zerowych wskaźnikach {{LinkWzór|6.11}}, a także na podstawie policzonego elementu tensora prostego metrycznego zapisane w punkcie {{LinkWzór|6.8}}, możemy napisać: {{CentrujWzór|<MATH>{\Gamma^0}_{00}={{1}\over{2}}\left(1+{{2\varphi}\over{c^2}}\right)^{-1}{{2}\over{c^2}}\varphi_{,0}= {{\varphi_{,0}}\over{c^2+2\varphi}}= {{\varphi_{,0}}\over{c^2}}= {{\partial\varphi}\over{\partial x_0}}{{1}\over{c^2}}= {{1}\over{c^3}}{{\partial \varphi}\over{\partial dt}}={{1}\over{c^3}}{{\partial \varphi}\over{\partial dt}}</MATH>|6.13}} Dla małych prędkości względem prędkości światła, wykorzystując wzór {{LinkWzór|6.6}} w czasoprzestrzeni prawie płaskiej czasoprzestrzeni Minkowskiego dla wskaźnika &mu; zerowego, można napisać tożsamość na linie geodezyjne: {{CentrujWzór|<MATH>{{du^0}\over{ds^2}}+{\Gamma^0}_{00}=0</MATH>|6.14}} Mnożymy równanie {{LinkWzór|6.14}} obustronnie przez m{{Sub|0}}c i wykorzystując definicję czterowektora pędu {{LinkWzór|1.8|Wprowadzenie do ogólnej teorii względności}} poprzez czterowektor prędkości, otrzymujemy: {{CentrujWzór|<MATH>{{dp^0}\over{ds^2}}=-{\Gamma^0}_{00}m_0 c</MATH>|6.15}} Następnie wyrażamy czteropęd cząstki, o zerowej współrzędnej kontrawariantnej względem jej energii, i korzystając że tensor kowariantny jest równy tensorowi kontrwariantnemu, bo zachodzi dla słabych pól grawitacyjnych (pól Newtonowskich): {{CentrujWzór|<MATH>p^0=p_0g^{00}={{p_0}\over{1+{{2\varphi}\over{c^2}}}}\simeq p_0\left(1-{{2\varphi}\over{c^2}}\right)\simeq p_0={{E}\over{c}}\Rightarrow p^0\simeq {{E}\over{c}}</MATH>|6.16}} Mając definicję tensora pędu o zerowej współrzędnej kontrawariantnej czterowektora pędu poprzez energii cząstki {{LinkWzór|6.16}}, która ta tożsamość zachodzi w przybliżeniu, podstawiamy go do równania {{LinkWzór|6.15}} i mnożąc jednocześnie go przez prędkość światła "c", otrzymujemy: {{CentrujWzór|<MATH>{{dE}\over{ds}}=-{\Gamma^0}_{00}m_0 c^2</MATH>|6.17}} Dla płaskiej przestrzeni dla prędkości nierelatywistycznych, zachodzi ds=cdt w przybliżeniu na podstawie definicji różniczki interwału czasoprzestrzennego {{LinkWzór|6.2}}: {{CentrujWzór|<MATH>{{dE}\over{dt}}=-{\Gamma^0}_{00}m_0 c^3</MATH>|6.18}} Podstawiając w równaniu {{LinkWzór|6.18}} za element tensora Christoffela {{LinkWzór|6.13}} i w rezultacie otrzymujemy: {{CentrujWzór|<MATH>{{dE}\over{dt}}=-{{1}\over{c^3}}{{\partial \varphi}\over{\partial dt}} m_0 c^3</MATH>|6.19}} Dokonując pewnych przekształceń w równaniu {{LinkWzór|6.19}} uniezależniamy się od prędkości światła w prawej stronie wspomnianego wcześniej równania, czyli po pewnych skróceniach dostajemy tożsamość: {{CentrujWzór|<MATH>{{dE}\over{dt}}=-m_0{{\partial\varphi}\over{\partial t}}</MATH>|6.20}} Powyższe równanie mówi, o ile pole grawitacyjne (wielkość skalarnego potencjału słabego pola grawitacyjnego) nie zależy od czasu, to energia całkowita (mechaniczna) cząstki jest zachowana. Następnym naszym krokiem jest policzenie następnych elementów o wskaźniku dolnych niezerowych, która jest jednym ze składowych tensora Chrostoffela, tzn. dla 0&ne;&mu;=i, przy czym należy pamiętać, że metryka dla słabego pola grawitacyjnego jest taka, w której występują tylko diagonalne elementy tensora metrycznego, a więc: {{CentrujWzór|<MATH>{\Gamma^i}_{00}={{1}\over{2}}g^{ij}(g_{j0,0}+g_{0j,0}-g_{00,j})=-{{1}\over{2}}g^{ij}g_{00,j} \Rightarrow{\Gamma^i}_{00}=-{{1}\over{2}}\left(-1+{{2\varphi}\over{c^2}}\right)^{-1}{{2}\over{c^2}}\varphi_{,j}\delta^{ij}={{1}\over{c^2}}\varphi_{,j}\delta^{ij}</MATH>|6.21}} Poniżej mamy równanie na linie geodezyjne po którym poruszało się ciało, czyli korzystając z równania tensorowego {{LinkWzór|6.6}} dla wskaźników dolnych przestrzennych tensora Christoffela: {{CentrujWzór|<MATH>{{du^i}\over{ds}}=-{\Gamma^i}_{00}</MATH>|6.22}} Równość {{LinkWzór|6.22}}, z definicji czterowektora pędu dla współrzędnych przestrzennych {{LinkWzór|1.8|Wprowadzenie do ogólnej teorii względności}} zdefiniowanych poprzez czterowektor prędkości, zapisujemy: {{CentrujWzór|<MATH>{{dp^i}\over{ds}}=-{\Gamma^i}_{00}m_0 c</MATH>|6.23}} Dla prędkości nierelatywistycznych oczywiste jest, że w przybliżeniu mamy dla słabego pola grawitacyjnego, że ds&asymp;c dt, jednocześnie możemy pomnożyć obustronnie równanie {{LinkWzór|6.23}} przez prędkość światła w próżni "c": {{CentrujWzór|<MATH>{{dp^i}\over{dt}}=-{\Gamma^i}_{00}m_0 c^2</MATH>|6.24}} Podstawiając do {{LinkWzór|6.24}} policzony tensor &Gamma;{{Sup|i}}{{Sub|00}} {{LinkWzór|6.21}}, wtedy otrzymujemy równanie ruchu w zależne od rozkładu potencjału skalarnego pola grawitacyjnego w przestrzeni. {{CentrujWzór|<MATH>{{dp^i}\over{dt}}=-{{1}\over{c^2}}\varphi_{,j}\delta^{ij}m_0 c^2</MATH>|6.25}} Po pewnych skróceniach w równaniu {{LinkWzór|6.25}} likwiduje się zależność od prędkości światła z prawej stronie wspomnianego równanie, wtedy to nasze równanie ruchu cząstki przyjmuje kształt: {{CentrujWzór|<MATH>{{dp^i}\over{dt}}=-m_0\varphi_{,j}\delta^{ij}</MATH>|6.26}} Jeśli oznaczymy jako energię potencjalną cząstki przez oznaczenie zależne od jej potencjału grawitacyjnego i jej masy spoczynkowej, czyli od energii potencjalnej ciała o masie m{{Sub|0}}, czyli: E{{Sub|p}}=&phi; m{{Sub|0}}, to z własności pochodnej cząstkowej, można zapisać prawą stronę {{LinkWzór|6.26}} bez minusa: {{CentrujWzór|<MATH>m_0\varphi_{,j}=(m_0\varphi)_{,j}={{\partial E_p}\over{\partial x^j}}</MATH>|6.27}} To mamy równanie ruchu, które jest zależne od gradientu energii potencjalnej, które opisuje ruch naszego ciała w potencjalnym skalarnym polu grawitacyjnym, wtedy równanie {{LinkWzór|6.26}} przy zachodzącej tożsamości {{LinkWzór|6.27}} zapisujemy: {{CentrujWzór|<MATH>{{dp^i}\over{dt}}=-{{\partial E_p}\over{\partial x^j}}\delta^{ij}</MATH>|6.28}} Widzimy, że jest to pewna forma równania ruchu cząstki w zależności współrzędnej pędu i rozkładu pola grawitacyjnego. Lewa strona jest równaniem Newtona, a prawa jest siłą pola grawitacyjnego w danym punkcie przestrzeni trójwymiarowej. Przy czym należy pamiętać że składowe kowariantne i kontrkowariantne w metryce euklidesowej są nierozróżnialne, bo g{{Sub|ij}}&asymp; 1&delta;{{Sub|ij}}, dla słabych pól grawitacyjnych. Wstawiając za definicja gradientu, to powyższe równanie ruchu można przedstawić w postaci: {{CentrujWzór|<MATH>{{d\vec{p}}\over{dt}}=-\operatorname{grad}E_p</MATH>|6.29}} Dla naszych rozważanych prędkości, pęd cząstki można opisać wzorem dla przypadku nierelatywistycznego p{{Sup|i}}=m{{Sub|0}} v{{Sup|i}}, a także jego przyspieszenie {{Formuła|<MATH>\vec{a}={{d\vec{v}}\over{dt}}\;</MATH>}}, ostatecznie otrzymujemy najprostszą postać równania ruchu cząstki w polu potencjalnym sił grawitacyjnych. {{CentrujWzór|<MATH>m_0\vec{a}=-\operatorname{grad}E_p</MATH>|6.30}} Powyższe równanie można przedstawić jako dwa równania, pierwsze jako druga zasada dynamiki Newtona, a drugie opisujące siły grawitacyjne w polu skalarnym sił grawitacyjnych poprzez potencjał grawitacyjny &phi;: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\vec{F}=m_0\vec{a}</MATH>|6.31}}|2={{CentrujWzór|<MATH>\vec{F}=-\operatorname{grad}E_p=-m_0\operatorname{grad}\varphi</MATH>|6.32}}}} Udowodniliśmy, że dla ogólnej teorii względności dla słabych pól grawitacyjnych, dla prędkości nierelatywistycznych ogólna teoria względności sprowadza się do drugiego prawa Newtona i teorii grawitacji Newtona. === Zachowawczy charakter wielkości fizycznych === Skorzystajmy z równania na linie geodezyjne w pewnej czasoprzestrzeni i równocześnie na równanie ruchu cząstki masowej {{LinkWzór|1.74|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}} mnożąc to równanie przez wyrażenie (m{{Sub|0}}c){{Sup|2}} i po z korzystaniu z definicji czterowektora pędu {{LinkWzór|1.8|Wprowadzenie do ogólnej teorii względności}}, wtedy dostajemy równość tensorową: {{CentrujWzór|<MATH>m_0c{{dp_{\alpha}}\over{ds}}-{\Gamma^{\gamma}}_{\alpha\beta}p^{\beta}p_{\gamma}=m_0c K_{\alpha}\;</MATH>|6.33}} Zajmijmy się odjemnikiem występującej w równaniu na linię geodezyjne zapisanej za pomocą czterowektora pędu w powstałym równaniu {{LinkWzór|6.33}} przekształcając ten wyraz: {{CentrujWzór|<MATH>{\Gamma^{\gamma}}_{\alpha\beta}p^{\beta}p_{\gamma}= {{1}\over{2}}g^{\gamma\mu}(g_{\alpha\mu,\beta}+g_{\beta\mu,\alpha}-g_{\alpha\beta,\mu})p^{\beta}p_{\gamma}= {{1}\over{2}}(g_{\alpha\mu,\beta}+g_{\beta\mu,\alpha}-g_{\alpha\beta,\mu})p^{\beta}p^{\mu}={{1}\over{2}}\left(g_{\alpha\mu,\beta}p^{\beta}p^{\mu}+g_{\beta\mu,\alpha}p^{\beta}p^{\mu}-g_{\alpha\beta,\mu}p^{\beta}p^{\mu}\right)=</MATH>{{Br}} <MATH>= {{1}\over{2}}\left( g_{\alpha\beta,\mu}p^{\mu}p^{\beta}+g_{\beta\mu,\alpha}p^{\beta}p^{\mu}-g_{\alpha\beta,\mu}p^{\beta}p^{\mu} \right)={{1}\over{2}}g_{\beta\mu,\alpha}p^{\beta}p^{\mu}</MATH>|6.34}} Na podstawie obliczeń {{LinkWzór|6.34}} dla drugiego wyrazu występującego w równaniu tensorowym {{LinkWzór|6.33}}, wtedy równanie na linie geodezyjne zapisujemy przy pomocy czteropędu i pewnej pochodnej cząstkowej elementu tensora metrycznego: {{CentrujWzór|<MATH>m_0c{{dp_{\alpha}}\over{d s}}-{{1}\over{2}}g_{\beta\mu,\alpha}p^{\beta}p^{\mu}=m_0cK_{\alpha}</MATH>|6.35}} Stąd równanie {{LinkWzór|6.35}} można zapisać w innej równoważnej postaci przenosząc drugi wyraz w rozważanym równaniu na jego prawą stronę: {{CentrujWzór|<MATH>m_0c{{dp_{\alpha}}\over{d s}}={{1}\over{2}}g_{\beta\mu,\alpha}p^{\beta}p^{\mu}+m_0c K_{\alpha}</MAth>|6.36}} Można stąd wywnioskować wedle równania {{LinkWzór|6.36}}, że jeśli jakieś elementy tensora metrycznego dla ciała poruszającego się wzdłuż jakieś ściśle określonej trajektorii nie zależą od jakieś współrzędnej x{{Sup|&alpha;}}, wtedy wielkość p{{Sub|&alpha;}}=m{{Sub|0}}cu{{Sub|&alpha;}} pozostaje stały wzdłuż tej trajektorii cząstki dla współrzędnej &alpha;. === Całkowita energia cząstki w polu grawitacyjnym === Z wykładu ogólnej teorii względności, w której występuje wzór {{LinkWzór|1.11|Wprowadzenie do ogólnej teorii względności}} z definicji metryki dla słabego pola grawitacyjnego {{LinkWzór|5.65|Słabe_pola_grawitacyjne}} wiedząc, że elementy tego tensora nie zależą od czasu, bo mamy doczynienia z polem stacjonarnym. Wedle równania {{LinkWzór|6.36}} kowariantny pęd o współczynniku zerowym dla masowej cząstki jest stały względem zmiany interwału czasoprzestrzennego, a dla słabych pól grawitacyjnych jest stały względem czasu, co możemy napisać tą równość sposobem: {{CentrujWzór|<MATH>m_0^2c^2=p_{\mu}p^{\mu}=p^{\alpha}p^{\beta}g_{\alpha\beta}= \left(1+{{2\varphi}\over{c^2}}\right)(p^0)^2-\left(1-{{2\varphi}\over{c^2}}\right)\left((p^x)^2+(p^y)^2+(p^z)^2\right)\;</MATH>|6.37}} Jeśli oznaczymy że kwadrat całkowitego pęd cząstki jest równy sumie kwadratów pędu cząstki jej współrzędnych przestrzennych: {{CentrujWzór|<MATH>(p^x)^2+(p^y)^2+(p^z)^2=p^2\;</MATH>|6.38}} wtedy równanie {{LinkWzór|6.37}} na podstawie zachodzącej tożsamości {{LinkWzór|6.38}} wyznaczając stąd wyraz z kwadratem współrzędnej zerowej czterowektora pędu, wtedy to nasze wspomniane wcześniej równanie przyjmuje postać: {{CentrujWzór|<MATH>m_0^2c^2=\left(1+{{2\varphi}\over{c^2}}\right)(p^0)^2-\left(1-{{2\varphi}\over{c^2}}\right)p^2\;\Rightarrow \left(1+{{2\varphi}\over{c^2}}\right)(p^0)^2=m_0^2c^2+\left(1-{{2\varphi}\over{c^2}}\right)p^2\;</MATH>|6.39}} Dzielimy obie strony równości {{LinkWzór|6.39}} przez zawsze niezerowe wyrażenie {{Formuła|<MATH>1+{{2\varphi}\over{c^2}}\;</MATH>}}, wtedy otrzymujemy równość, z którego możemy wyznaczyć kwadrat zerowej współrzędnej czterowektora pędu: {{CentrujWzór|<MATH>(p^0)^2=\left(m_0^2c^2+\left(1-{{2\varphi}\over{c^2}}\right)p^2\right)\left(1+{{2\varphi}\over{c^2}}\right)^{-1}\;</MATH>|6.40}} Ponieważ mamy doczynienia z słabym polem grawitacyjnym, to powinno wtedy zachodzić {{Formuła|<MATH>{{2\varphi}\over{c^2}}<<1\;</MATH>}}, to przyjmując na podstawie ostatniego przybliżenia równość {{LinkWzór|6.40}}, otrzymujemy: {{CentrujWzór|<MATH>({p^0})^2=\left(m_0^2c^2+\left(1-{{2\varphi}\over{c^2}}\right)p^2\right)\left(1-{{2\varphi}\over{c^2}}\right)\Rightarrow(p^0)^2=m_0^2c^2+\left(1-{{2\varphi}\over{c^2}}\right)p^2-{{2\varphi}\over{c^2}}\left(m_0^2c^2+\left(1-{{2\varphi}\over{c^2}}\right)p^2\right)\;</MATH>|6.41}} Możemy dokonać odpowiednich wymnożeń w równaniu {{LinkWzór|6.41}} po jego prawej stronie przy opuszczaniu nawiasu i biorąc w końcu wyrażenie m{{Sub|0}}{{Sup|2}}c{{Sup|2}} przed nawias, wtedy dostajemy równość na kwadrat czasowego elementu czterowektora pędu: {{CentrujWzór|<MATH>(p^0)^2=m_0^2c^2\left( 1+{{p^2}\over{m_0^2c^2}}-{{2\varphi}\over{m_0^2c^4}}p^2-{{2\varphi}\over{c^2}} -{{2\varphi}\over{m_0^2c^4}}p^2+{{4\varphi^2}\over{m_0^2c^6}}\right)\;</MATH>|6.42}} Dokonując przybliżeń w powyższym równaniu, czyli wybierając wyrazy rzędu c{{Sup|0}} oraz rzędu c{{Sup|-2}}, a wyrazy o większym rzędzie pomijamy w prawej stronie równości {{LinkWzór|6.42}}, wtedy: {{CentrujWzór|<MATH>(p^0)^2\simeq m_0^2c^2\left(1+{{p^2}\over{m^2_0c^2}}-{{2\varphi}\over{c^2}}\right)\;</MATH>|6.43}} Policzmy samo {{Formuła|<MATH>p^0\;</MATH>}} względem równości {{LinkWzór|6.43}} zakładając, że p{{Sub|0}}&ge;0, czyli przyjmuje on wartość nieujemną, który jest element zerowym czterowektora pędu, a więc do dzieła: {{CentrujWzór|<MATH>p^0=m_0c\sqrt{1+{{p^2}\over{m^2_0c^2}}-{{2\varphi}\over{c^2}}}\;</MATH>|6.44}} Biorąc przybliżenie {{Formuła|<MATH>\sqrt{1+x}\simeq 1+{{1}\over{2}}x\;</MATH>}} w równaniu {{LinkWzór|6.44}}, wtedy po rozpisaniu pierwiastka w równaniu {{LinkWzór|6.44}}, wtedy ta nasza tożsamość przyjmuje wygląd: {{CentrujWzór|<math>p^0=m_0c\left(1+{{p^2}\over{2m_0^2c^2}}-{{\varphi}\over{c^2}}\right)\;</MATH>|6.45}} Po zastosowaniu twierdzenia rozdzielności mnożenia względem dodawania {{LinkWzór|6.45}}, otrzymujemy: {{CentrujWzór|<MATH>p^0=m_0c+{{p^2}\over{2mc}}-m_0{{\varphi}\over{c}}\;</MATH>|6.46}} Obniżmy wskaźnik przy p{{Sup|0}} w równaniu {{LinkWzór|6.46}}, czyli będziemy mówić o kontrawariantności zerowej współrzędnej, przy której przejdźmy do kowariantności zerowej współrzędnej czterowektora pędu, oraz korzystając z tego, że macierz tensora metrycznego dla słabych pól grawitacyjnych jest diagonalna, a więc to przejście można dokonać w sposób bardzo łatwy, tzn. tylko wymnażając p{{Sup|0}} przez element tensora metrycznego prostego g{{Sub|00}} w metryce słabego pola grawitacyjnego. {{CentrujWzór|<MATH>p_0=p^{\alpha}g_{\alpha 0}=\left(m_0c+{{p^2}\over{2mc}}-m_0{{\varphi}\over{c}}\right)\left(1+{{2\varphi}\over{c^2}}\right)\Rightarrow p_0=m_0c+{{p^2}\over{2mc}}-m_0{{\varphi}\over{c}}+\left(m_0c+{{p^2}\over{2mc}}-m_0{{\varphi}\over{c}}\right){{\varphi}\over{c^2}}\Rightarrow\;</MATH>{{Br}} <MATH>\Rightarrow p_0=m_0c+{{p^2}\over{2m_0c}}-m_0{{\varphi}\over{c}}+m_0{{2\varphi}\over{c}}+{{p^2}\over{2mc}}{{2\varphi}\over{c^2}}-m_0{{2\varphi^2}\over{c^3}}\;</MATH>|6.47}} Dokonując odpowiednich przybliżeń, czyli wybierając wyrazy nie wyższe niż rzędu c{{Sup|-1}} w ostatnim równaniu wynikowym {{LinkWzór|6.47}}, otrzymujemy: {{CentrujWzór|<MATH>p_0=m_0c+{{p^2}\over{2m_0c}}+m_0{{\varphi}\over{c}}\;</MATH>|6.48}} Równanie {{LinkWzór|6.48}} wymnażamy przez prędkość światła c i zastosowaniu definicji energii cząstki poprzez iloczyn pęd kowariantnego wymnożonej przez prędkość światła {{Formuła|<MATH>p_0={{E}\over{c}}\;</MATH>}}. {{CentrujWzór|<MATH>E=m_0c^2+m_0\varphi+{{p^2}\over{2m_0}}\;</MATH>|6.49}} Widzimy, że wielkość podana z prawej strony składa się z energii spoczynkowej, energii potencjalnej w polu grawitacyjnym oraz energii kinetycznej znanej z mechaniki klasycznej. == Elementy czterowektora pędu w układach kulistym i walcowym układu współrzędnych == Zapoznamy się tutaj ze współrzędnymi kulistymi i walcowymi, w których napiszemy z definicji pędu kontrawariantnego {{LinkWzór|1.8|Wprowadzenie do ogólnej teorii względności}} jako funkcję ich mas relatywistycznych i odpowiednich pochodnych czasowych. === Współrzędne kuliste === Możemy wykorzystać definicję momentów pędu {{LinkWzór|1.8|Wprowadzenie do ogólnej teorii względności}}, ale weźmy go dla współrzędnych kontrawariantnych, dla współrzędnych kowariantnych pędu można je otrzymać ze współrzędnych kontrawariantnych przez proste własności tensora metrycznego przyjmując, że różniczka interwału czasoprzestrzennego wynikającego z metryki Minkowskiego {{LinkWzór|1.6|Wprowadzenie do ogólnej teorii względności}} jest: {{CentrujWzór|<MaTh>ds=\sqrt{1-{{v^2}\over{c^2}}}cdt=\gamma^{-1}cdt\;</MATH>|6.50}} Wtedy pęd kontrawariantny radialny możemy przedstawić poprzez pochodną radialną względem czasu i też jest zależna od masy relatywistycznej, co można udowodnić z definicji czterowektora pędu: {{CentrujWzór|<MATH>p^r=m_0c{{dr}\over{ds}}=m_0c{{dr}\over{\gamma^{-1} cdt}}=m_0\gamma{{dr}\over{dt}}=m\dot{r}\;</MaTH>|6.51}} Pęd kontrawariantny &theta;-owy jest równy funkcji zależnej od masy relatywistycznej i pochodnej zupełnej kąta &theta;-owego względem czasu, co można udowodnić z definicji czterowektora pędu: {{CentrujWzór|<MATH>p^{\theta}=m_0c{{d\theta}\over{ds}}=m_0c{{d\theta}\over{\gamma^{-1}cdt}}=m_0\gamma\dot{\theta}=m\dot{\theta}\;</math>|6.52}} Pęd kontrkowariantny &psi;-owy jest równy funkcji zależnej od masy relatywistycznej i pochodnej kąta &phi;-owego względem czasu, co można udowodnić z definicji czterowektora pędu: {{CentrujWzór|<MATH>p^{\phi}=m_0c{{d\phi}\over{ds}}=m_0\gamma\dot{\phi}=m\dot{\phi}\;</Math>|6.53}} Końcowe wzory dla poszczególnych pędów kontrawariantnych {{LinkWzór|6.50}}, {{LinkWzór|6.51}} i {{LinkWzór|6.52}} są słuszne tylko dla szczególnej teorii względności, ale te końcowe wzory możemy uogólnić na przypadek innej dowolnej metryki i dla fotonów (cząstek o zerowej masie spoczynkowej), którą wyliczymy z ogólnej teorii względności. === Współrzędne walcowe i radialne === Podobnie jak poprzednio definicję kontrawariantnego pędu, ale tym razem dla współrzędnych walcowych, podobnie przyjmujemy: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>p^r=m\dot{r}\;</MATH>|6.54}}|2={{CentrujWzór|<MATH>p^{\theta}=m\dot{\theta}\;</MatH>|6.55}}|3={{CentrujWzór|<MATH>p^z=m\dot{z}\;</math>|6.56}}}} Oczywiste jest ze wzory {{LinkWzór|6.54}}, {{LinkWzór|6.55}} i {{LinkWzór|6.56}} możemy uogólnić na przypadek dowolnej metryki wyliczonej z równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}} lub {{LinkWzór|1.58|Wprowadzenie do ogólnej teorii względności}}, a także dla fotonów, czyli cząstek o zerowej masie spoczynkowej. Wzory dla współrzędnych radialnych wyglądają tak samo jak dla współrzędnych walcowych, tylko nie ma tutaj współrzędnej zetowej kontrawariantnego czteropędu, bo ten układ współrzędnych jest przedstawieniem położeń za pomocą współrzędnych (r,&theta;) na płaszczyźnie. == Kowariantny pęd &theta;-owy i &phi;-owy a współrzędne klasycznego momentu pędu == Rozpatrzmy słabe pole grawitacyjne według metryki Newtona {{LinkWzór|5.65|Słabe_pola_grawitacyjne}}, widzimy, że na podstawie definicji potencjału grawitacyjnego {{LinkWzór|5.65|Słabe_pola_grawitacyjne}} znanego z teorii grawitacji Newtona, że jeśli tensory metryczne nie zależą od zmiennych kątowych, to pędy kowariantne względem tychże wielkości kątowych są wielkościami niezależnymi od kątów w metryce słabego pola grawitacyjnego, metrykę {{LinkWzór|5.65|Słabe pola grawitacyjne}} w zmiennych kulistych możemy zapisać: {{CentrujWzór|<MATH>ds^2=\left(1+{{2\varphi}\over{c^2}}\right)c^2dt^2-\left(1-{{2\varphi}\over{c^2}}\right)\left(dr^2+r^2\sin^2\phi d\theta^2+r^2d\phi^2\right)\;</MATH>|6.57}} Co po odpowiednich wymnożeniach w {{LinkWzór|6.50}}, wydzielając odpowiednie elementy diagonalne tensora metrycznego, mamy: {{CentrujWzór|<Math>ds^2=\underbrace{\left(1+{{2\varphi}\over{c^2}}\right)}_{g_{tt}}c^2dt^2\underbrace{-\left(1-{{2\varphi}\over{c^2}}\right)}_{g_{rr}}dr^2\underbrace{-\left(1-{{2\varphi}\over{c^2}}\right)r^2\sin^2\phi}_{g_{\theta\theta}} d\theta^2\underbrace{-\left(1-{{2\varphi}\over{c^2}}\right)r^2}_{g_{\phi\phi}}d\phi^2\;</Math>|6.58}} Pędy kowariantne wedle metryki słabego pola grawitacyjnego we współrzędnych kulistych {{LinkWzór|6.51}} są zdefiniowane jako wielkości stałe, o ile tensor metryczny nie zależy od zmiennej x{{Sup|&theta;}}, wtedy ta wielkość bardzo przypomina &theta;-owy moment pędu znanej z mechaniki klasycznej Newtona: {{CentrujWzór|<MATH>p_{\theta}=p^{\theta}g_{\theta\theta}=-m{{d\theta}\over{dt}}\left(1-{{2\varphi}\over{c^2}}\right)r^2\sin^2\phi\simeq-(r\sin\phi) [mr\sin(\phi)\dot{\theta}]=-r_{\theta}mv_{\theta}=L_{\theta}\;</MaTH>|6.59}} Kowariantny pęd jak udowodnimy jest wielkością stałą względem zmiennej o wskaźniku dolnym &phi;, bo tensor metryczny prosty nie zależy od zmiennej położeniu o tym wskaźniku, wtedy ta wielkość bardzo przypomina &phi;-owy moment pędu znanej z mechaniki klasycznej Newtona: {{CentrujWzór|<MATH>p_{\phi}=p^{\phi}g_{\phi\phi}=-m{{d\phi}\over{dt}}\left(1-{{2\varphi}\over{c^2}}\right)r^2\simeq -m{{d\phi}\over{dt}}r^2=-r mr{{d\phi}\over{dt}}=-r mv_{\phi}=L_{\phi}\;</MATH>|6.60}} Widzimy na podstawie {{LinkWzór|6.59}} (pęd kowariantny &theta;-owy) i {{LinkWzór|6.60}} (pęd kowariantny &psi;-owy) są w przybliżeniu równe współrzędnym odpowiednio momentowi pędu &theta;-owego lub &phi;-owego dla metryki słabego pola grawitacyjnego, ale także również dla innych metryk, które w granicy słabego pola grawitacyjnego przechodzą w metrykę Minkowskiego. <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> a6bs3yhkjpjbyfdytmjudfa13tefbdm Ogólna teoria względności/Promieniowanie grawitacyjne 0 16258 546537 470272 2026-06-12T15:41:08Z Persino 2851 /* Wpływ fal grawitacyjnych na swobodną cząstkę */ 546537 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> Tutaj będziemy się zajmować ''falami grawitacyjnymi'', tzn. co to są fale grawitacyjne, czy to jest fala poprzeczna czy podłużna, dlaczego prędkość grupowa jest równa prędkości fazowej, jak można wykryć fale grawitacyjną za pomocą rezonatora grawitacyjnego, jak je wytwarzać. == Propagacja fal grawitacyjnych == Udowodnimy, że dla naszego pola grawitacyjnego niestacjonarnego w dużej odległości od źródła, pole grawitacyjne rozchodzi się na w sposób fali. Tensor Einsteina dla słabych pól grawitacyjnych daleko od źródła grawitacyjnego przedstawia się wedle schematu {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} i daleko od źródła tensor gęstości energii znika T{{Sup|&alpha;&beta;}}=0, bo w rozważanym punkcie gęstość jest już równa zero, a także ciśnienie jest zaniedbywalnie małe. Z równania grawitacji Einsteina, dla zerowego tensora gęstości energii-pędu powyższego równania, oczywiste jest, że tensor Einsteina G{{Sup|&alpha;&beta;}}=0. Z zerowania się tensora gęstości energii i równanie grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}} po pomnożeniu jego przez dwa i korzystając z definicji operatora d'Alemberta mamy z oczywistych powodów: {{CentrujWzór|<MATH>0=\square \overline{h}_{\alpha\beta}\Rightarrow\left(-{{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}^{\alpha\beta}=0</MATH>|7.1}} Końcowe równanie {{LinkWzór|7.1}} jest równaniem falowym, a poniżej podamy jego rozwiązanie w postaci poniżej, którego to zapis zależy od czterowektora kontrawariantnego położenia x{{Sup|&mu;}}i czterowektora kowariantnego liczby falowej k{{Sup|&mu;}}: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{ik_{\mu}x^{\mu}}</MATH>|7.2}} Końcowe równanie falowe {{LinkWzór|7.1}} po podstawieniu do niego rozwiązania falowego {{LinkWzór|7.2}} i zakładając przy tym, że stała tensorowa A{{Sup|&alpha;&beta;}} występująca w naszym wspomnianym rozwiązaniu jest stałą dowolną: {{CentrujWzór|<MATH>\eta^{\mu\nu}{\overline{h}^{\mu\nu}}_{,\mu,\nu}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}\overline{h}^{\alpha\beta}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}=0\Rightarrow k_{\mu}k^{\mu}=0\;</MATH>|7.3}} Wielkość występująca w {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}} pod eksponensem zapisanej w punkcie {{LinkWzór|7.2}} można rozpisać w zależności od czasu i wektora {{Formuła|<MATH>\vec{r}\;</math>}} wedle sposobów w zależności wprost proporcjonalnej od częstotliwości kołowej i zwykłej liczby falowej k. {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_0 ct+\mathbf{k}\vec{r}</MATH>|7.4}} Jeśli weżniemy, że zachodzi dla fotonu podróżującego wzdłuż wektora przestrzennego {{Formuła|<MATH>\vec{k}\;</MATH>}}, którego elementy są to składowe czterowektora k{{Sup|&mu;}} bez jej współrzędnej czasowej: {{CentrujWzór|<MATH>x^{\alpha}(\lambda)=k^{\alpha}\lambda+l^{\alpha}\;</MATH>|7.5}} Ależ wiadomo jednak, że l{{Sup|&lambda;}} jest stałym tensorem (wektorem). Możemy podstawić {{LinkWzór|7.5}} do {{LinkWzór|7.4}} i się przekonamy, że względem rozwiązania {{LinkWzór|7.5}} wyrażenie {{LinkWzór|7.4}} jest wielkością stałą na podstawie końcowego wyrażenia {{LinkWzór|7.3}}, że długość czterowektora {{Formuła|<MATH>k^{\mu}\;</MATH>}} w czasoprzestrzeni jest wielkością stałą: {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_{\alpha}k^{\alpha}\lambda+k_{\alpha}l^{\alpha}=\operatorname{const}\Rightarrow k_{\alpha}x^{\alpha}=k_{\alpha}l^{\alpha}</MATH>|7.6}} Znając definicję częstotliwości kołowej i liczby falowej poprzez długość fali grawitacyjnej, które można zapisać te wielkości fizyczne wedle: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>k_0={{\omega}\over{c}}\;</MATH>|7.7}}|2={{CentrujWzór|<MATH>k=|\vec{k}|={{2\pi}\over{\lambda}}\;</Math>|7.8}}}} Możemy wykorzystać z równości końcowej {{LinkWzór|7.3}} i wykorzystując dwie tożsamości {{LinkWzór|7.7}} oraz {{LinkWzór|7.8}}, wtedy to nasze wyrażenie rozpiszmy na część czasową i przestrzenną , wtedy możemy powiedzieć, że fala grawitacyjna rozchodzi się z prędkością fazową równą prędkości światła c: {{CentrujWzór|<MATH>k_{\mu}k^{\mu}=0\Rightarrow k_0k_0-k_ik_i=0\Rightarrow k_0^2=\sum^3_{i=1}k_i^2\Rightarrow {{\omega^2}\over{c^2}}=\vec{k}^2\Rightarrow\omega=\left|\vec{k}\right|c\Rightarrow \omega=kc\;</math>|7.9}} Dla {{LinkWzór|7.7}} (współrzędna czasowa liczby falowej) i {{LinkWzór|7.8}} (długość liczby falowej w przestrzeni) przy k{{Sup|&mu;}}, na którą składa się na jej część czasową i przestrzenną, wtedy równanie {{LinkWzór|7.2}} piszemy: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta} e^{i\left({{\omega}\over{c}}ct+\vec{k}\vec{r}\right)}\Rightarrow \overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{i\left(\omega t+\vec{k}\vec{r}\right)}\;</MATH>|7.10}} Wykorzystując definicję prędkości fazowej i grupowej znanej z fizyki ogólnej i zależności końcowej {{LinkWzór|7.9}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>v_f={{\omega}\over{k}}={{kc}\over{k}}=c\;</Math>|7.11}}|2={{CentrujWzór|<MATH>v_g={{d\omega}\over{dk}}={{dkc}\over{dk}}=c\;</Math>|7.12}}}} Na podstawie obliczeń {{LinkWzór|7.11}} i {{LinkWzór|7.12}} udowodniliśmy, że prędkość grupowa i fazowa fal grawitacyjnych są sobie równe, ze względu na właściwości czterowektora falowego w czasoprzestrzeni. Do naszego rozwiązania {{LinkWzór|7.2}} należy dodać cechowanie pola grawitacyjnego {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}, czyli wielkości {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}}, czyli z tego cechowania wynika końcowa tożsamość: {{CentrujWzór|<MATH>{\overline{h}^{\alpha\beta}}_{,\beta}=0\Rightarrow A^{\alpha\beta}k_{\beta}e^{ik_{\alpha}x^{\alpha}}=0\Rightarrow A^{\alpha\beta}k_{\beta}=0</MATH>|7.13}} Wedle powyższych rozważań udowodniliśmy, że fale grawitacyjne są falami poprzecznymi, bo iloczyn skalarny między czterowektorem liczby falowej i tensorem amplitudy fali grawitacyjnej {{LinkWzór|7.2}} jest równy zero. == Bezśladowe cechowanie poprzeczne Lorentza == Mamy sobie nowy układ współrzędnych względem starego układu, w obu układach panuje cechowanie Lorentza {{LinkWzór|5.29|Słabe_pola_grawitacyjne}}, dla równości różniczkowej {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} znajdźmy sobie taki tensor &xi;{{Sup|&alpha;}} przy tych cechowaniach w starym i w nowym układzie współrzędnych, który spełnia równanie różniczkowe {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} tożsamościowo, zatem nasz wspomniany tensor musi zatem spełniać w takim przypadku równanie różniczkowe: {{CentrujWzór|<MATH>\square \xi^{\alpha}=0\;</MATH>|7.14}} Rozwiązaniem równania {{LinkWzór|7.14}} jest rozwiązaniem w postaci funkcji zależnej od czterowektora falowego k{{Sub|&mu;}} wedle: {{CentrujWzór|<math>\xi^{\alpha}=B^{\alpha}e^{ik_{\mu}x^{\mu}}\;</MaTH>|7.15}} Mając rozwiązaniem równania falowego {{LinkWzór|7.2}} i rozwiązanie w postaci funkcji &xi; {{LinkWzór|7.15}} równania {{LinkWzór|7.14}}, wtedy równość końcową {{LinkWzór|5.25|Słabe_pola_grawitacyjne}} możemy zapisać na podstawie: {{CentrujWzór|<MATH>{A'}_{\alpha\beta}=A_{\alpha\beta}-iB_{\alpha}k_{\beta}-iB_{\beta}k_{\alpha}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}\;</MaTh>|7.16}} Obierzmy sobie dodatkowe cechowania obowiązujące w nowym układzie współrzędnych wedle sposobów: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{A'}^{\alpha}}_{\alpha}=0\;</MATH>|7.17}}|2={{CentrujWzór|<MATH>{A^{'}}_{\alpha\beta}U^{\beta}=0\;</MATH>|7.18}}}} Przedstawmy teraz tożsamości wynikające z {{LinkWzór|7.17}} oraz z {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, wtedy na podstawie tego otrzymujemy dwa poniższe warunki: {{ElastycznyWiersz|1={{CentrujWzór|<math>\overline{h}={\overline{h}^{\alpha}}_{\alpha}=0\;</MATH>|7.19}}|2={{CentrujWzór|<MATH>h_{\alpha\beta}=\overline{h}_{\alpha\beta}\;</Math>|7.20}}}} Równość tensorową {{LinkWzór|7.16}} na podstawie pierwszego cechowania {{LinkWzór|7.17}} możemy napisać w postaci: {{CentrujWzór|<MATH>0={A^{\alpha}}_{\alpha}-iB^{\alpha}k_{\alpha}-iB_{\alpha}k^{\alpha}+i{\delta^{\alpha}}_{\alpha}B^{\mu}k_{\mu}\Rightarrow 0={A^{\alpha}}_{\alpha}+2iB^{\alpha}k_{\alpha}\;</MaTH>|7.21}} Mamy cztery wartości tensora B{{Sup|&alpha;}} przy jakiś wartościach A{{Sub|&alpha;&beta;}}, czyli mamy jedno tensorowe równanie więzów z czterema niewiadomymi. Weźmy sobie pod lupę cechowanie {{LinkWzór|7.17}} na podstawie obrania nowego układu spełniającego to cechowanie, wtedy na podstawie {{LinkWzór|7.16}} dostajemy znów inną tożsamość: {{CentrujWzór|<MATH>0=A_{\alpha\beta}U^{\beta}-iB_{\alpha}k_{\beta}U^{\beta}-iB_{\beta}k_{\alpha}U^{\beta}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\Rightarrow A_{\alpha\beta}U^{\beta}=iB_{\alpha}k_{\beta}U^{\beta}+iB_{\beta}k_{\alpha}U^{\beta}-i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\;</MATH>|7.22}} Jeśli pomnożyć końcowe równanie {{LinkWzór|7.22}} przez k{{Sup|&alpha;}}, to lewa strona tejże wspomnianej równości wedle warunku na poprzeczność fal grawitacyjnych wynikające z warunku cechowania Lorentza {{LinkWzór|7.13}} co stąd wynika, że ta strona naszego równania jest zawsze równa zero, ale przy jakich B{{Sub|&alpha;}}, zatem z {{LinkWzór|7.22}} mamy: {{CentrujWzór|<math>0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}+k^{\alpha}iB_{\beta}U^{\beta}k_{\alpha}-ik^{\alpha}\eta_{\alpha\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}-ik_{\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=0\;</MATH>|7.23}} Na podstawie {{LinkWzór|7.23}} jest ona spełniona bez względu jakie wartości przyjmuje B{{Sub|&alpha;}}, zatem dostajemy na podstawie wiadomości z algebry, że równość tensorowa {{LinkWzór|7.22}} ma w sobie trzy niezależne równania z czterema niewiadomymi B{{Sub|&alpha;}}. Jeśli połączymy równanie {{LinkWzór|7.22}} z {{LinkWzór|7.21}} dostajemy cztery niezależne równania z czteroma niewiadomymi, którymi są elementy tensora B{{Sub|&alpha;}}, których jest cztery, zatem na podstawie znanych A{{Sub|&alpha;&beta;}} możemy wyznaczyć właśnie elementy tensora B{{Sub|&alpha;}} jednoznacznie. Dochodzimy do wniosku, że cechowania {{LinkWzór|7.17}} i {{LinkWzór|7.18}} są spełnione w jakimś tam układach odniesienia, których jest nieskończenie wiele jak przy cechowaniu Lorentza {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}. Jeśli założymy, że cząstka spoczywa, to wtedy mamy U{{Sup|&beta;}}=&delta;{{Sup|&beta;}}{{Sub|0}}, wtedy na podstawie równania {{LinkWzór|7.18}} mamy 0=A{{Sub|&alpha;&beta;}}&delta;{{Sup|&beta;}}{{Sub|0}}=A{{Sub|&alpha; 0}}, zatem na podstawie symetryczności A{{Sub|&alpha;&beta;}} pierwsza kolumna i wiersz są zerowymi wielkościami. Jeśli przyjąć, że cząstka porusza się w kierunku osi zetowej, czyli jego czterowektor liczby falowej jest: {{CentrujWzór|<MATH>k^{\mu}=(k^1={{\omega}\over{c}},0,0,k)\;</math>|7.24}} wtedy warunek {{LinkWzór|7.13}} implikuje 0=A{{Sub|&alpha;&beta;}}k{{Sup|&beta;}}=k{{Sup|3}}A{{Sub|&alpha;3}}, zatem na podstawie tego rozważania i symetryczności A{{Sub|&alpha;&beta;}} dostajemy, że trzecia kolumna i wiersz są wielkościami zerowymi. Jeśli weźmiemy dodatkowo warunek {{LinkWzór|7.18}}, z poprzednimi rozważaniami: 0=A{{Sup|&alpha;}}{{Sub|&alpha;}}=A{{Sub|xx}}+A{{Sub|yy}}&rArr;A{{Sub|yy}}=-A{{Sub|xx}}, zatem naszą macierz A{{Sub|&alpha;&beta;}} możemy zapisać: {{CentrujWzór|<MATH>A^{TT}_{\alpha\beta}=\begin{pmatrix} 0&0&0&0\\ 0&A_{xx}&A_{xy}&0\\ 0&A_{xy}&-A_{xx}&0\\ 0&0&0&0\\ \end{pmatrix}</MATH>|7.25}} == Wpływ fal grawitacyjnych na swobodną cząstkę == Cząstka spoczywająca nie ma elementów przestrzennych czterowektora prędkości, wtedy wzór na linię geodezyjną {{LinkWzór|1.70|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, gdy parametr {{Formuła|<MATH>\lambda\;</MATH>}} jest interwałem czasoprzestrzennym, możemy zapisać: {{CentrujWzór|<MATH>{{du^{\alpha}}\over{ds}}=-{\Gamma^{\alpha}}_{00}\;</MaTH>|7.26}} Do wzoru {{LinkWzór|7.26}} bardzo nam są potrzebne elementy tensora Christoffela na podstawie {{LinkWzór|7.2}} i na podstawie elementów amplitudy tensorowej A{{Sup|&alpha;&beta;}}{{LinkWzór|7.25}}, które to &Gamma;{{Sup|&alpha;}}{{Sub|00}} następnie wyznaczymy, zatem do dzieła: {{CentrujWzór|<math>{\Gamma^{\alpha}}_{00}={{1}\over{2}}\eta^{\alpha\beta}\left(h_{\beta 0,0}+h_{0\beta,0}-h_{00,\beta}\right)\;</MAtH>|7.27}} Zatem na podstawie równania na fale grawitacyjne przy obranym cechowaniu {{LinkWzór|7.17}} i {{LinkWzór|7.18}} oraz macierzy tensora amplitud {{LinkWzór|7.25}}, a także względem równania fali {{LinkWzór|7.2}}, przy obranym cechowaniu zachodziłoby {{LinkWzór|7.20}} oraz że te amplitudy nie mają wierszy oraz kolumn o numerze zerowym oraz jego elementy nie zależą od czasu, zatem elementy tensora Christoffela {{LinkWzór|7.27}} są wielkościami zerowymi, czyli znikają, zatem na podstawie {{LinkWzór|7.26}} cząstka spoczywająca współrzędnościowo pozostanie nadal cząstką spoczywającą, ponieważ cząstka która ma czteroprędkość a właściwie jej część przestrzenną, która równa jest nadal zero, dalej będzie miała ten sam czteroprędkość, którego zmiana jest równa zero wedle naszej metryki przy przyjętych cechowaniu. Zatem dochodzimy do wniosku, że fala grawitacyjna wcale nie wpływa na ruch punktowej masy wedle współrzędnych czteropołożenia położenia, ale to nic nie znaczy. Fala grawitacyjna może zmieniać odległość właściwą między dwoma punktami w sposób wedle {{LinkWzór|1.13|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>\Delta l=\int \left|ds^2\right|^{{{1}\over{2}}}=\int \left|g_{\alpha\beta}dx^{\alpha}dx^{\beta}\right|^{{{1}\over{2}}}=\int^{x_2}_{x_1}\left|g_{xx}\right|^{{{1}\over{2}}}dx=\int^{x_2}_{x_1} \left|\eta_{xx}+h_{xx}\right|^{{{1}\over{2}}}dx\simeq x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;</MATH>|7.28}} Również jak się przekonamy, że za pomocą zmiany długości właściwej &Delta;l można wykryć budując pewne układu fizyczne, mimo że fala grawitacyjna nie działa na punktowe masy. === Równanie dewiacji a odległość wektorowa pomiędzy obydwa spoczywającymi współrzędnościowo cząstkami === Równanie dewiacji z którego będziemy korzystać jest to {{LinkWzór|1.90|Wprowadzenie_do_ogólnej_teorii_względności}}, i w nim zakładamy, że cząstka spoczywa współrzędnościowo, bo prędkości współrzędnościowe przestrzenne jako są równe zero, i będziemy badali odległość przestrzenną iksową odległości pomiędzy dwoma cząstkami, wtedy czterowektor prędkości i odległość początkowa pomiędzy dwoma cząstkami przestawiamy jako U{{Sup|&mu;}}=(1,0,0,0),&xi;{{Sup|&mu;}}=(0,&epsilon;,0,0). W takim wypadku równanie dewiacyjne możemy napisać poniżej wykorzystując przy tym twierdzenie {{LinkWzór|2.106|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}}: {{CentrujWzór|<MATH>{{d^2\xi^{\lambda}}\over{d\lambda^2}}={{1}\over{c^2}}{{d^2\xi^{\lambda}}\over{d t^2}}=\epsilon {R^{\alpha}}_{00x}=-\epsilon {R^{\alpha}}_{0x0}\;</MATH>|7.29}} Dla słabego pola grawitacyjnego mamy {{LinkWzór|5.1|Słabe_pola_grawitacyjne}}, wtedy czterowskaźnikowy tensor krzywizny R{{Sup|&alpha;}}{{Sub|0x0}} {{LinkWzór|2.101|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}} możemy napisać z definicji tensora fali grawitacyjnego {{LinkWzór|7.2}} i definicji tensora amplitudy {{LinkWzór|7.25}}: {{CentrujWzór|<MATH> \begin{cases}{R^x}_{0x0}=R_{x0x0}=-{{1}\over{2}}h_{xx,0,0}\\ {R^y}_{0x0}=R_{y0x0}=-{{1}\over{2}}h_{xy,0,0}\\ {R^y}_{0y0}=R_{y0y0}=-{{1}\over{2}}h_{yy,0,0}=-{R^x}_{0x0} \end{cases}\;</MATH>|7.30}} Wszystkie pozostałe elementy tensora krzywizny inne niż policzone powyżej są równe zero, i ich nie podaliśmy, bo dowód zerowania się ich jest trywialny. Równania dewiacyjne w kierunku osi iksowej piszemy jako: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.30a}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^{y}={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.31}}}} Jeśli tensor &xi;{{Sup|&alpha;}} jest zdefiniowany w kierunku osi igrekowej, wtedy otrzymujemy dwa równania dewiacyjne: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^y={{1}\over{2}}{{\partial^2}\over{\partial t^2}}h_{yy}=-{{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.32}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.33}}}} === Ścisła fala grawitacyjna wynikająca z praw grawitacji Einsteina === Wszystkie fale grawitacyjne, których chcemy zaobserwować na Ziemi są to fale, które są opisywane przy pomocy teorii zlinearyzowanej, ale chcemy opisać fale grawitacyjne przy pomocy teorii dokładnej, czyli opisywanej przy pomocy dokładnego równania grawitacji Einsteina. Obierzmy teraz dwie zmienne nowe zdefiniowane przy pomocy zmiennych t i z, których definicje są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>u=ct-z\;</MATH>|7.34}}|2={{CentrujWzór|<MATH>v=ct+z\;</MATH>|7.35}}}} Mamy sobie zdefiniowany interwał czasoprzestrzenny w przestrzeni Minkowskiego {{LinkWzór|1.6|Wprowadzenie_do_ogólnej_teorii_względności}} i wykorzystując równania na zmienne u {{LinkWzór|7.34}} i {{LinkWzór|7.35}}, z których wyznaczmy wzory na zmienne "u" i "ct", co w ten sposób możemy napisać ten nasz interwał czasoprzestrzenny w tychże zmiennych: {{CentrujWzór|<MATH>ds^2={{1}\over{4}}d(u+v)^2-dx^2-dy^2-{{1}\over{4}}d(v-u)^2={{1}\over{4}}\left(du^2+dv^2+2dudv\right)-dx^2-dy^2-{{1}\over{4}}\left(du^2+dv^2-2dudv\right)=\;</MATH>{{Br}}<MATH>=dvdu-dx^2-dy^2\;</MATH>|7.36}} Zobaczymy, że fale grawitacyjne wpływają na odległości prostopadłe w stosunku do biegu fali grawitacyjnej przy jej opisie, która wynika z jej teorii dokładnej, czyli z równań grawitacji Einsteina. W tym celu napiszmy interwał czasoprzestrzenny, w których wprowadzimy funkcje f(u) i g(u), które są zależne od zmiennej "u": {{CentrujWzór|<MATH>ds^2=dudv-f^2(u)dx^2-g^2(u)dy^2\;</MATH>|7.37}} Napiszemy teraz wszystkie niezerowe elementy tensora Christoffela i niezerowe elementy tensory czterowskaźnikowego tensora krzywizny: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\Gamma^x}_{xu}={{\dot{f}}\over{f}}\;</MATH>|7.38}}|2={{CentrujWzór|<MATH>{\Gamma^y}_{yu}={{\dot{g}}\over{g}}\;</MATH>|7.39}}|3={{CentrujWzór|<MATH>{\Gamma^v}_{xx}={{1}\over{2}}\dot{f}f\;</MATH>|7.40}}|4={{CentrujWzór|<MATH>{\Gamma^v}_{yy}={{1}\over{2}}\dot{g}g\;</MATH>|7.41}}}} {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{R^x}_{uxu}=-{{\ddot{f}}\over{f}}\;</MATH>|7.42}}|2={{CentrujWzór|<MATH>{R^y}_{uyu}=-{{\ddot{g}}\over{g}}\;</MATH>|7.43}}|3={{CentrujWzór|<MATH>R=R_{uu}=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.44}}}} Z powyższych wnioskach możemy napisać tensory Einsteina i dowiemy się, że tensor Einsteina G{{Sub|&mu;&nu;}} posiada również elementy niediagonalne oprócz jej elementów diagonalnych: {{CentrujWzór|<math> G_{uu}=R_{uu}-{{1}\over{2}}g_{uu}R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}-{{1}\over{2}}\cdot 0\cdot R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.45}} {{CentrujWzór|<MATH>G_{uv}=R_{uv}=R_{vu}-{{1}\over{2}}g_{uv}R=-{{1}\over{2}}(-1)R=-{{1}\over{2}}{{1}\over{2}}\left(-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\right)={{1}\over{4}}\left({{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}\right)\;</math>|7.46}} Będziemy badać fale rozprzestrzeniające tam gdzie nie ma masy, wtedy z równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}}, gdy tensor napięć-energii jest równy zero, mamy: {{CentrujWzór|<MATH>{{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}=0\;</MATH>|7.47}} Jako funkcję f(u) możemy przyjąć jako dowolną funkcję i rozwiązać równanie dla g(u). Możemy funkcję f(u) w taki sposób napisać jako funkcję opisującą pewnego rodzaju falę podobną do {{LinkWzór|7.2}} i zapytać siebie jaka jest funkcja przy tak postawionych warunkach, czyli g(u). Dla przypadku prawie liniowego funkcja f(u) jest bliska jedności: {{CentrujWzór|<MATH>f\simeq 1+\epsilon(u)\;</MATH>|7.48}} wtedy funkcja g(u) jest prawie liniowa i w zależności od funkcji prawie liniowej f(u) {{LinkWzór|7.46}} możemy napisać jej rozwiązanie: {{CentrujWzór|<MATH>g\simeq 1-\epsilon(u)\;</MATH>|7.49}} == Detekcja fal grawitacyjnych == {{Rysunek|Fale grawitacyjne.jpg|sjp|Detektor rezonansowy dla wykrycia fal grawitacyjnych.}} Załóżmy, że mamy układ o współczynnik tłumienia &nu; i sprężyny o stałej sprężystości k, który jest oscylatorem harmonicznym tłumionym. Dla pierwszej i drugiej kulki rozważanego układu, równanie ruchu ma się: {{CentrujWzór| <MATH>\begin{cases} mx_{1,0,0}=k(x_2-x_1-l_0)-\nu(x_1-x_2)_{,0}\\ mx_{2,0,0}=-k(x_2-x_1-l_0)-\nu(x_2-x_1)_{,0} \end{cases}\;\;</MATH>|7.50}} Możemy odejmować dwa równania {{LinkWzór|7.50}} od siebie w naszym układzie równań otrzymując wynikowe równanie, które należy rozwiązać: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(x_2-x_1-l_0)-2\nu(\dot{x_2}-\dot{x_1})\;\;</MATH>|7.51}} Wprowadźmy nowe oznaczenia (parametry), które wykorzystamy do równania różniczkowego {{LinkWzór|7.51}}, tzn. parametr &xi; (która jest zależna od położenia obu kulek i długości własnej użytej sprężynki), częstotliwości własnej układu &omega;{{Sub|0}} (zależna od stałej sprężystości sprężynki i masy tej sprężynki), a także od stałej &gamma; (która jest zależna od stałej tłumienia &gamma; i masy sprężynki), zatem te podstawienia: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\xi=x_2-x_1-l_0\;\;</MATH>|7.52}}|2={{CentrujWzór|<MATH>\omega_0^2={{2k}\over{m}}\;\;</MATH>|7.53}}|3={{CentrujWzór|<MATH>\gamma={{\nu}\over{m}}\;\;</MATH>|7.54}}}} Na podstawie oznaczeń &xi; {{LinkWzór|7.52}}, &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, wtedy równanie {{LinkWzór|7.51}} przechodzi przy tych nowych oznaczeniach w równoważną postać: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=0\;\;</MATH>|7.55}} W równaniach ruchu dla dwóch kulek {{LinkWzór|7.50}} zastosowaliśmy równania ruchu Newtona, bo mamy do czynienia z prędkościami bardzo małymi (o wiele mniejszymi od prędkości światła). Ponieważ mamy do czynienia z ogólną teorią względności, czyli mamy do czynienia z teorią grawitacją Einsteina, to powyższe wywody nie są w ogólności spełnione i chwilową długość sprężyny jest inna niż zakładana, bo sprężyna jest w układzie dwóch kulek, których fala grawitacyjna zakłóca prawdziwą długość sprężyny, długość sprężyny według rozważanej metryki jest inna niż metryce Minkowskiego (czasoprzestrzeń płaska), jeśli sprężyna jest położona wzdłuż osi iksowej w przestrzeni, ma długość na podstawie {{LinkWzór|7.28}} wyrażonej według: {{CentrujWzór|<MATH>l(t)=x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.56}} Należy pamiętać, że długość l{{Sub|0}} jest bardzo mała w porównaniu z długością jakim światło może przebyć w ciągu jednej sekundy. Równania {{LinkWzór|7.50}} możemy zapisać w bardziej ogólny sposób uwzględniając jako sprężynę w ruchu, który ma w tej chwili długość l i zapisać je nie jako różnica położeń dwóch kul z dokładnością do znaku, ale jako różnica aktualnej długości kulki l i jej długości początkowej, bo tutaj nie mamy przestrzeni płaskiej tylko przestrzeń zakrzywioną i uwzględniając jakoby fala grawitacyjna nie oddziaływuje współrzędnościowo z punktowymi masami jako osobno, co tutaj jest ważne, ale kulki oddziałują ze sobą tylko za pomocą sprężynki przez promieniowanie grawitacyjne, które to kulki były początkowo w spoczynku przed dotarciem do nich tej rozważanej fali: {{CentrujWzór|<MATH>\begin{cases} mx_{1,0,0}=k(l-l_0)+\nu(l-l_0)_{,0}\\ mx_{2,0,0}=-k(l-l_0)-\nu(l-l_0)_{,0} \end{cases}\;</MaTh>|7.57}} Wprowadźmy nowe oznaczenia, która jest funkcją iksowych położeń kul, i poprawki do tensora metrycznego Minkowskiego i długości początkowej sprężyny nierozciągniętej i jest oznaczona ona przez tożsamość: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.58}} Na podstawie powyższej tożsamości możemy napisać przekształcenia wyznaczając różnicę współrzędnych iksowych dwóch rozważanych kulek: {{CentrujWzór|<MATH>x_2-x_1\simeq\xi+l_0+{{1}\over{2}}h_{xx}l_0\;\;</MATH>|7.59}} Powyżej przyjęliśmy, że zmiana długości własnej sprężynki stojąca przy h{{Sub|xx}} dla słabego pola grawitacyjnego jest bardzo mała, zatem różnica położeń kulek jest w przybliżeniu równa długości sprężynki. Równość {{LinkWzór|7.50}} z poprawką na chwilową długość sprężyny, która jest nie równa różnicy współrzędnych iksowych kulek w zakrzywionej czasoprzestrzeni: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(l-l_0)-2\nu(l-l_0)_{,0}\;\;</MATH>|7.60}} Wykorzystując oznaczenia na parametry &xi; {{LinkWzór|7.58}}, oraz na &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, to równanie różniczkowe {{LinkWzór|7.60}} zapisujemy poniżej, który również zawiera poprawkę do tensora metrycznego Minkowskiego dla tychże rozważanych kulek, a także zawiera zmianę długości sprężyny l-l{{Sub|0}} zapisanej według {{LinkWzór|7.59}}: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=-{{1}\over{2}}h_{xx,0,0}l_0\;\;</MATH>|7.61}} Powyższe równanie jest równaniem oscylatora harmonicznego tłumionego z przyłożoną siłą, która zmienia się w sposób harmoniczny (w tym przypadku promieniowanie grawitacyjne, które działa na kule poprzez sprężynkę). Fala kulista w dużej odległości od źródła jest falą w przybliżeniu płaską, a zatem jeśli {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;\;</MATH>}} opisuje falę płaską wedle definicji tensora Einsteina {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} dla tensora gęstości energii równej zero, wtedy równania grawitacji Einsteina opisują {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATh>}} wedle {{LinkWzór|7.2}}, jeśli częstotliwość tej fali jest jakaś tam, to częstotliwość fali {{Formuła|<MATH>h_{xx}\;</MATH>}}, wedle równości {{LinkWzór|5.20|Słabe_pola_grawitacyjne}} jest taka sama, zatem jeśli pierwsza zmienia się względem funkcji kosinus (dla {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}), to druga też, zatem niech będą funkcje {{Formuła|<math>h_{xx}\;</MaTH>}} i {{Formuła|<MATH>\xi\;</Math>}}, która zmieniają się względem czasu z częstotliwością &Omega;: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>h_{xx}=A\cos(\Omega t)\;\;</MATH>|7.62}}|2={{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\varphi)\;\;</MATH>|7.63}}}} Powyższe dwa równania są prawdziwe, bo można tak wybrać przesunięcie fazowe oraz &Omega;, by były spełnione równania ruchu dwóch kulek w polu grawitacyjnym, których drgania kulek maja się jak promieniowanie grawitacyjne. Podstawiamy za h{{Sub|xx}} równania fali grawitacyjnej {{LinkWzór|7.62}} i przemieszczenia harmonicznego kulek {{LinkWzór|7.63}}, którego zmianę powoduje fala grawitacyjna (promieniowanie grawitacyjne) o takiej samej częstotliwości co fala grawitacyjna, do równości {{LinkWzór|7.61}}, co w rezultacie ono przyjmuje postać: {{CentrujWzór|<MATH>-\Omega^2 R\cos(\Omega t+\varphi)+\omega_0^2 R\cos(\Omega t+\varphi)-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.64}} Co po krótkich przestawianiach wyrazów w tożsamości {{LinkWzór|7.64}}, czyli grupując wyrazy stojące przy funkcji sinus i kosinus: {{CentrujWzór|<MATH>\cos(\Omega t+\varphi)R\left[-\Omega^2+\omega_0^2\right]-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.65}} Wykorzystując z własności kosinusów i sinusów sumy składników pod tymi funkcjami trygonometrycznymi możemy zapisać {{LinkWzór|7.65}} rozwijając w odjemnej naszej tożsamości funkcji kosinus i odjemniku funkcję sinus: {{CentrujWzór|<MATH>\left(\cos(\Omega t)\cos\varphi-\sin(\Omega t)\sin\varphi\right)R(\omega_0^2-\Omega^2)-2\gamma R\Omega\left(\cos(\Omega t)\sin\varphi+\sin(\Omega t)\cos\varphi\right)=\;</MATH>{{Br}} <MATH>={{1}\over{2}}l_0A\Omega^2\cos(\Omega t)\;</MATH>|7.66}} Grupujemy wyrazy z kosinusami i sinusami, których argumentem jest &Omega; t we wzorze {{LinkWzór|7.66}} i aby ona zachodziła dla dowolnych chwili czasu t, to nasze wspomniane równanie przechodzi w dwa równania równoważne pierwotnemu. {{ElastycznyWiersz|1={{CentrujWzór|<MaTH>(\omega_0^2-\Omega^2)R\cos\varphi-2\gamma R\Omega\sin\varphi={{1}\over{2}}l_0 A\Omega^2\;</MATH>|7.67}}|2={{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)R\sin\varphi-2\gamma R\Omega\cos\varphi=0\;</MATH>|7.68}}}} Z tożsamości uzyskanej w punkcie {{LinkWzór|7.68}} możemy wyznaczyć tanges przesunięcia fazowego kulek względem fali promieniowania grawitacyjnego, który jak udowodnimy zależy tylko od częstotliwości fali grawitacyjnej &Omega; i częstotliwości własnej detektora fali grawitacyjnej: {{CentrujWzór|<MATH>\operatorname{tg}(\varphi)={{2\gamma\Omega}\over{\Omega^2-\omega_0^2}}\;\;</MATH>|7.69}} Pomnóżmy równanie {{LinkWzór|7.67}} przez wyrażenie {{Formuła|<MATH>2\gamma\Omega\;\;</MATH>}}, czyli podwojony iloczyn stałej tłumienia &gamma; i częstotliwości drgań fali grawitacyjnej, wtedy dostajemy tożsamość: {{CentrujWzór|<MATH>(\omega_0-\Omega^2)2\gamma\Omega R\cos\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\;\;</MATH>|7.70}} a także wykorzystując również tożsamość {{LinkWzór|7.68}}, którą podstawiamy do tożsamości {{LinkWzór|7.70}}, wtedy oczywiście dostajemy wniosek: {{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)(\omega_0^2-\Omega^2)R\sin\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\Rightarrow \left[(\omega_0^2-\Omega^2)^2+4\gamma^2\Omega^2\right]R\sin\varphi=-l_0A\gamma\Omega^3\;</MATH>|7.71}} Policzmy teraz czemu jest równa funkcja sin&phi; wyrażając kwadrat kotangensa względem kwadratu funkcji sinus &phi;, korzystając z definicji tangensa kąta, który jest ilorazem sinusa kąta &phi; przez jego kosinus tego samego kąta, i jeszcze korzystając z definicji jedynki trygonometrycznej, możemy napisać: {{CentrujWzór|<math>\operatorname{ctg}^2\varphi={{\cos^2\varphi}\over{\sin^2\varphi}}= {{1-\sin^2\varphi}\over{\sin^2\varphi}}=\sin^{-2}\varphi-1\Rightarrow \sin^{-2}\varphi=\operatorname{ctg}^{2}\varphi+1\Rightarrow \sin^2\varphi={{1}\over{\operatorname{ctg}^2\varphi+1}}\;</MATH>|7.72}} Ze wzoru na <MATH>\sin^2\varphi\;</MATH> w ostatnim rozważanym wyrażeniu {{LinkWzór|7.72}} przechodzimy do wzoru na funkcję trygonometryczną dla naszego zadania: {{CentrujWzór|<MATH>\sin^2\varphi={{1}\over{1+({{\Omega^2-\omega_0^2)}\over{2\gamma\Omega}})^2}}= {{1}\over{{{4\gamma^2\Omega^2+(\Omega^2-\omega_0^2)^2}\over{4\gamma^2\Omega^2}}}}= {{4\gamma^2\Omega^2}\over{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}\;</MAth>|7.73}} Równość {{LinkWzór|7.73}} możemy spierwiastkować obustronnie, tak by po lewej stronie wspomnianego równania otrzymać sam sinus kata &phi;, wtedy otrzymujemy wyrażenie: {{CentrujWzór|<MATH>\sin\varphi={{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.74}} Wyznaczony wzór na funkcję sin&phi; zapisanej i udowodnionej w punkcie {{LinkWzór|7.74}} podstawiamy do wzoru uzyskanego wcześniej w punkcie {{LinkWzór|7.71}}, wtedy można otrzymać tożsamość, którą poddamy dalszej obróbce: {{CentrujWzór|<MATH>\left[(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2\right]R{{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}=-l_0A\gamma\Omega^3\Rightarrow 2\gamma\Omega R\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}=-l_0A\gamma\Omega^3\;</MATH>|7.75}} Zatem amplituda drgań dla oscylatora harmonicznego tłumionego jest napisana wedle wzoru poniżej, która jest zależna od częstotliwości kołowej drgań fali grawitacyjnej &Omega;, częstotliwości własnej układu własnego &omega;{{Sub|0}} i współczynnika tłumienia &gamma;: {{CentrujWzór|<MATH>R=-{{{{1}\over{2}}l_0A\Omega^2}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.76}} Jest ona zależna od częstotliwości rezonansowej &omega;{{Sub|0}} i współczynnika pełniącego rolę współczynnika tłumienia &gamma;. Energia układu (oscylatora harmonicznego tłumionego) jest zdefiniowana jako energia kinetyczna obu kulek i energii potencjalnej sprężyny w polu grawitacyjnym, bo tutaj sprężynka znajduje się w polu promieniowania grawitacyjne oddziałujące ze sprężynką. {{CentrujWzór|<MATH>E={{1}\over{2}}m(x_{1,0})^2+{{1}\over{2}}m(x_{2,0})^2+{{1}\over{2}}k\xi^2\;</MATH>|7.77}} Jeśli dodamy do siebie dwa równania układu równań {{LinkWzór|7.57}} do siebie, wtedy otrzymamy równanie różniczkowe poniżej i założymy że nasz układ był w spoczynku, zanim dodarła do naszego badanego układu fala grawitacyjna, czyli przyjmujemy, że C=0, który jest warunkiem brzegowym: {{CentrujWzór|<MATH>(x_2+x_1)_{,0,0}=0\Rightarrow x_{2,0}+x_{1,0}=C\Rightarrow x_{2,0}=-x_{1,0}+C\;</MATH>|7.78}} Parametr {{LinkWzór|7.58}} można zapisać, jeśli przyjmiemy założenie, że mamy do czynienia z słabym polem grawitacyjnym w postaci fal grawitacyjnym, wtedy czwarty człon w nim możemy pominąć: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}l_0\simeq \xi=x_2-x_1-l_0\Rightarrow \xi_{,0}\simeq x_{2,0}-x_{1,0}=2x_{2,0}</MATH>|7.79}} zatem wedle obliczeń {{LinkWzór|7.79}}, które dokonaliśmy w tymże punkcie i dla naszych warunków brzegowych możemy napisać tożsamość między prędkościami dwóch kulek. {{CentrujWzór|<MATH>x_{1,0}=-x_{2,0}=-{{1}\over{2}}\xi_{,0}\;</MATH>|7.80}} Energia układu {{LinkWzór|7.77}} po wykorzystaniu dwóch podstawień do którego będziemy wykorzystywali obliczenia {{LinkWzór|7.80}}, które wynika z punktu przestawionego wzorem {{LinkWzór|7.79}}, wtedy ową energię chwilową zapisujemy wedle schematu poniżej, która jest zależna od pochodnej zmiennej &xi; względem czasu i samego przesunięcia &xi;, którego to &xi; jest to przesunięcie od położenia równowagi obu rozważanych w tym zadaniu kulek układu fizycznego: {{CentrujWzór|<MATH>E={{1}\over{2}}m(-{{1}\over{2}}\xi_{,0})^2+{{1}\over{2}}m({{1}\over{2}}\xi_{,0})^2+ {{1}\over{2}}\omega_0^2({{1}\over{2}}\xi)^2\Rightarrow E={{1}\over{4}}m\left(\xi^2_{,0}+\omega_0^2\xi^2\right)\;</MATH>|7.81}} Wykorzystujemy definicję parametru &xi; napisanej w punkcie {{LinkWzór|7.63}}, które to podstawiamy do równości {{LinkWzór|7.81}} na energię układu, wtedy owe równanie ma wygląd: {{CentrujWzór|<MATH>E={{1}\over{4}}m\left(R^2\Omega^2\sin^2(\Omega t+\varphi)+\omega_0^2R^2\cos^2(\Omega t+\varphi)\right)\;</MATH>|7.82}} Wiemy jednak, że średnia wartość kwadratu kosinusa z definicji wartości średniej jest równa połowie jedynki względem czasu t, zatem co zapisujemy wzorem poniżej. Widzimy, że powyższa równość jest zależna od częstotliwości fali grawitacyjnej &Omega; i przesunięcia fazowego &phi;. {{CentrujWzór|<MATH>\langle \cos^2(\Omega t+\varphi)\rangle=\langle\sin^2(\Omega t+\varphi)\rangle={{1}\over{2}}\;</MATH>|7.83}} Średnia wartość energii oscylatora wedle wartości chwilowej {{LinkWzór|7.81}}, korzystając już z obliczonej wartości średniej kwadratu kosinusa, to średnią energię drgań układu dwóch kulek i sprężyny zapisujemy wedle: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8}}mR^2(\Omega^2+\omega_0^2)\;</MATH>|7.84}} Amplituda rezonansowa nazywamy takie R w tożsamości {{LinkWzór|7.76}}, dla które zachodzi, gdy &omega;{{Sub|0}}=&Omega;, wtedy dochodzimy do wniosku, że mamy amplitudę rezonansową drgań przy udziale fal grawitacyjnych: {{CentrujWzór|<MATH>R={{{{1}\over{2}}l_0\Omega^2 A}\over{\sqrt{4\Omega^2\gamma^2}}}= {{{{1}\over{2}}l_0\Omega^2 A}\over{2\Omega\gamma}}={{1}\over{4}}l_0 A{{\Omega}\over{\gamma}}\;</MATH>|7.85}} Energia rezonansowa średnia {{LinkWzór|7.84}} na podstawie amplitudy rezonansowej układu dwóch kulek połączonej sprężynką policzonej w punkcie {{LinkWzór|7.85}}, do której to podstawimy do wzoru na średnią energię: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8\cdot 16}}ml_0^2A^2\left({{\Omega}\over{\gamma}}\right)^2 2\Omega^2= {{1}\over{8\cdot 8}}ml_0^2A^2\Omega^2\left({{\Omega}\over{\gamma}}\right)^2= {{1}\over{64}}ml_0^2\Omega^2A^2\left({{\Omega}\over{\gamma}}\right)^2 \;</MATH>|7.86}} Dobrocią oscylatora harmonicznego tłumionego nazywamy wielkość zdefiniowanej wedle sposobu poniżej, z której ją wyznaczymy dla częstotliwości rezonansowej, tzn. gdy <MATH>\Omega=\omega_0\;</Math> {{CentrujWzór|<MATH>Q={{\omega_0}\over{2\gamma}}\Rightarrow 2Q={{\Omega}\over{\gamma}}\;</MATH>|7.87}} Energia średnia rezonansowa {{LinkWzór|7.86}} w której podstawimy za stosunek {{Formuła|<MaTH>{{\Omega}\over{\gamma}}\;</MATH>}} podwojoną dobroć Q, czyli z korzystamy ze wzoru {{LinkWzór|7.87}}, zatem tą pierwszą wielkość fizyczną możemy napisać sposobem: {{CentrujWzór|<MATH>{\langle E\rangle}_{rezonas}={{1}\over{16}}ml_0\Omega^2A^2Q^2\;</MATH>|7.88}} I co kończy nasze rozważania na temat detekcji fal grawitacyjnych. == Tensorowe twierdzenie wirialne a lokalna zasada zachowania energii == Naszym wzorem, które zechcemy udowodnić jest twierdzenie łączący tensor gęstości energii o wskaźnikach zerowych górnych (lewa strona) po przez wyrażenie z tensorem gęstości energii o wskaźnikach górnych o wartościach przestrzennych: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV=2\int T^{lm}dV\;</MATH>|7.89|Obramuj}} Powyższy wzór jest wzorem, w której jest dokonane całkowanie po pewnej objętości, której ogranicza pewna powierzchnia zamknięta, na której powierzchni tensor gęstości energii jest równa zero, bo tak zamknięta powierzchnia jest poza obszarem, w której tensor gęstości energii jest różny od zera. Dowód powyższego lematu opiera się na zasadzie zachowawczości tensora napięć-energii dla słabego pola grawitacyjnego {{LinkWzór|1.49|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>{T^{\mu\nu}}_{,\nu}=0\Rightarrow {T^{\mu 0}}_{,0}+{T^{\mu k}}_{,k}=0\Rightarrow {T^{\mu 0}}_{,0}=-{T^{\mu k}}_{,k}\;</MATH>}} Zatem przejdźmy do głównego nurtu dowodu wiedząc, że T{{Sup|&mu;&nu;}} jest równe zero na zewnątrz źródła i będziemy korzystać z symetryczności tensora gęstości energii. {{CentrujWzór|<mATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= {{1}\over{c}}{{d}\over{dt}}\int {T^{00}}_{,0}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int {T^{0k}}_{,k}x^lx^mdV \;</MATH>|7.90}} Rozwińmy tożsamość występująca we wzorze {{LinkWzór|7.90}}, zatem korzystając z twierdzenia o pochodnej iloczynu trzech składników można napisać tożsamość: {{CentrujWzór|<MaTH>(T^{0k}x^lx^m)_{,k}={T^{0k}}_{,k}x^lx^m+T^{0k} {x^l}_{,k}x^m+T^{0k}x^l{x^m}_{,k}= {T^{0k}}_{,k}x^lx^m+T^{0k}{\delta^l}_{k}x^m+T^{0k}x^l{\delta^m}_{k} ={T^{0k}}_{,k}x^lx^m+T^{0l}x^m+\;</MATH>{{Br}}<MATH>+T^{0m}x^l\Rightarrow {T^{0k}}_{,k}x^lx^m=(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\;</MaTH>|7.91}} Wyrażenie końcowe zapisane w rozważanej powyżej w punkcie {{LinkWzór|7.91}} możemy podstawić do tożsamości fizycznej {{LinkWzór|7.90}} wynikającej z zachowalności energii i pędu, wtedy dostajemy równanie: {{CentrujWzór|<MaTH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int\left[(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\right]dV=-{{1}\over{c}}{{d}\over{dt}}\int T^{0k}x^lx^mdS_k+\int {T^{0l}}_{,0}x^mdV+\;</MATH>{{Br}}<MATH>+\int {T^{0m}}_{,0}x^ldV=-\int {T^{kl}}_{,k}x^mdV-\int {T^{km}}_{,k}x^ldV \;</MATH>|7.92}} W powyższym rozpisaniu korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa zamiany całek objętościowych, w której jest całkowanej po ściśle określonej nam objętości, na całkę powierzchniową, w której jest całkowanie po powierzchni zamkniętej ograniczającą wcześniej wprowadzoną objętość. Następnym krokiem jest udowodnienie poniżej tożsamości korzystając z twierdzenia z pochodnej iloczynu znanej z analizy: {{CentrujWzór|<MATH>(T^{kl}x^m)_{,k}dV={T^{kl}}_{,k}x^m+T^{kl}{\delta^m}_{k}={T^{kl}}_{,k}x^m+T^{ml}\;</math>|7.93}} Możemy wykorzystać tożsamość {{LinkWzór|7.93}} do dalszej części dowodu {{LinkWzór|7.92}}, wiedząc jednocześnie że pierwsza i trzecia ciałka jest równa zero przy wykorzystaniu twierdzenia Ostrogradzkiego-Gauusa, która jest całką po powierzchni zamkniętej, którego to T{{Sub|&alpha;&beta;}} jest równa zero na tej powierzchni, wtedy dochodzimy do wniosku: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -\int (T^{kl}x^m)_{,k}dV+\int T^{ml}dV-\int (T^{km}x^l)_{,k}dV+\int T^{lm}dV=\int T^{ml}dV+T^{lm}dV=2\int T^{ml}dV\;</MaTH>|7.94}} W powyższym dowodzie znów korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa, w której na jej powierzchni całkowanej panuje zerowa wartość tensora gęstości energii. Co kończy dowód twierdzenia {{LinkWzór|7.89}}. == Wytwarzanie fal grawitacyjnych == Fala grawitacyjna rozchodząca się od niezerowego źródła, w której gęstość materii poza źródłem jest równa zero, a także ciśnienie jest zaniedbywalnie małe, zatem tensor gęstości energii dla punktu poza źródłem zapisujemy wedle: {{CentrujWzór|<MATH>T^{\alpha\beta}=0\;</Math>|7.95}} Zatem biorąc to do równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}} i z przybliżeniem słabości pola grawitacyjnego tensor Einsteina wedle końcowego przedstawienia {{LinkWzór|5.17|Słabe_pola_grawitacyjne}}, jeśli będziemy wykorzystywać {{LinkWzór|7.95}}, zapisujemy wtedy go łącząc to z prawem grawitacji Einsteina: {{CentrujWzór|<MATH>G^{\alpha\beta}=\kappa T^{\alpha\beta}\Rightarrow G^{\alpha\beta}=0\Rightarrow {{1}\over{2}}\square\overline{h}_{\alpha\beta}=0\;</MATH>|7.96}} Rozwiązaniem równań grawitacji Einsteina dla słabego pola grawitacji {{LinkWzór|7.96}} jest wyrażenie {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, która jest zależna od stałej częstotliwości kołowej &Omega; i czasu t: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=B_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.97}} Aby sprawdzić jakie B{{Sub|&alpha;&beta;}} spełnia równanie {{LinkWzór|7.96}} dla odpowiedzi {{LinkWzór|7.97}}, to po podstawieniu naszego rozwiązania do rozważanego równania różniczkowego, mamy: {{CentrujWzór|<MATH>\square B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=0\;</MATH>|7.98}} Można udowodnić, że rozwiązanie w {{Formuła|<MATH>B_{\alpha\beta}\;</MATH>}} równania różniczkowego {{LinkWzór|7.98}} jest rozwiązanie w postaciach zależnych od dwóch niezależnych stałych występujące w dwóch składnikach osobno: {{CentrujWzór|<MaTH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\;</MATH>|7.99}} Sprawdźmy czy {{LinkWzór|7.99}} jest rzeczywiście jest rozwiązaniem równania {{LinkWzór|7.98}}, zatem jeśli obierzemy definicję kwadratu &Delta;=&nabla;{{Sup|2}} we współrzędnych kulistych, zatem operator &Delta; zapisujemy w postaci: {{CentrujWzór|<MATH>\Delta=\nabla^2={{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda</MATH>}} to policzmy, czy rozwiązanie {{LinkWzór|7.99}} jest poprawnym rozwiązaniem dla równania różniczkowego {{LinkWzór|7.98}} dla promienia od źródła, który się znajduje dla r=0, wtedy przejdźmy do właściwej idei dowodu: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda\right) \left({{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\right)=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+\;</MATH>{{Br}}<MATH>+\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}</MATH>|7.100}} Wyznaczmy pierwszy składnik w {{LinkWzór|7.100}}, czyli ile jest on równy: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}(r)}\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}={{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}\left(r{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\right)= {{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}-{{\Omega^2}\over{c^2}}{{1}\over{r}}A_{\alpha\beta}e^{i{{\Omega}\over{c}}r}=0</MATH>|7.101}} zatem ten nasz pierwszy składnik w {{LinkWzór|7.100}} wedle {{LinkWzór|7.101}} jest równy zero, dla drugiego wyrazu mamy podobnie, a dowód przebiega analogicznie jak dla {{LinkWzór|7.101}}, zatem dochodzimy do wniosku, że rozwiązanie {{LinkWzór|7.99}} jest rozwiązaniem {{LinkWzór|7.98}} poprawnym. W rozwiązaniu w {{LinkWzór|7.99}} wybierzmy tylko pierwszy wyraz, a w przypadku drugiego wyrazu stałą w nim występującą wyzerujmy, bo to równanie ma dwie niezależne stałe w dwóch niezależnych składnikach, bo tak robimy, że interesuje nasz rozwiązania rozchodzące się od źródła: {{CentrujWzór|<MATH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\;</MATH>|7.102}} Wyznaczmy wyrażenia pomocnicze, które będą w przyszłości nam potrzebne. Obierzmy kulę, która ma promień &epsilon;, którego promień jest zaniedbywalnie mały. Zakładamy, że źródło jest niezerowe tylko wewnątrz sfery o promieniu podanym wyżej, zatem przejdźmy do dzieła. {{CentrujWzór|<MATH>\lim_{\epsilon\rightarrow 0}\oint {{\Omega^2}\over{c^2}}B_{\alpha\beta}d^3x\leq{{\Omega^2}\over{c^2}}(B_{\mu\nu})_{max}d^3x=\lim_{\epsilon\rightarrow 0}{{\Omega^2}\over{c^2}}(B_{\alpha\beta})_{max}{{4}\over{3}}\pi\epsilon^3=0</MATH>|7.103}} Pozostało nam jeszcze do obliczenia całkę z działania operatora &nabla; względem infinitezymalnej objętości, którego to B{{Sub|&alpha;&beta;}} jest zależna od trzech współrzędnych i czasu w kartezjańskim układzie współrzędnych, która jest przestrzenią zanurzoną w czasoprzestrzeni czterowymniarowej: {{CentrujWzór|<MATH>\int \nabla^2B_{\alpha\beta}d^3x=\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}B_{\alpha\beta}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}{{1}\over{r}}A_{\alpha\beta}e^{-i{{\Omega}\over{c}}r}=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2A_{\alpha\beta}\left[ |-{{1}\over{r^2}}e^{-i{{\Omega}\over{c}}r}-{{1}\over{r}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c}}r}|_{r=\epsilon} \right]= \lim_{\epsilon\rightarrow 0}\left[\left(-4\pi\epsilon^2A_{\alpha\beta}\right){{1}\over{\epsilon^2}} e^{-i{{\Omega}\over{c}}\epsilon}-4\pi\epsilon^2{{1}\over{\epsilon}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c }}\epsilon}\right]=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}\left(-4\pi-4\pi\epsilon i {{\Omega}\over{c}}\right)A_{\alpha\beta}e^{-i{{\Omega}\over{c}}\epsilon}=-4\pi A_{\alpha\beta}</MATH>|7.104}} Następnym wyrażeniem pomocniczym, która korzysta z udowodnionych tożsamości, którego to pierwsza jest równa zero, a druga jest równa stałej tożsamości, czyli za pomocą tożsamości {{LinkWzór|7.103}} i {{LinkWzór|7.104}} możemy wyznaczyć wyrażenie: {{CentrujWzór|<MATH>\int\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}dV=-4\pi A_{\alpha\beta}\;</MATH>|7.105}} Równaniem grawitacji, którego to równanie jest zapisywane w punkcie {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}}, wewnątrz źródła jest opisane wedle wzoru ze stałą {{Formuła|<MATH>\kappa\;</MATH>}}, która jest równa {{LinkWzór|5.46|Słabe_pola_grawitacyjne}}, którego to zapis jest za pomocą tensora napięć-energii i tensora {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, dla słabego pola grawitacyjnego jest wyrażona: {{CentrujWzór|<MATH>{{1}\over{2}}\square\overline{h}_{\alpha\beta}={{8\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\;</MATH>|7.106}} Przecałkujmy wyrażenie {{LinkWzór|7.106}} obustronnie i wiedząc, że mamy definicję rozwiązania {{LinkWzór|7.97}} i w nim stałej {{LinkWzór|7.102}} dla rozmiarów kuli dążącej do prawie do zera, bo nasze źródło jest prawie punktowe: {{CentrujWzór|<MATH>(-4\pi A_{\alpha\beta})e^{-i\Omega t}={{16\pi G}\over{c^4}}\int T_{\alpha\beta}dV\;</MaTH>|7.107}} zatem możemy powiedzieć, że tensor A{{Sub|&alpha;&beta;}} jest zapisany jako całka z iloczynu tensora energii i napięć przez funkcję eksponencjalną , którego argumentem jest funkcja zależna od częstotliwości fali grawitacyjnej, a przed tą naszą rozważaną całką występują stałe mówiące o stałej grawitacji i prędkości światła c: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}\int T_{\alpha\beta}e^{i\Omega t}dV\;</MATH>|7.108}} Jeśli oznaczymy definicję gęstości tensora energii poprzez amplitudę drgań tensora gęstości energii i częstotliwość kołowa tych drgań i całkę występującą po prawej stronie {{LinkWzór|7.108}} poprzez definicję {{LinkWzór|7.109}}, to możemy zdefiniować wyrażenie na J{{Sub|&alpha;&beta;}} jako całkę po pewnej objętości zamkniętej po amplitudzie drgać omawianego tensora gęstości energii: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>T_{\alpha\beta}=S_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.109}}|2={{CentrujWzór|<MATH>J_{\alpha\beta}=\int T_{\alpha\beta}e^{i\Omega t}\Rightarrow J_{\alpha\beta}=\int S_{\alpha\beta}dV\;</maTH>|7.110}}}} Wtedy stałą A{{Sub|&alpha;&beta;}} (po lewej stronie w {{LinkWzór|7.108}}) i wedle definicji tensora gęstości energii poprzez stałą amplitudy {{LinkWzór|7.109}} i wykorzystując przy tym fakt, że w definicji tensora J{{Sub|&alpha;&beta;}} zapisanej w punkcie {{LinkWzór|7.110}}, zatem tensor A{{Sub|&alpha;&beta;}} jest zapisany na podstawie tychże danych w zależności od tensora J{{Sub|&alpha;&beta;}} w postaci: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}\;</MATH>|7.111}} Jest to amplituda fal grawitacyjnych występująca we wyrażeniu {{LinkWzór|7.102}} i wyrażona jest przez całkę z amplitudy drgań tensora gęstości energii. Rozwiązanie dla słabych pól grawitacyjnych wykorzystując wzór {{LinkWzór|7.111}}, przyjmuje postać: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}{{e^{i({{\Omega}\over{c}}r-\Omega t)}}\over{r}}\;</MATH>|7.112}} Jest to rozwiązanie dla fal grawitacyjnych wytwarzanych przez źródła prawie punktowe i nierelatywistyczne, które wytwarzają te właśnie fale zwane promieniowaniem grawitacyjnym. === Właściwości fali grawitacyjnej dla jednego wskaźnika zerowego górnego === Jeśli wykorzystamy równanie {{LinkWzór|7.110}}, którego wielkość jest całką amplitudy po infinitezymalnej objętości tensora gęstości energii oraz korzystając z definicji tensora gęstości energii dla źródła fal grawitacyjnych {{LinkWzór|7.109}}, co można wykorzystać mnożąc {{LinkWzór|7.110}} przez niezerowe wyrażenie {{Formuła|<MATH>e^{-i\Omega t}\;</MATH>}}: {{CentrujWzór|<MATH>J_{\mu\nu}e^{-i\Omega t}=\int T_{\alpha\beta}dV\;</MATH>|7.113}} I jeśli zróżniczkujemy obie strony wyrażenia {{LinkWzór|7.113}} względem czasu w sekundach, ale przedtem podnosząc wszystkie wskaźniki do góry i biorąc jednocześnie drugi wskaźnik jako zerowy, wtedy mamy: {{CentrujWzór|<MaTH>-i\Omega J^{\mu 0}e^{-i\Omega t}=\int {T^{\mu 0}}_{,0}dV=\int {T^{\mu k}}_{,k}dV=\oint T^{\mu k}n_kdS=0\;</MaTH>|7.114}} Powyższe równanie zachodzi, bo tensor gęstości energii po za źródłem fal grawitacyjnych jest równy zero, a my całkujemy po powierzchni, która otacza nasze źródło naszego promieniowania. W powyższych obliczeniach przyjęliśmy, że tensor gęstości energii na zewnątrz źródła jest równy zero na zewnątrz badanego źródła, bo wytwarzać fal grawitacyjnych jest bardzo mały, otrzymujemy: {{CentrujWzór|<maTH>J^{\mu 0}=0\Rightarrow \overline{h}^{\mu 0}=0\;</MATH>|7.115}} Dalsze zerowania się tensora metrycznego {{Formuła|<MATH>\overline{h}^{\mu \nu}\;</MATH>}} wynika stąd, gdy skorzystamy z symetryczności tensora {{LinkWzór|7.94}}, a także wynikającego z symetryczności tensora J{{Sup|&mu;&nu;}} {{LinkWzór|7.110}}, wynika poprzez to {{LinkWzór|7.112}} symetryczność tensora {{Formuła|<MATH>\overline{h}^{\mu\nu}\;</MATH>}}. === Tensor momentu kwadrupolowego rozkładu masy === Tensor momentu kwadrupolowego rozkładu masy definiujemy poprzez tensor gęstości energii o wskaźnikach dwóch górnych i zerowych i wyrazimy ją poprzez funkcję fali o częstotliwości kołowej &Omega; (eksponens z argumentu i&Omega;t) i przez tensor D{{Sup|lm}}: {{CentrujWzór|<MATH>I^{lm}=\int T^{00}x^lx^mdV=D^{lm}e^{-i\Omega t}\;</MATH>|7.116}} Jeśli zachodzi tożsamość {{LinkWzór|7.113}}, to na podstawie tożsamości zdefiniowanej w {{LinkWzór|7.89}}, możemy napisać, dokonując pewnych przekształceń i wykorzystania wzoru {{LinkWzór|7.116}} dla wskażników l,m=1,2,3 w sposób: {{CentrujWzór|<MATH>J^{lm}e^{-i\Omega t}=\int T^{lm}dV\Rightarrow J^{lm}e^{-i\Omega t}={{1}\over{2c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV\Rightarrow J^{lm}e^{-i\Omega t}=-{{\Omega^2}\over{2c^2}}D^{lm}e^{-i\Omega t}\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow J^{lm}=-{{\Omega^2}\over{2c^2}}D^{lm}\Rightarrow J_{lm}=-{{\Omega^2}\over{2c^2}}D_{lm}\;</MATH>|7.117}} Rozwiązanie {{LinkWzór|7.112}} na podstawie obliczeń {{LinkWzór|7.116}}, wykorzystując fakt {{LinkWzór|7.115}}, który mówi, że jedynymi elementami tensora poprawki do tensora metrycznego Minkowskiego w postaci fal grawitacyjnych {{Formuła|<MaTh>\overline{h}_{\alpha\beta}\;</MaTh>}} są równe zero, gdy zachodzi dla &alpha;=0 lub &beta;=0. Zatem wskaźniki przy naszym tensorze są równe 1,2,3, zatem dochodzimy wtedy do wniosku, że zachodzi ogólne rozwiązanie dla fal grawitacyjnych wytwarzane przez źródła prawie punktowe o niezerowych elementach: {{CentrujWzór|<MATH>\overline{h}_{lm}={{2G\Omega^2}\over{c^6}}D_{lm}{{e^{i\left({{\Omega}\over{c}}r-\Omega t\right)}}\over{r}}\;</MaTH>|7.118}} Tensory poprawki do tensora metrycznego Minkowskiego możemy obliczyć ze wzoru {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, gdy mamy już policzone {{LinkWzór|7.118}}. === Układ dwóch kulek jako układ prostego oscylatora === Widzimy, że na podstawie wzorów {{LinkWzór|7.116}}, że gdy I{{Sup|lm}}(t), to dla t=0 ono jest równe D{{Sup|lm}}, to wtedy mając cechowanie, w której dwuwskaźnikowe tensory krzywizny fali grawitacyjnej {{LinkWzór|7.2}}, w której w pewnym cechowaniu tensor amplitudy jest równy {{LinkWzór|7.25}}, wtedy tensory {{LinkWzór|7.118}} w tym cechowaniu możemy przepisać: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}^{TT}_{zi}=0\;</MATH>|7.119}}|2={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{G\Omega^2}\over{c^6}}\left(\not{I}_{xx}-\not{I}_{yy}\right){{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.120}}|3={{CentrujWzór|<MATH>\overline{I}_{xy}^{TT}=2{{G\Omega^2}\over{c^6}}\not{I}_{xy}{{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.121}}}} Przy powyższych uwagach wprowadziliśmy tensor bezśladowy z definiowany w oparciu o tensor I{{Sup|lm}} {{LinkWzór|7.116}}: {{CentrujWzór|<MATH>\not{I}_{lm}=I_{lm}-{{1}\over{3}}\delta_{lm}{I^l}_l\;</MATH>|7.122}} Rozważmy teraz falę emitowaną przez prosty oscylator fal grawitacyjnych, których wykrywamy, za pomocą detektora pokazywanego w punkcie [[#Detekcja fal grawitacyjnych|Detekcja fal grawitacyjnych]]. Ten detektor też wytwarza fale grawitacyjne, w których obie masy drgają z częstotliwością &omega; i z amplitudą A wokół średniego położenia równowagi. W tym przykładzie detektora fal mamy tylko składową I{{Sub|xx}} nierównej zero, tą składową możemy policzyć mając na uwadze harmoniczne drgania: {{CentrujWzór|<MATH>I_{xx}=mc^2\left[(x_1)^2+(x_2)^2\right]=mc^2\left[\left(-{{1}\over{2}}l_0-A\cos\omega t\right)^2+\left({{1}\over{2}}l_0+A\cos\omega t\right)^2\right]=\;</MATH>{{Br}}<MATH> =mc^2{{1}\over{4}}l_0^2+A^2m\cos^2\omega t+l_0mc^2Acos\omega t+{{1}\over{4}}ml_0^2+A^2mc^2\cos^2\omega t+l_0Amc^2\cos\omega t=\;</math>{{Br}}<math>={{1}\over{2}}mc^2l_0^2+2mA^2\cos^2\omega t+2l_0Amc^2\cos\omega t={{1}\over{2}}mc^2l_0^2+2mA^2+mc^2A^2\cos 2\omega t+2l_0Amc^2\cos\omega t</MATH>|7.123}} Zdefiniujmy teraz elementy tensora {{LinkWzór|7.122}} mając na uwadze element tensora I{{Sub|xx}} {{LinkWzór|7.123}} przy częstotliwości kołowej &omega;, czyli wykorzystując czwarty wyraz powyższych końcowych obliczeń możemy zdefiniować elementy tensora {{LinkWzór|7.122}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=I_{xx}-{{1}\over{3}}{I^l}_{l}={{2}\over{3}}I_{xx}={{4}\over{3}}c^2ml_0Ae^{-i\omega t}\\ \not{i}_{yy}={I}_{zz}-{{1}\over{3}}I_{xx}={{1}\over{3}}I_{xx}=-{{2}\over{3}}ml_0c^2Ae^{-i\omega t} \end{cases}\;</MATH>|7.124}} Zdefiniujmy teraz tensory {{LinkWzór|7.119}}, {{LinkWzór|7.120}} i {{LinkWzór|7.121}} w oparciu o tensor {{LinkWzór|7.124}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}=-\overline{h}_{yy}={{2mG\omega^2l_0A}\over{c^4}}{{e^{i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.125}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}=0\;</MATH>|7.126}}}} Jeśli uwzględnimy człon trzeci w końcowych obliczeniach {{LinkWzór|7.123}}, wtedy wzór na tensor {{Formuła|<MATH>\overline{I}_{xx}\;</MATH>}} i {{Formuła|<MATH>\overline{I}_{yy}\;</MATH>}}, który powstaje z {{LinkWzór|7.120}} po zastąpieniu &Omega; przez 2&omega;, wtedy otrzymujemy: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{4mG\omega^2A^2}\over{c^4}}{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.127}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=0\;</MATH>|7.128}}}} Całkowite promieniowanie wytwarzane przez prosty oscylator jest częścią rzeczywistą sumy składników, tzn. {{LinkWzór|7.125}} i {{LinkWzór|7.127}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}={{2mG\omega^2l_0}\over{c^4}}{{\cos\omega\left({{r}\over{c}}-t\right)}\over{r}}+{{4mG\omega^2A^2}\over{c^4}}{{\cos 2\omega\left({{r}\over{c}}-t\right)}\over{r}}\;</MATH>|7.129}} === Układ podwójny gwiazd o jednakowych masach === Wygodniejszym przykładem jest podwójmy układ gwiezdny dwóch jednakowych gwiazd, które krążą po orbicie o promieniu {{Formuła|<MATH>{{1}\over{2}}l_0\;</MATH>}}, czyli wokół wspólnego środka masy, wtedy równanie ruchu z drugiej zasady dynamiki dynamiki Newtona jest: {{CentrujWzór|<MATH>G{{m^2}\over{l_0^2}}=m\omega^2\left({{l_0}\over{2}}\right)\Rightarrow\omega=\left({{2Gm}\over{l_0^3}}\right)^{{{1}\over{2}}}\;</MATH>|7.130}} Położenia układu dwóch gwiazd opiszemy przy odpowiednich wyborze współrzędnych, przy czym oznaczamy przez jedynkę pierwszą gwiazdę, a przez dwójkę drugą gwiazdę: {{CentrujWzór|<MATH>\begin{cases} x_1(t)={{1}\over{2}}l_0\cos\omega t&y_1(t)={{1}\over{2}}l_0\sin\omega t\\ x_2(t)=-x_1(t)&y_2(t)=-y_1(t) \end{cases}\;</MATH>|7.131}} Wiedząc, ze tensor kwadrupolowy definiujemy sposobem I{{Sub|ik}}=mc{{Sup|2}}x_ix_k według {{LinkWzór|7.116}}, wtedy te elementy tego tensora możemy napisać dla podwójnego układu gwiazd, których ich współrzedne zdefiniowane są sposobem {{LinkWzór|7.131}}: {{CentrujWzór|<MATH>\begin{cases} I_{xx}=m c^2(x^2_1(t)+x^2_2(t))={{1}\over{2}}mc^2l_0^2\cos^2\omega t={{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{yy}=mc^2(y^2_1(t)+y^2_2(t))={{1}\over{2}}mc^2l_0^2\sin^2\omega t=-{{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{xy}=mc^2x_1(t)y_1(y)={{1}\over{8}}c^2ml_0^2\sin2\omega t\\ \end{cases}\;</MATH>|7.132}} Napiszmy teraz czemu są równe tensory {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} dla naszego badanego układu wykorzystując jego definicję {{LinkWzór|7.22}}, do którego wykorzystamy już policzone elementy tensora I{{Sub|lm}}, czyli I{{Sub|xx}}, I{{Sub|yy}} i I{{Sub|xy}}, wiedząc, że I{{Sup|l}}{{Sub|l}}=0 na podstawie definicji elementów I{{Sub|lm}} {{LinkWzór|7.132}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=-\not{I}_{yy}={{1}\over{4}}mc^2l_0^2e^{-2i\omega t}\\ \not{I}_{xy}={{1}\over{4}}imc^2l_0^2e^{-2i\omega t}\\ \end{cases}\;</MATH>|7.133}} Patrząc na wzory {{LinkWzór|7.120}} i {{LinkWzór|7.121}} dla &Omega;=2&omega; i na elementy tensora {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} {{LinkWzór|7.133}}, wtedy można zapisać wzory na promieniowanie rozchodzące się wzdłuż kierunku zetowego: {{CentrujWzór|<MATH>\begin{cases} \overline{h}_{xx}^{TT}=-\overline{h}_{yy}={{2mGl_0^2}\over{c^4}}\omega^2{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\\ \overline{h}_{xy}^{TT}={{2imGl_0^2\omega^2}\over{c^4}}{{e^{2i\omega({{r}\over{c}}-t)}}\over{r}}\end{cases}\;</MATH>|7.134}} === Równanie falowe i jego ścisłe rozwiązanie === Ścisłe rozwiązanie falowe dla fali grawitacyjnej dla źródła punktowego jest {{LinkWzór|7.112}}, weźmy sobie pewne źródło składające się ze źródeł punktowych, i w ten sposób fala grawitacyjna dociera pokolei do kolejnych punktów tego ośrodka w czasie t'=t-R/c, wtedy mamy wzór na elementy tensora {{Formuła|<MATH>\overline{h}_{\mu\nu}\;,</MATH>}} dla tego niepunktowego źródła: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}=-{{4G}\over{c^4}}\int J_{\mu\nu}(\vec{r},t^'){{e^{i\Omega\left({{R}\over{c}}-t\right)}}\over{R}}dV=-{{4G}\over{c^4}}\int {{T_{\mu\nu}(t^',x^i)}\over{R}}e^{i\Omega t^'}e^{i\Omega\left({{R}\over{c}}-t\right)}dV=-{{4G}\over{c^4}}\int{{T_{\mu\nu}\left(t-{{R}\over{c}},x^i\right)}\over{R}}d^3x\;</MATH>|7.135}} Weźmy sobie punkt w którym będziemy obserwować falę grawitacyjną, który jest bardzo daleko od źródła fali grawitacyjnej, wtedy powiemy: {{CentrujWzór|<MATH>\left[\sum_i(y^i)^2\right]^{{{1}\over{2}}}\equiv r>>\left[\sum_i(x^i)^2\right]^{{{1}\over{2}}}\;</MATH>|7.136}} Przy tak zachodzącym warunku {{LinkWzór|7.136}} możemy napisać, pod którą pod całką występuje tensor napięć energii a przed całką jest odwrotność promienia r, która wyszła z całki, która była pod postacią R, bo dla małego źródła r i R praktycznie się nie różnią: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}\simeq-{{4G}\over{c^4r}}\int T_{\mu\nu}d^3x\;</MATH>|7.137}} Do wzoru {{LinkWzór|7.137}} możemy wykorzystać {{LinkWzór|7.89}} i definicję tensora kwadrupolowego {{LinkWzór|7.116}}, wtedy tensor fali grawitacyjnej przyjmuje wtedy kształt: {{CentrujWzór|<MATH>\overline{h}_{lm}=-{{2G}\over{c^4r}}I_{lm,0,0}\left(t-{{r}\over{c}}\right)\;</MATH>|7.138}} Jeśli w prowadzimy cechowanie TT, to wtedy wzór na elementy tensora fali grawitacyjnej są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-{{G}\over{c^4r}}\left[\not{I}_{xx,00}\left(t-{{r}\over{c}}\right)-\not{I}_{yy,00}\left(t-{{r}\over{c}}\right)\right]\;</MATH>|7.139}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=-{{2G}\over{c^4r}}\not{I}_{xy,00}\left(t-{{r}\over{c}}\right)\;</MATH>|7.140}}}} == Energia przenoszona przez fale grawitacyjne wytwarzane przez układ oscylatorów grawitacyjnych == Przy pomocy wcześniejszych rozważań zorientowaliśmy się, że fale grawitacyjne przenoszą energię. Fale grawitacyjne unoszą energię od swych źródeł zabierając im energię. Rozważmy teraz ciało próbne, który nie wpływa na pole fali grawitacyjnej, czyli jego wpływ jest zaniedbywalny, wtedy takie podejście jest niekonsystentne, zatem jeśli przez ciało przechodzi fala grawitacyjna, to po przejściu jego przez układ mas, to fala grawitacyjna powinna być słabsza, tzn. układ ciał przez które przechodzi się fala grawitacyjna, sama staje się jego źródłem. Rozważmy teraz falę padającą o częstotliwości kołowej &omega;, to fala wyemitowana przez ciało jest emitowana z tą samą częstotliwością, więc fale przechodząca przez układ mas jest zatem sumą dwóch fal, tzn. fali padającej i fali wyemitowanej. Zobaczymy, że te dwie fale interferują one ze sobą dekonstruktywnie, obniżając wypadkową fali w tym kierunku. W innych kierunkach nie ma interferencji, i fale przechodzą jedno koło drugiej. === Fala grawitacyjna i jego strumień energii === Załóżmy, że mamy falę grawitacyjną wytwarzaną przez układ oscylatorów, który jest układem mas znajdujących się w pewnej płaszczyźnie, wtedy bardzo wygodnie jest rozważanie nie jako oscylatora harmonicznego wytwarzającego fale grawitacyjne, ale układ oscylatorów znajdujących się w płaszczyźnie dla z=0. Oscylatory w rozważanej płaszczyźnie są bardzo blisko siebie, więc je możemy uważać jako układ ciągły oscylatorów, i wprowadźmy przez &sigma; jako liczbę oscylatorów przez jednostkę powierzchni. Fala padająca na układ oscylatorów znajdujących się na płaszczyźnie przy cechowaniu {{LinkWzór|7.25}} określamy przez wzory: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=A\cos\Omega\left({{z}\over{c}}-t\right)\;</MATH>|7.141}}|2={{CentrujWzór|<MATH>\overline{h}_{yy}^{TT}=-\overline{h}_{xx}^{TT}\;</MATH>|7.142}}}} Przy przejściu fali grawitacyjnej przez naszą rozważaną płaszczyznę układu oscylatorów, wtedy ten układ odpowie stabilną oscylacją: {{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\phi)\;</MATH>|7.143}} Wielkości R i &phi; są to wielkości opisane poprzez wzory na &phi; {{LinkWzór|7.69}} i na R {{LinkWzór|7.76}}. Nasz rozważany ruch jest stabilny ponieważ energia dostarczana przez przechodzącą falę grawitacyjną poprzez sprężynkę jest rozpraszana w wyniku tarcia w oscylatorach w których energia jest kompensowana przez pracę wykonywaną na sprężynkach przez pływowe siły fali grawitacyjnej. Fala grawitacyjna dostarcza energii każdemu oscylatorowi równą: {{CentrujWzór|<MATH>{{dE}\over{dt}}=\nu\left({{\partial\xi}\over{\partial t}}\right)^2=m\gamma \left({{\partial\xi}\over{\partial t}}\right)^2\;</MATH>|7.144}} Uśrednienie energii dostarczanej przez falę w ciągu jednego okresu równej T=2&pi;/&Omega; dla wyrażenia {{LinkWzór|7.138}}, w wyniku tego mamy uśrednioną energię z definicji wartości średniej: {{CentrujWzór|<MATH>\left\langle{{dE}\over{dt}}\right\rangle= {{1}\over{{{2\pi}\over{\Omega}}}}\int_0^{{{2\pi}\over{\Omega}}}m\gamma\Omega^2R^2\sin^2(\Omega t+\phi)dt= {{m\gamma\Omega^3R^2}\over{2\pi}}\int_0^{{{2\pi}\over{\Omega}}}{{1}\over{2}}(1-\cos\left(2\Omega t+2\phi)\right)={{m\gamma\Omega^3R^2}\over{2\pi}}{{1}\over{2}}{{2\pi}\over{\Omega}}={{1}\over{2}}m\gamma\Omega^2R^2\;</MATH>|7.145}} Wzór {{LinkWzór|7.145}} przestawia energię dostarczaną do układu oscylatorów przez falę grawitacyjną, przy &sigma; oscylatorach energia fali zmniejsza się przy przejściu przez płaszczyznę o wartość: {{CentrujWzór|<MATH>\delta F=-{{1}\over{2}}\sigma m\gamma\Omega^2R^2\;</MATH>|7.146}} Każdy oscylator ma tensor kwadrupolowy zapisanej przez wzór {{LinkWzór|7.123}}, w której zastąpimy &omega; t przez &Omega;t+&phi;, a A przez R/2. Ponieważ w naszym przypadku R jest niewielkie, to człon jego trzeci możemy pominąć, i w ten sposób otrzymujemy tensor kwadrupolowy: {{CentrujWzór|<MATH>I_{xx}=mc^2l_0R\cos(\Omega t+\phi)\;</MATH>|7.147}} Według wzoru {{LinkWzór|7.118}} każdy oscylator wytwarza falę grawitacyjną: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}={{2G\Omega^2ml_0R}\over{c^4}}{{\cos\left[\Omega({{r}\over{c}}-t)-\phi\right]}\over{r}}\;</MATH>|7.148}} {{Rysunek|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego.png|bg1|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego|rozmiar=150px}} Ilość oscylatorów na powierzchni {{Formuła|<MATH>\pi\tilde{\omega}^2\;</MATH>}} jest {{Formuła|<MATH>\pi\tilde{\omega}^2\sigma\;</MATH>}}, a ilość oscylatorów znajdujących się na powierzchni pomiędzy {{Formuła|<MATH>\tilde{\omega}\;</MATH>}}, a {{Formuła|<math>\tilde{\omega}+d\tilde{\omega}\;</MATH>}} jest wyrażona przez {{Formuła|<MATH>2\pi\sigma\tilde{\omega}d\tilde{\omega}\;</MATH>}}, wtedy całkowity tensor {{Formuła|<math>\overline{h}_{xx}\;\;</math>}} możemy wyrazić przez: {{CentrujWzór|<math>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_0^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]{{\overline{\omega}d\overline{\omega}}\over{r}}\;</MATH>|7.149}} Z rysunku obok należy zauważyć, że {{Formuła|<math>r^2=z^2+\tilde{\omega}^2\Rightarrow rdr=\tilde{\omega}d\tilde{\omega}\;</MATH>}}, i w ten sposób wykorzystując to do wzoru {{LinkWzór|7.149}}: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_z^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</math>|7.150}} Całka {{LinkWzór|7.150}} jest całką rozbieżną, gdy przyjmować będziemy &sigma; jako stałą, więc &sigma; możemy uczynić jako funkcję &sigma;(z)e{{Sup|&epsilon; r}} i pozwoleniu by przy scałkowaniu dla &epsilon; dążyło do zera, i w ten sposób mamy całkę do policzenia: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{4\pi G\Omega^2ml_0R}\over{c^4}}\lim_{\epsilon\rightarrow 0}\int_z^{\infty}\sigma(z)e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</MATH>|7.151}} Wyznaczmy teraz dokładną całkę występującą we wzorze {{LinkWzór|7.151}} po prawej jego stronie: {{CentrujWzór|<MATH>\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr= -{{1}\over{\epsilon}}e^{-\epsilon r}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Bigg|_{z}^{\infty}-{{\Omega}\over{c\epsilon}}\int_z^{\infty}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr=\;</MATH>{{Br}}<MATH>={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\psi\right]-{{\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow {{c^2\epsilon^2+\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{c^2\epsilon}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{c\Omega}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]</MATH>|7.152}} Całkę policzoną w punkcie {{LinkWzór|7.152}} podstawiamy do wzoru {{LinkWzór|7.151}}, i w ostatecznych rozrachunkach dostajemy: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}=-{{4\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.153}} Aby porównać pole {{LinkWzór|7.153}} z falą padającą {{LinkWzór|7.135}} należy to przedostatnie napisać w cechowaniu TT, bo ono pierwotnie nie było w tym cechowaniu, otrzymujemy: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}^{TT}=-\delta\overline{h}_{yy}^{TT}=-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.154}} Wypdadkowa fala grawitacyjna piszemy jako sumę fali grawitacyjnej padającej {{LinkWzór|7.135}} na układ oscylatorów fali grawitacyjnej wytwarzanej przez układ oscylatorów w płaszczyźnie {{LinkWzór|7.154}} i w rezultacie otrzymujemy: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}=\overline{h}_{xx}^{TT}+\delta \overline{h}^{TT}_{xx}=A\cos \left[\Omega\left({{z}\over{c}}-t\right)\right]-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi\right]-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\cos\psi-A\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\sin\psi-\;</MATH>{{Br}}<MATH>-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\Bigg\{\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\cos(\psi-\phi)}_{\cos\psi\cos \phi+\sin\psi\sin\phi}+\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\sin(\psi-\phi)}_{\sin\psi\cos\phi-\cos\psi\sin\phi}\Bigg\}\;</MATH>|7.155}} Powyższe obliczenia będziemy przeprowadzali dla małych wielkości R, czyli z dokładnością wyrazów pierwszego rzędu względem R, wtedy według powyższych obliczeń przeprowadzonych w punkcie {{LinkWzór|7.155}} możemy napisać : {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\cos\psi\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right]-\psi\right)+\;</MATH>{{Br}}<MATH>+\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\left(A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi\right) </MATH>|7.156}} W powyższych obliczeniach należy przyjąć zachodzący warunek na kąt &psi;: {{CentrujWzór|<MATH>A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi=0\Rightarrow\operatorname{tg}\psi={{2\pi G\Omega \sigma l_0R}\over{Ac^3}}\cos\phi\;</MATH>|7.157}} W ten sposób otrzymujemy zależność na tensor {{Formuła|<MATH>\overline{h}_{xx}^{wypadkowe}\;</MATH>}}, który przepisujemy z {{LinkWzór|7.156}} przy zachodzącej tożsamości {{LinkWzór|7.157}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\;</MATH>|7.158}} Wypadkowym efektem przy przejściu fali grawitacyjnej jest zmniejszenie jego amplitudy patrząc na {{LinkWzór|7.158}} o wartość (R ujemne według {{LinkWzór|7.76}}): {{CentrujWzór|<MATH>\delta A={{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\;</MATH>|7.159}} Zmniejszenie amplitudy o wartość {{LinkWzór|7.159}} towarzyszy temu zmiana strumienia energii opisanej przez {{LinkWzór|7.140}}, po skorzystaniu wzorów {{LinkWzór|7.76}} i z {{LinkWzór|7.74}}, co w rezultacie daje mam zastanawiający wynik: {{CentrujWzór|<MATH>{{\delta F}\over{\delta A}}={{-{{1}\over{2}}\sigma m\gamma\Omega^2R^2}\over{{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi}}=-{{\gamma\Omega Rc^3}\over{4\pi Gl_0\sin\phi}}=-{{\gamma\Omega c^3}\over{4\pi Gl_0}}{{R}\over{\sin\phi}}={{\gamma\Omega c^3}\over{4\pi Gl_0}}{{l_0A\Omega^2}\over{4\gamma\Omega}}={{c^3}\over{16\pi G}}\Omega^2A\;</MATH>|7.160}} Wzór {{LinkWzór|7.160}} możemy przecałkować względem argumentu A, i w ten sposób otrzymujemy całkowity strumień energii F w zależności od amplitudy fali A i częstości &Omega;: {{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2A^2\;</MATH>|7.161}} Średnią po kwadracie dla amplitudy A możemy napisać wzorem poniżej, a także po podstawieniu tego do {{LinkWzór|7.161}} mając na myśli tylko dwie niezależne składowe rozważanego tensora: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\langle{\overline{h}_{xx}^{TT}}^2\rangle={{1}\over{2}}A^2\;</MATH>|7.162}}|2={{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2\langle\overline{h}_{\mu\nu}^{TT}{\overline{h}^{\mu\nu}}^{TT}\rangle\;</MATH>|7.163}}}} <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> 8u4aa82em4mo12v42grmzfbu17mc907 546538 546537 2026-06-12T15:43:35Z Persino 2851 /* Równanie dewiacji a odległość wektorowa pomiędzy obydwa spoczywającymi współrzędnościowo cząstkami */ 546538 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> Tutaj będziemy się zajmować ''falami grawitacyjnymi'', tzn. co to są fale grawitacyjne, czy to jest fala poprzeczna czy podłużna, dlaczego prędkość grupowa jest równa prędkości fazowej, jak można wykryć fale grawitacyjną za pomocą rezonatora grawitacyjnego, jak je wytwarzać. == Propagacja fal grawitacyjnych == Udowodnimy, że dla naszego pola grawitacyjnego niestacjonarnego w dużej odległości od źródła, pole grawitacyjne rozchodzi się na w sposób fali. Tensor Einsteina dla słabych pól grawitacyjnych daleko od źródła grawitacyjnego przedstawia się wedle schematu {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} i daleko od źródła tensor gęstości energii znika T{{Sup|&alpha;&beta;}}=0, bo w rozważanym punkcie gęstość jest już równa zero, a także ciśnienie jest zaniedbywalnie małe. Z równania grawitacji Einsteina, dla zerowego tensora gęstości energii-pędu powyższego równania, oczywiste jest, że tensor Einsteina G{{Sup|&alpha;&beta;}}=0. Z zerowania się tensora gęstości energii i równanie grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}} po pomnożeniu jego przez dwa i korzystając z definicji operatora d'Alemberta mamy z oczywistych powodów: {{CentrujWzór|<MATH>0=\square \overline{h}_{\alpha\beta}\Rightarrow\left(-{{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}^{\alpha\beta}=0</MATH>|7.1}} Końcowe równanie {{LinkWzór|7.1}} jest równaniem falowym, a poniżej podamy jego rozwiązanie w postaci poniżej, którego to zapis zależy od czterowektora kontrawariantnego położenia x{{Sup|&mu;}}i czterowektora kowariantnego liczby falowej k{{Sup|&mu;}}: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{ik_{\mu}x^{\mu}}</MATH>|7.2}} Końcowe równanie falowe {{LinkWzór|7.1}} po podstawieniu do niego rozwiązania falowego {{LinkWzór|7.2}} i zakładając przy tym, że stała tensorowa A{{Sup|&alpha;&beta;}} występująca w naszym wspomnianym rozwiązaniu jest stałą dowolną: {{CentrujWzór|<MATH>\eta^{\mu\nu}{\overline{h}^{\mu\nu}}_{,\mu,\nu}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}\overline{h}^{\alpha\beta}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}=0\Rightarrow k_{\mu}k^{\mu}=0\;</MATH>|7.3}} Wielkość występująca w {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}} pod eksponensem zapisanej w punkcie {{LinkWzór|7.2}} można rozpisać w zależności od czasu i wektora {{Formuła|<MATH>\vec{r}\;</math>}} wedle sposobów w zależności wprost proporcjonalnej od częstotliwości kołowej i zwykłej liczby falowej k. {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_0 ct+\mathbf{k}\vec{r}</MATH>|7.4}} Jeśli weżniemy, że zachodzi dla fotonu podróżującego wzdłuż wektora przestrzennego {{Formuła|<MATH>\vec{k}\;</MATH>}}, którego elementy są to składowe czterowektora k{{Sup|&mu;}} bez jej współrzędnej czasowej: {{CentrujWzór|<MATH>x^{\alpha}(\lambda)=k^{\alpha}\lambda+l^{\alpha}\;</MATH>|7.5}} Ależ wiadomo jednak, że l{{Sup|&lambda;}} jest stałym tensorem (wektorem). Możemy podstawić {{LinkWzór|7.5}} do {{LinkWzór|7.4}} i się przekonamy, że względem rozwiązania {{LinkWzór|7.5}} wyrażenie {{LinkWzór|7.4}} jest wielkością stałą na podstawie końcowego wyrażenia {{LinkWzór|7.3}}, że długość czterowektora {{Formuła|<MATH>k^{\mu}\;</MATH>}} w czasoprzestrzeni jest wielkością stałą: {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_{\alpha}k^{\alpha}\lambda+k_{\alpha}l^{\alpha}=\operatorname{const}\Rightarrow k_{\alpha}x^{\alpha}=k_{\alpha}l^{\alpha}</MATH>|7.6}} Znając definicję częstotliwości kołowej i liczby falowej poprzez długość fali grawitacyjnej, które można zapisać te wielkości fizyczne wedle: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>k_0={{\omega}\over{c}}\;</MATH>|7.7}}|2={{CentrujWzór|<MATH>k=|\vec{k}|={{2\pi}\over{\lambda}}\;</Math>|7.8}}}} Możemy wykorzystać z równości końcowej {{LinkWzór|7.3}} i wykorzystując dwie tożsamości {{LinkWzór|7.7}} oraz {{LinkWzór|7.8}}, wtedy to nasze wyrażenie rozpiszmy na część czasową i przestrzenną , wtedy możemy powiedzieć, że fala grawitacyjna rozchodzi się z prędkością fazową równą prędkości światła c: {{CentrujWzór|<MATH>k_{\mu}k^{\mu}=0\Rightarrow k_0k_0-k_ik_i=0\Rightarrow k_0^2=\sum^3_{i=1}k_i^2\Rightarrow {{\omega^2}\over{c^2}}=\vec{k}^2\Rightarrow\omega=\left|\vec{k}\right|c\Rightarrow \omega=kc\;</math>|7.9}} Dla {{LinkWzór|7.7}} (współrzędna czasowa liczby falowej) i {{LinkWzór|7.8}} (długość liczby falowej w przestrzeni) przy k{{Sup|&mu;}}, na którą składa się na jej część czasową i przestrzenną, wtedy równanie {{LinkWzór|7.2}} piszemy: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta} e^{i\left({{\omega}\over{c}}ct+\vec{k}\vec{r}\right)}\Rightarrow \overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{i\left(\omega t+\vec{k}\vec{r}\right)}\;</MATH>|7.10}} Wykorzystując definicję prędkości fazowej i grupowej znanej z fizyki ogólnej i zależności końcowej {{LinkWzór|7.9}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>v_f={{\omega}\over{k}}={{kc}\over{k}}=c\;</Math>|7.11}}|2={{CentrujWzór|<MATH>v_g={{d\omega}\over{dk}}={{dkc}\over{dk}}=c\;</Math>|7.12}}}} Na podstawie obliczeń {{LinkWzór|7.11}} i {{LinkWzór|7.12}} udowodniliśmy, że prędkość grupowa i fazowa fal grawitacyjnych są sobie równe, ze względu na właściwości czterowektora falowego w czasoprzestrzeni. Do naszego rozwiązania {{LinkWzór|7.2}} należy dodać cechowanie pola grawitacyjnego {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}, czyli wielkości {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}}, czyli z tego cechowania wynika końcowa tożsamość: {{CentrujWzór|<MATH>{\overline{h}^{\alpha\beta}}_{,\beta}=0\Rightarrow A^{\alpha\beta}k_{\beta}e^{ik_{\alpha}x^{\alpha}}=0\Rightarrow A^{\alpha\beta}k_{\beta}=0</MATH>|7.13}} Wedle powyższych rozważań udowodniliśmy, że fale grawitacyjne są falami poprzecznymi, bo iloczyn skalarny między czterowektorem liczby falowej i tensorem amplitudy fali grawitacyjnej {{LinkWzór|7.2}} jest równy zero. == Bezśladowe cechowanie poprzeczne Lorentza == Mamy sobie nowy układ współrzędnych względem starego układu, w obu układach panuje cechowanie Lorentza {{LinkWzór|5.29|Słabe_pola_grawitacyjne}}, dla równości różniczkowej {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} znajdźmy sobie taki tensor &xi;{{Sup|&alpha;}} przy tych cechowaniach w starym i w nowym układzie współrzędnych, który spełnia równanie różniczkowe {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} tożsamościowo, zatem nasz wspomniany tensor musi zatem spełniać w takim przypadku równanie różniczkowe: {{CentrujWzór|<MATH>\square \xi^{\alpha}=0\;</MATH>|7.14}} Rozwiązaniem równania {{LinkWzór|7.14}} jest rozwiązaniem w postaci funkcji zależnej od czterowektora falowego k{{Sub|&mu;}} wedle: {{CentrujWzór|<math>\xi^{\alpha}=B^{\alpha}e^{ik_{\mu}x^{\mu}}\;</MaTH>|7.15}} Mając rozwiązaniem równania falowego {{LinkWzór|7.2}} i rozwiązanie w postaci funkcji &xi; {{LinkWzór|7.15}} równania {{LinkWzór|7.14}}, wtedy równość końcową {{LinkWzór|5.25|Słabe_pola_grawitacyjne}} możemy zapisać na podstawie: {{CentrujWzór|<MATH>{A'}_{\alpha\beta}=A_{\alpha\beta}-iB_{\alpha}k_{\beta}-iB_{\beta}k_{\alpha}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}\;</MaTh>|7.16}} Obierzmy sobie dodatkowe cechowania obowiązujące w nowym układzie współrzędnych wedle sposobów: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{A'}^{\alpha}}_{\alpha}=0\;</MATH>|7.17}}|2={{CentrujWzór|<MATH>{A^{'}}_{\alpha\beta}U^{\beta}=0\;</MATH>|7.18}}}} Przedstawmy teraz tożsamości wynikające z {{LinkWzór|7.17}} oraz z {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, wtedy na podstawie tego otrzymujemy dwa poniższe warunki: {{ElastycznyWiersz|1={{CentrujWzór|<math>\overline{h}={\overline{h}^{\alpha}}_{\alpha}=0\;</MATH>|7.19}}|2={{CentrujWzór|<MATH>h_{\alpha\beta}=\overline{h}_{\alpha\beta}\;</Math>|7.20}}}} Równość tensorową {{LinkWzór|7.16}} na podstawie pierwszego cechowania {{LinkWzór|7.17}} możemy napisać w postaci: {{CentrujWzór|<MATH>0={A^{\alpha}}_{\alpha}-iB^{\alpha}k_{\alpha}-iB_{\alpha}k^{\alpha}+i{\delta^{\alpha}}_{\alpha}B^{\mu}k_{\mu}\Rightarrow 0={A^{\alpha}}_{\alpha}+2iB^{\alpha}k_{\alpha}\;</MaTH>|7.21}} Mamy cztery wartości tensora B{{Sup|&alpha;}} przy jakiś wartościach A{{Sub|&alpha;&beta;}}, czyli mamy jedno tensorowe równanie więzów z czterema niewiadomymi. Weźmy sobie pod lupę cechowanie {{LinkWzór|7.17}} na podstawie obrania nowego układu spełniającego to cechowanie, wtedy na podstawie {{LinkWzór|7.16}} dostajemy znów inną tożsamość: {{CentrujWzór|<MATH>0=A_{\alpha\beta}U^{\beta}-iB_{\alpha}k_{\beta}U^{\beta}-iB_{\beta}k_{\alpha}U^{\beta}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\Rightarrow A_{\alpha\beta}U^{\beta}=iB_{\alpha}k_{\beta}U^{\beta}+iB_{\beta}k_{\alpha}U^{\beta}-i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\;</MATH>|7.22}} Jeśli pomnożyć końcowe równanie {{LinkWzór|7.22}} przez k{{Sup|&alpha;}}, to lewa strona tejże wspomnianej równości wedle warunku na poprzeczność fal grawitacyjnych wynikające z warunku cechowania Lorentza {{LinkWzór|7.13}} co stąd wynika, że ta strona naszego równania jest zawsze równa zero, ale przy jakich B{{Sub|&alpha;}}, zatem z {{LinkWzór|7.22}} mamy: {{CentrujWzór|<math>0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}+k^{\alpha}iB_{\beta}U^{\beta}k_{\alpha}-ik^{\alpha}\eta_{\alpha\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}-ik_{\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=0\;</MATH>|7.23}} Na podstawie {{LinkWzór|7.23}} jest ona spełniona bez względu jakie wartości przyjmuje B{{Sub|&alpha;}}, zatem dostajemy na podstawie wiadomości z algebry, że równość tensorowa {{LinkWzór|7.22}} ma w sobie trzy niezależne równania z czterema niewiadomymi B{{Sub|&alpha;}}. Jeśli połączymy równanie {{LinkWzór|7.22}} z {{LinkWzór|7.21}} dostajemy cztery niezależne równania z czteroma niewiadomymi, którymi są elementy tensora B{{Sub|&alpha;}}, których jest cztery, zatem na podstawie znanych A{{Sub|&alpha;&beta;}} możemy wyznaczyć właśnie elementy tensora B{{Sub|&alpha;}} jednoznacznie. Dochodzimy do wniosku, że cechowania {{LinkWzór|7.17}} i {{LinkWzór|7.18}} są spełnione w jakimś tam układach odniesienia, których jest nieskończenie wiele jak przy cechowaniu Lorentza {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}. Jeśli założymy, że cząstka spoczywa, to wtedy mamy U{{Sup|&beta;}}=&delta;{{Sup|&beta;}}{{Sub|0}}, wtedy na podstawie równania {{LinkWzór|7.18}} mamy 0=A{{Sub|&alpha;&beta;}}&delta;{{Sup|&beta;}}{{Sub|0}}=A{{Sub|&alpha; 0}}, zatem na podstawie symetryczności A{{Sub|&alpha;&beta;}} pierwsza kolumna i wiersz są zerowymi wielkościami. Jeśli przyjąć, że cząstka porusza się w kierunku osi zetowej, czyli jego czterowektor liczby falowej jest: {{CentrujWzór|<MATH>k^{\mu}=(k^1={{\omega}\over{c}},0,0,k)\;</math>|7.24}} wtedy warunek {{LinkWzór|7.13}} implikuje 0=A{{Sub|&alpha;&beta;}}k{{Sup|&beta;}}=k{{Sup|3}}A{{Sub|&alpha;3}}, zatem na podstawie tego rozważania i symetryczności A{{Sub|&alpha;&beta;}} dostajemy, że trzecia kolumna i wiersz są wielkościami zerowymi. Jeśli weźmiemy dodatkowo warunek {{LinkWzór|7.18}}, z poprzednimi rozważaniami: 0=A{{Sup|&alpha;}}{{Sub|&alpha;}}=A{{Sub|xx}}+A{{Sub|yy}}&rArr;A{{Sub|yy}}=-A{{Sub|xx}}, zatem naszą macierz A{{Sub|&alpha;&beta;}} możemy zapisać: {{CentrujWzór|<MATH>A^{TT}_{\alpha\beta}=\begin{pmatrix} 0&0&0&0\\ 0&A_{xx}&A_{xy}&0\\ 0&A_{xy}&-A_{xx}&0\\ 0&0&0&0\\ \end{pmatrix}</MATH>|7.25}} == Wpływ fal grawitacyjnych na swobodną cząstkę == Cząstka spoczywająca nie ma elementów przestrzennych czterowektora prędkości, wtedy wzór na linię geodezyjną {{LinkWzór|1.70|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, gdy parametr {{Formuła|<MATH>\lambda\;</MATH>}} jest interwałem czasoprzestrzennym, możemy zapisać: {{CentrujWzór|<MATH>{{du^{\alpha}}\over{ds}}=-{\Gamma^{\alpha}}_{00}\;</MaTH>|7.26}} Do wzoru {{LinkWzór|7.26}} bardzo nam są potrzebne elementy tensora Christoffela na podstawie {{LinkWzór|7.2}} i na podstawie elementów amplitudy tensorowej A{{Sup|&alpha;&beta;}}{{LinkWzór|7.25}}, które to &Gamma;{{Sup|&alpha;}}{{Sub|00}} następnie wyznaczymy, zatem do dzieła: {{CentrujWzór|<math>{\Gamma^{\alpha}}_{00}={{1}\over{2}}\eta^{\alpha\beta}\left(h_{\beta 0,0}+h_{0\beta,0}-h_{00,\beta}\right)\;</MAtH>|7.27}} Zatem na podstawie równania na fale grawitacyjne przy obranym cechowaniu {{LinkWzór|7.17}} i {{LinkWzór|7.18}} oraz macierzy tensora amplitud {{LinkWzór|7.25}}, a także względem równania fali {{LinkWzór|7.2}}, przy obranym cechowaniu zachodziłoby {{LinkWzór|7.20}} oraz że te amplitudy nie mają wierszy oraz kolumn o numerze zerowym oraz jego elementy nie zależą od czasu, zatem elementy tensora Christoffela {{LinkWzór|7.27}} są wielkościami zerowymi, czyli znikają, zatem na podstawie {{LinkWzór|7.26}} cząstka spoczywająca współrzędnościowo pozostanie nadal cząstką spoczywającą, ponieważ cząstka która ma czteroprędkość a właściwie jej część przestrzenną, która równa jest nadal zero, dalej będzie miała ten sam czteroprędkość, którego zmiana jest równa zero wedle naszej metryki przy przyjętych cechowaniu. Zatem dochodzimy do wniosku, że fala grawitacyjna wcale nie wpływa na ruch punktowej masy wedle współrzędnych czteropołożenia położenia, ale to nic nie znaczy. Fala grawitacyjna może zmieniać odległość właściwą między dwoma punktami w sposób wedle {{LinkWzór|1.13|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>\Delta l=\int \left|ds^2\right|^{{{1}\over{2}}}=\int \left|g_{\alpha\beta}dx^{\alpha}dx^{\beta}\right|^{{{1}\over{2}}}=\int^{x_2}_{x_1}\left|g_{xx}\right|^{{{1}\over{2}}}dx=\int^{x_2}_{x_1} \left|\eta_{xx}+h_{xx}\right|^{{{1}\over{2}}}dx\simeq x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;</MATH>|7.28}} Również jak się przekonamy, że za pomocą zmiany długości właściwej &Delta;l można wykryć budując pewne układu fizyczne, mimo że fala grawitacyjna nie działa na punktowe masy. === Równanie dewiacji a odległość wektorowa pomiędzy obydwa spoczywającymi współrzędnościowo cząstkami === Równanie dewiacji z którego będziemy korzystać jest to {{LinkWzór|1.95|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, i w nim zakładamy, że cząstka spoczywa współrzędnościowo, bo prędkości współrzędnościowe przestrzenne jako są równe zero, i będziemy badali odległość przestrzenną iksową odległości pomiędzy dwoma cząstkami, wtedy czterowektor prędkości i odległość początkowa pomiędzy dwoma cząstkami przestawiamy jako U{{Sup|&mu;}}=(1,0,0,0),&xi;{{Sup|&mu;}}=(0,&epsilon;,0,0). W takim wypadku równanie dewiacyjne możemy napisać poniżej wykorzystując przy tym twierdzenie {{LinkWzór|2.106|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}}: {{CentrujWzór|<MATH>{{d^2\xi^{\lambda}}\over{d\lambda^2}}={{1}\over{c^2}}{{d^2\xi^{\lambda}}\over{d t^2}}=\epsilon {R^{\alpha}}_{00x}=-\epsilon {R^{\alpha}}_{0x0}\;</MATH>|7.29}} Dla słabego pola grawitacyjnego mamy {{LinkWzór|5.1|Słabe_pola_grawitacyjne}}, wtedy czterowskaźnikowy tensor krzywizny R{{Sup|&alpha;}}{{Sub|0x0}} {{LinkWzór|2.101|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}} możemy napisać z definicji tensora fali grawitacyjnego {{LinkWzór|7.2}} i definicji tensora amplitudy {{LinkWzór|7.25}}: {{CentrujWzór|<MATH> \begin{cases}{R^x}_{0x0}=R_{x0x0}=-{{1}\over{2}}h_{xx,0,0}\\ {R^y}_{0x0}=R_{y0x0}=-{{1}\over{2}}h_{xy,0,0}\\ {R^y}_{0y0}=R_{y0y0}=-{{1}\over{2}}h_{yy,0,0}=-{R^x}_{0x0} \end{cases}\;</MATH>|7.30}} Wszystkie pozostałe elementy tensora krzywizny inne niż policzone powyżej są równe zero, i ich nie podaliśmy, bo dowód zerowania się ich jest trywialny. Równania dewiacyjne w kierunku osi iksowej piszemy jako: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.30a}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^{y}={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.31}}}} Jeśli tensor &xi;{{Sup|&alpha;}} jest zdefiniowany w kierunku osi igrekowej, wtedy otrzymujemy dwa równania dewiacyjne: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^y={{1}\over{2}}{{\partial^2}\over{\partial t^2}}h_{yy}=-{{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.32}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.33}}}} === Ścisła fala grawitacyjna wynikająca z praw grawitacji Einsteina === Wszystkie fale grawitacyjne, których chcemy zaobserwować na Ziemi są to fale, które są opisywane przy pomocy teorii zlinearyzowanej, ale chcemy opisać fale grawitacyjne przy pomocy teorii dokładnej, czyli opisywanej przy pomocy dokładnego równania grawitacji Einsteina. Obierzmy teraz dwie zmienne nowe zdefiniowane przy pomocy zmiennych t i z, których definicje są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>u=ct-z\;</MATH>|7.34}}|2={{CentrujWzór|<MATH>v=ct+z\;</MATH>|7.35}}}} Mamy sobie zdefiniowany interwał czasoprzestrzenny w przestrzeni Minkowskiego {{LinkWzór|1.6|Wprowadzenie_do_ogólnej_teorii_względności}} i wykorzystując równania na zmienne u {{LinkWzór|7.34}} i {{LinkWzór|7.35}}, z których wyznaczmy wzory na zmienne "u" i "ct", co w ten sposób możemy napisać ten nasz interwał czasoprzestrzenny w tychże zmiennych: {{CentrujWzór|<MATH>ds^2={{1}\over{4}}d(u+v)^2-dx^2-dy^2-{{1}\over{4}}d(v-u)^2={{1}\over{4}}\left(du^2+dv^2+2dudv\right)-dx^2-dy^2-{{1}\over{4}}\left(du^2+dv^2-2dudv\right)=\;</MATH>{{Br}}<MATH>=dvdu-dx^2-dy^2\;</MATH>|7.36}} Zobaczymy, że fale grawitacyjne wpływają na odległości prostopadłe w stosunku do biegu fali grawitacyjnej przy jej opisie, która wynika z jej teorii dokładnej, czyli z równań grawitacji Einsteina. W tym celu napiszmy interwał czasoprzestrzenny, w których wprowadzimy funkcje f(u) i g(u), które są zależne od zmiennej "u": {{CentrujWzór|<MATH>ds^2=dudv-f^2(u)dx^2-g^2(u)dy^2\;</MATH>|7.37}} Napiszemy teraz wszystkie niezerowe elementy tensora Christoffela i niezerowe elementy tensory czterowskaźnikowego tensora krzywizny: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\Gamma^x}_{xu}={{\dot{f}}\over{f}}\;</MATH>|7.38}}|2={{CentrujWzór|<MATH>{\Gamma^y}_{yu}={{\dot{g}}\over{g}}\;</MATH>|7.39}}|3={{CentrujWzór|<MATH>{\Gamma^v}_{xx}={{1}\over{2}}\dot{f}f\;</MATH>|7.40}}|4={{CentrujWzór|<MATH>{\Gamma^v}_{yy}={{1}\over{2}}\dot{g}g\;</MATH>|7.41}}}} {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{R^x}_{uxu}=-{{\ddot{f}}\over{f}}\;</MATH>|7.42}}|2={{CentrujWzór|<MATH>{R^y}_{uyu}=-{{\ddot{g}}\over{g}}\;</MATH>|7.43}}|3={{CentrujWzór|<MATH>R=R_{uu}=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.44}}}} Z powyższych wnioskach możemy napisać tensory Einsteina i dowiemy się, że tensor Einsteina G{{Sub|&mu;&nu;}} posiada również elementy niediagonalne oprócz jej elementów diagonalnych: {{CentrujWzór|<math> G_{uu}=R_{uu}-{{1}\over{2}}g_{uu}R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}-{{1}\over{2}}\cdot 0\cdot R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.45}} {{CentrujWzór|<MATH>G_{uv}=R_{uv}=R_{vu}-{{1}\over{2}}g_{uv}R=-{{1}\over{2}}(-1)R=-{{1}\over{2}}{{1}\over{2}}\left(-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\right)={{1}\over{4}}\left({{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}\right)\;</math>|7.46}} Będziemy badać fale rozprzestrzeniające tam gdzie nie ma masy, wtedy z równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}}, gdy tensor napięć-energii jest równy zero, mamy: {{CentrujWzór|<MATH>{{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}=0\;</MATH>|7.47}} Jako funkcję f(u) możemy przyjąć jako dowolną funkcję i rozwiązać równanie dla g(u). Możemy funkcję f(u) w taki sposób napisać jako funkcję opisującą pewnego rodzaju falę podobną do {{LinkWzór|7.2}} i zapytać siebie jaka jest funkcja przy tak postawionych warunkach, czyli g(u). Dla przypadku prawie liniowego funkcja f(u) jest bliska jedności: {{CentrujWzór|<MATH>f\simeq 1+\epsilon(u)\;</MATH>|7.48}} wtedy funkcja g(u) jest prawie liniowa i w zależności od funkcji prawie liniowej f(u) {{LinkWzór|7.46}} możemy napisać jej rozwiązanie: {{CentrujWzór|<MATH>g\simeq 1-\epsilon(u)\;</MATH>|7.49}} == Detekcja fal grawitacyjnych == {{Rysunek|Fale grawitacyjne.jpg|sjp|Detektor rezonansowy dla wykrycia fal grawitacyjnych.}} Załóżmy, że mamy układ o współczynnik tłumienia &nu; i sprężyny o stałej sprężystości k, który jest oscylatorem harmonicznym tłumionym. Dla pierwszej i drugiej kulki rozważanego układu, równanie ruchu ma się: {{CentrujWzór| <MATH>\begin{cases} mx_{1,0,0}=k(x_2-x_1-l_0)-\nu(x_1-x_2)_{,0}\\ mx_{2,0,0}=-k(x_2-x_1-l_0)-\nu(x_2-x_1)_{,0} \end{cases}\;\;</MATH>|7.50}} Możemy odejmować dwa równania {{LinkWzór|7.50}} od siebie w naszym układzie równań otrzymując wynikowe równanie, które należy rozwiązać: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(x_2-x_1-l_0)-2\nu(\dot{x_2}-\dot{x_1})\;\;</MATH>|7.51}} Wprowadźmy nowe oznaczenia (parametry), które wykorzystamy do równania różniczkowego {{LinkWzór|7.51}}, tzn. parametr &xi; (która jest zależna od położenia obu kulek i długości własnej użytej sprężynki), częstotliwości własnej układu &omega;{{Sub|0}} (zależna od stałej sprężystości sprężynki i masy tej sprężynki), a także od stałej &gamma; (która jest zależna od stałej tłumienia &gamma; i masy sprężynki), zatem te podstawienia: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\xi=x_2-x_1-l_0\;\;</MATH>|7.52}}|2={{CentrujWzór|<MATH>\omega_0^2={{2k}\over{m}}\;\;</MATH>|7.53}}|3={{CentrujWzór|<MATH>\gamma={{\nu}\over{m}}\;\;</MATH>|7.54}}}} Na podstawie oznaczeń &xi; {{LinkWzór|7.52}}, &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, wtedy równanie {{LinkWzór|7.51}} przechodzi przy tych nowych oznaczeniach w równoważną postać: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=0\;\;</MATH>|7.55}} W równaniach ruchu dla dwóch kulek {{LinkWzór|7.50}} zastosowaliśmy równania ruchu Newtona, bo mamy do czynienia z prędkościami bardzo małymi (o wiele mniejszymi od prędkości światła). Ponieważ mamy do czynienia z ogólną teorią względności, czyli mamy do czynienia z teorią grawitacją Einsteina, to powyższe wywody nie są w ogólności spełnione i chwilową długość sprężyny jest inna niż zakładana, bo sprężyna jest w układzie dwóch kulek, których fala grawitacyjna zakłóca prawdziwą długość sprężyny, długość sprężyny według rozważanej metryki jest inna niż metryce Minkowskiego (czasoprzestrzeń płaska), jeśli sprężyna jest położona wzdłuż osi iksowej w przestrzeni, ma długość na podstawie {{LinkWzór|7.28}} wyrażonej według: {{CentrujWzór|<MATH>l(t)=x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.56}} Należy pamiętać, że długość l{{Sub|0}} jest bardzo mała w porównaniu z długością jakim światło może przebyć w ciągu jednej sekundy. Równania {{LinkWzór|7.50}} możemy zapisać w bardziej ogólny sposób uwzględniając jako sprężynę w ruchu, który ma w tej chwili długość l i zapisać je nie jako różnica położeń dwóch kul z dokładnością do znaku, ale jako różnica aktualnej długości kulki l i jej długości początkowej, bo tutaj nie mamy przestrzeni płaskiej tylko przestrzeń zakrzywioną i uwzględniając jakoby fala grawitacyjna nie oddziaływuje współrzędnościowo z punktowymi masami jako osobno, co tutaj jest ważne, ale kulki oddziałują ze sobą tylko za pomocą sprężynki przez promieniowanie grawitacyjne, które to kulki były początkowo w spoczynku przed dotarciem do nich tej rozważanej fali: {{CentrujWzór|<MATH>\begin{cases} mx_{1,0,0}=k(l-l_0)+\nu(l-l_0)_{,0}\\ mx_{2,0,0}=-k(l-l_0)-\nu(l-l_0)_{,0} \end{cases}\;</MaTh>|7.57}} Wprowadźmy nowe oznaczenia, która jest funkcją iksowych położeń kul, i poprawki do tensora metrycznego Minkowskiego i długości początkowej sprężyny nierozciągniętej i jest oznaczona ona przez tożsamość: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.58}} Na podstawie powyższej tożsamości możemy napisać przekształcenia wyznaczając różnicę współrzędnych iksowych dwóch rozważanych kulek: {{CentrujWzór|<MATH>x_2-x_1\simeq\xi+l_0+{{1}\over{2}}h_{xx}l_0\;\;</MATH>|7.59}} Powyżej przyjęliśmy, że zmiana długości własnej sprężynki stojąca przy h{{Sub|xx}} dla słabego pola grawitacyjnego jest bardzo mała, zatem różnica położeń kulek jest w przybliżeniu równa długości sprężynki. Równość {{LinkWzór|7.50}} z poprawką na chwilową długość sprężyny, która jest nie równa różnicy współrzędnych iksowych kulek w zakrzywionej czasoprzestrzeni: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(l-l_0)-2\nu(l-l_0)_{,0}\;\;</MATH>|7.60}} Wykorzystując oznaczenia na parametry &xi; {{LinkWzór|7.58}}, oraz na &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, to równanie różniczkowe {{LinkWzór|7.60}} zapisujemy poniżej, który również zawiera poprawkę do tensora metrycznego Minkowskiego dla tychże rozważanych kulek, a także zawiera zmianę długości sprężyny l-l{{Sub|0}} zapisanej według {{LinkWzór|7.59}}: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=-{{1}\over{2}}h_{xx,0,0}l_0\;\;</MATH>|7.61}} Powyższe równanie jest równaniem oscylatora harmonicznego tłumionego z przyłożoną siłą, która zmienia się w sposób harmoniczny (w tym przypadku promieniowanie grawitacyjne, które działa na kule poprzez sprężynkę). Fala kulista w dużej odległości od źródła jest falą w przybliżeniu płaską, a zatem jeśli {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;\;</MATH>}} opisuje falę płaską wedle definicji tensora Einsteina {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} dla tensora gęstości energii równej zero, wtedy równania grawitacji Einsteina opisują {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATh>}} wedle {{LinkWzór|7.2}}, jeśli częstotliwość tej fali jest jakaś tam, to częstotliwość fali {{Formuła|<MATH>h_{xx}\;</MATH>}}, wedle równości {{LinkWzór|5.20|Słabe_pola_grawitacyjne}} jest taka sama, zatem jeśli pierwsza zmienia się względem funkcji kosinus (dla {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}), to druga też, zatem niech będą funkcje {{Formuła|<math>h_{xx}\;</MaTH>}} i {{Formuła|<MATH>\xi\;</Math>}}, która zmieniają się względem czasu z częstotliwością &Omega;: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>h_{xx}=A\cos(\Omega t)\;\;</MATH>|7.62}}|2={{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\varphi)\;\;</MATH>|7.63}}}} Powyższe dwa równania są prawdziwe, bo można tak wybrać przesunięcie fazowe oraz &Omega;, by były spełnione równania ruchu dwóch kulek w polu grawitacyjnym, których drgania kulek maja się jak promieniowanie grawitacyjne. Podstawiamy za h{{Sub|xx}} równania fali grawitacyjnej {{LinkWzór|7.62}} i przemieszczenia harmonicznego kulek {{LinkWzór|7.63}}, którego zmianę powoduje fala grawitacyjna (promieniowanie grawitacyjne) o takiej samej częstotliwości co fala grawitacyjna, do równości {{LinkWzór|7.61}}, co w rezultacie ono przyjmuje postać: {{CentrujWzór|<MATH>-\Omega^2 R\cos(\Omega t+\varphi)+\omega_0^2 R\cos(\Omega t+\varphi)-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.64}} Co po krótkich przestawianiach wyrazów w tożsamości {{LinkWzór|7.64}}, czyli grupując wyrazy stojące przy funkcji sinus i kosinus: {{CentrujWzór|<MATH>\cos(\Omega t+\varphi)R\left[-\Omega^2+\omega_0^2\right]-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.65}} Wykorzystując z własności kosinusów i sinusów sumy składników pod tymi funkcjami trygonometrycznymi możemy zapisać {{LinkWzór|7.65}} rozwijając w odjemnej naszej tożsamości funkcji kosinus i odjemniku funkcję sinus: {{CentrujWzór|<MATH>\left(\cos(\Omega t)\cos\varphi-\sin(\Omega t)\sin\varphi\right)R(\omega_0^2-\Omega^2)-2\gamma R\Omega\left(\cos(\Omega t)\sin\varphi+\sin(\Omega t)\cos\varphi\right)=\;</MATH>{{Br}} <MATH>={{1}\over{2}}l_0A\Omega^2\cos(\Omega t)\;</MATH>|7.66}} Grupujemy wyrazy z kosinusami i sinusami, których argumentem jest &Omega; t we wzorze {{LinkWzór|7.66}} i aby ona zachodziła dla dowolnych chwili czasu t, to nasze wspomniane równanie przechodzi w dwa równania równoważne pierwotnemu. {{ElastycznyWiersz|1={{CentrujWzór|<MaTH>(\omega_0^2-\Omega^2)R\cos\varphi-2\gamma R\Omega\sin\varphi={{1}\over{2}}l_0 A\Omega^2\;</MATH>|7.67}}|2={{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)R\sin\varphi-2\gamma R\Omega\cos\varphi=0\;</MATH>|7.68}}}} Z tożsamości uzyskanej w punkcie {{LinkWzór|7.68}} możemy wyznaczyć tanges przesunięcia fazowego kulek względem fali promieniowania grawitacyjnego, który jak udowodnimy zależy tylko od częstotliwości fali grawitacyjnej &Omega; i częstotliwości własnej detektora fali grawitacyjnej: {{CentrujWzór|<MATH>\operatorname{tg}(\varphi)={{2\gamma\Omega}\over{\Omega^2-\omega_0^2}}\;\;</MATH>|7.69}} Pomnóżmy równanie {{LinkWzór|7.67}} przez wyrażenie {{Formuła|<MATH>2\gamma\Omega\;\;</MATH>}}, czyli podwojony iloczyn stałej tłumienia &gamma; i częstotliwości drgań fali grawitacyjnej, wtedy dostajemy tożsamość: {{CentrujWzór|<MATH>(\omega_0-\Omega^2)2\gamma\Omega R\cos\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\;\;</MATH>|7.70}} a także wykorzystując również tożsamość {{LinkWzór|7.68}}, którą podstawiamy do tożsamości {{LinkWzór|7.70}}, wtedy oczywiście dostajemy wniosek: {{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)(\omega_0^2-\Omega^2)R\sin\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\Rightarrow \left[(\omega_0^2-\Omega^2)^2+4\gamma^2\Omega^2\right]R\sin\varphi=-l_0A\gamma\Omega^3\;</MATH>|7.71}} Policzmy teraz czemu jest równa funkcja sin&phi; wyrażając kwadrat kotangensa względem kwadratu funkcji sinus &phi;, korzystając z definicji tangensa kąta, który jest ilorazem sinusa kąta &phi; przez jego kosinus tego samego kąta, i jeszcze korzystając z definicji jedynki trygonometrycznej, możemy napisać: {{CentrujWzór|<math>\operatorname{ctg}^2\varphi={{\cos^2\varphi}\over{\sin^2\varphi}}= {{1-\sin^2\varphi}\over{\sin^2\varphi}}=\sin^{-2}\varphi-1\Rightarrow \sin^{-2}\varphi=\operatorname{ctg}^{2}\varphi+1\Rightarrow \sin^2\varphi={{1}\over{\operatorname{ctg}^2\varphi+1}}\;</MATH>|7.72}} Ze wzoru na <MATH>\sin^2\varphi\;</MATH> w ostatnim rozważanym wyrażeniu {{LinkWzór|7.72}} przechodzimy do wzoru na funkcję trygonometryczną dla naszego zadania: {{CentrujWzór|<MATH>\sin^2\varphi={{1}\over{1+({{\Omega^2-\omega_0^2)}\over{2\gamma\Omega}})^2}}= {{1}\over{{{4\gamma^2\Omega^2+(\Omega^2-\omega_0^2)^2}\over{4\gamma^2\Omega^2}}}}= {{4\gamma^2\Omega^2}\over{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}\;</MAth>|7.73}} Równość {{LinkWzór|7.73}} możemy spierwiastkować obustronnie, tak by po lewej stronie wspomnianego równania otrzymać sam sinus kata &phi;, wtedy otrzymujemy wyrażenie: {{CentrujWzór|<MATH>\sin\varphi={{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.74}} Wyznaczony wzór na funkcję sin&phi; zapisanej i udowodnionej w punkcie {{LinkWzór|7.74}} podstawiamy do wzoru uzyskanego wcześniej w punkcie {{LinkWzór|7.71}}, wtedy można otrzymać tożsamość, którą poddamy dalszej obróbce: {{CentrujWzór|<MATH>\left[(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2\right]R{{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}=-l_0A\gamma\Omega^3\Rightarrow 2\gamma\Omega R\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}=-l_0A\gamma\Omega^3\;</MATH>|7.75}} Zatem amplituda drgań dla oscylatora harmonicznego tłumionego jest napisana wedle wzoru poniżej, która jest zależna od częstotliwości kołowej drgań fali grawitacyjnej &Omega;, częstotliwości własnej układu własnego &omega;{{Sub|0}} i współczynnika tłumienia &gamma;: {{CentrujWzór|<MATH>R=-{{{{1}\over{2}}l_0A\Omega^2}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.76}} Jest ona zależna od częstotliwości rezonansowej &omega;{{Sub|0}} i współczynnika pełniącego rolę współczynnika tłumienia &gamma;. Energia układu (oscylatora harmonicznego tłumionego) jest zdefiniowana jako energia kinetyczna obu kulek i energii potencjalnej sprężyny w polu grawitacyjnym, bo tutaj sprężynka znajduje się w polu promieniowania grawitacyjne oddziałujące ze sprężynką. {{CentrujWzór|<MATH>E={{1}\over{2}}m(x_{1,0})^2+{{1}\over{2}}m(x_{2,0})^2+{{1}\over{2}}k\xi^2\;</MATH>|7.77}} Jeśli dodamy do siebie dwa równania układu równań {{LinkWzór|7.57}} do siebie, wtedy otrzymamy równanie różniczkowe poniżej i założymy że nasz układ był w spoczynku, zanim dodarła do naszego badanego układu fala grawitacyjna, czyli przyjmujemy, że C=0, który jest warunkiem brzegowym: {{CentrujWzór|<MATH>(x_2+x_1)_{,0,0}=0\Rightarrow x_{2,0}+x_{1,0}=C\Rightarrow x_{2,0}=-x_{1,0}+C\;</MATH>|7.78}} Parametr {{LinkWzór|7.58}} można zapisać, jeśli przyjmiemy założenie, że mamy do czynienia z słabym polem grawitacyjnym w postaci fal grawitacyjnym, wtedy czwarty człon w nim możemy pominąć: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}l_0\simeq \xi=x_2-x_1-l_0\Rightarrow \xi_{,0}\simeq x_{2,0}-x_{1,0}=2x_{2,0}</MATH>|7.79}} zatem wedle obliczeń {{LinkWzór|7.79}}, które dokonaliśmy w tymże punkcie i dla naszych warunków brzegowych możemy napisać tożsamość między prędkościami dwóch kulek. {{CentrujWzór|<MATH>x_{1,0}=-x_{2,0}=-{{1}\over{2}}\xi_{,0}\;</MATH>|7.80}} Energia układu {{LinkWzór|7.77}} po wykorzystaniu dwóch podstawień do którego będziemy wykorzystywali obliczenia {{LinkWzór|7.80}}, które wynika z punktu przestawionego wzorem {{LinkWzór|7.79}}, wtedy ową energię chwilową zapisujemy wedle schematu poniżej, która jest zależna od pochodnej zmiennej &xi; względem czasu i samego przesunięcia &xi;, którego to &xi; jest to przesunięcie od położenia równowagi obu rozważanych w tym zadaniu kulek układu fizycznego: {{CentrujWzór|<MATH>E={{1}\over{2}}m(-{{1}\over{2}}\xi_{,0})^2+{{1}\over{2}}m({{1}\over{2}}\xi_{,0})^2+ {{1}\over{2}}\omega_0^2({{1}\over{2}}\xi)^2\Rightarrow E={{1}\over{4}}m\left(\xi^2_{,0}+\omega_0^2\xi^2\right)\;</MATH>|7.81}} Wykorzystujemy definicję parametru &xi; napisanej w punkcie {{LinkWzór|7.63}}, które to podstawiamy do równości {{LinkWzór|7.81}} na energię układu, wtedy owe równanie ma wygląd: {{CentrujWzór|<MATH>E={{1}\over{4}}m\left(R^2\Omega^2\sin^2(\Omega t+\varphi)+\omega_0^2R^2\cos^2(\Omega t+\varphi)\right)\;</MATH>|7.82}} Wiemy jednak, że średnia wartość kwadratu kosinusa z definicji wartości średniej jest równa połowie jedynki względem czasu t, zatem co zapisujemy wzorem poniżej. Widzimy, że powyższa równość jest zależna od częstotliwości fali grawitacyjnej &Omega; i przesunięcia fazowego &phi;. {{CentrujWzór|<MATH>\langle \cos^2(\Omega t+\varphi)\rangle=\langle\sin^2(\Omega t+\varphi)\rangle={{1}\over{2}}\;</MATH>|7.83}} Średnia wartość energii oscylatora wedle wartości chwilowej {{LinkWzór|7.81}}, korzystając już z obliczonej wartości średniej kwadratu kosinusa, to średnią energię drgań układu dwóch kulek i sprężyny zapisujemy wedle: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8}}mR^2(\Omega^2+\omega_0^2)\;</MATH>|7.84}} Amplituda rezonansowa nazywamy takie R w tożsamości {{LinkWzór|7.76}}, dla które zachodzi, gdy &omega;{{Sub|0}}=&Omega;, wtedy dochodzimy do wniosku, że mamy amplitudę rezonansową drgań przy udziale fal grawitacyjnych: {{CentrujWzór|<MATH>R={{{{1}\over{2}}l_0\Omega^2 A}\over{\sqrt{4\Omega^2\gamma^2}}}= {{{{1}\over{2}}l_0\Omega^2 A}\over{2\Omega\gamma}}={{1}\over{4}}l_0 A{{\Omega}\over{\gamma}}\;</MATH>|7.85}} Energia rezonansowa średnia {{LinkWzór|7.84}} na podstawie amplitudy rezonansowej układu dwóch kulek połączonej sprężynką policzonej w punkcie {{LinkWzór|7.85}}, do której to podstawimy do wzoru na średnią energię: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8\cdot 16}}ml_0^2A^2\left({{\Omega}\over{\gamma}}\right)^2 2\Omega^2= {{1}\over{8\cdot 8}}ml_0^2A^2\Omega^2\left({{\Omega}\over{\gamma}}\right)^2= {{1}\over{64}}ml_0^2\Omega^2A^2\left({{\Omega}\over{\gamma}}\right)^2 \;</MATH>|7.86}} Dobrocią oscylatora harmonicznego tłumionego nazywamy wielkość zdefiniowanej wedle sposobu poniżej, z której ją wyznaczymy dla częstotliwości rezonansowej, tzn. gdy <MATH>\Omega=\omega_0\;</Math> {{CentrujWzór|<MATH>Q={{\omega_0}\over{2\gamma}}\Rightarrow 2Q={{\Omega}\over{\gamma}}\;</MATH>|7.87}} Energia średnia rezonansowa {{LinkWzór|7.86}} w której podstawimy za stosunek {{Formuła|<MaTH>{{\Omega}\over{\gamma}}\;</MATH>}} podwojoną dobroć Q, czyli z korzystamy ze wzoru {{LinkWzór|7.87}}, zatem tą pierwszą wielkość fizyczną możemy napisać sposobem: {{CentrujWzór|<MATH>{\langle E\rangle}_{rezonas}={{1}\over{16}}ml_0\Omega^2A^2Q^2\;</MATH>|7.88}} I co kończy nasze rozważania na temat detekcji fal grawitacyjnych. == Tensorowe twierdzenie wirialne a lokalna zasada zachowania energii == Naszym wzorem, które zechcemy udowodnić jest twierdzenie łączący tensor gęstości energii o wskaźnikach zerowych górnych (lewa strona) po przez wyrażenie z tensorem gęstości energii o wskaźnikach górnych o wartościach przestrzennych: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV=2\int T^{lm}dV\;</MATH>|7.89|Obramuj}} Powyższy wzór jest wzorem, w której jest dokonane całkowanie po pewnej objętości, której ogranicza pewna powierzchnia zamknięta, na której powierzchni tensor gęstości energii jest równa zero, bo tak zamknięta powierzchnia jest poza obszarem, w której tensor gęstości energii jest różny od zera. Dowód powyższego lematu opiera się na zasadzie zachowawczości tensora napięć-energii dla słabego pola grawitacyjnego {{LinkWzór|1.49|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>{T^{\mu\nu}}_{,\nu}=0\Rightarrow {T^{\mu 0}}_{,0}+{T^{\mu k}}_{,k}=0\Rightarrow {T^{\mu 0}}_{,0}=-{T^{\mu k}}_{,k}\;</MATH>}} Zatem przejdźmy do głównego nurtu dowodu wiedząc, że T{{Sup|&mu;&nu;}} jest równe zero na zewnątrz źródła i będziemy korzystać z symetryczności tensora gęstości energii. {{CentrujWzór|<mATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= {{1}\over{c}}{{d}\over{dt}}\int {T^{00}}_{,0}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int {T^{0k}}_{,k}x^lx^mdV \;</MATH>|7.90}} Rozwińmy tożsamość występująca we wzorze {{LinkWzór|7.90}}, zatem korzystając z twierdzenia o pochodnej iloczynu trzech składników można napisać tożsamość: {{CentrujWzór|<MaTH>(T^{0k}x^lx^m)_{,k}={T^{0k}}_{,k}x^lx^m+T^{0k} {x^l}_{,k}x^m+T^{0k}x^l{x^m}_{,k}= {T^{0k}}_{,k}x^lx^m+T^{0k}{\delta^l}_{k}x^m+T^{0k}x^l{\delta^m}_{k} ={T^{0k}}_{,k}x^lx^m+T^{0l}x^m+\;</MATH>{{Br}}<MATH>+T^{0m}x^l\Rightarrow {T^{0k}}_{,k}x^lx^m=(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\;</MaTH>|7.91}} Wyrażenie końcowe zapisane w rozważanej powyżej w punkcie {{LinkWzór|7.91}} możemy podstawić do tożsamości fizycznej {{LinkWzór|7.90}} wynikającej z zachowalności energii i pędu, wtedy dostajemy równanie: {{CentrujWzór|<MaTH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int\left[(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\right]dV=-{{1}\over{c}}{{d}\over{dt}}\int T^{0k}x^lx^mdS_k+\int {T^{0l}}_{,0}x^mdV+\;</MATH>{{Br}}<MATH>+\int {T^{0m}}_{,0}x^ldV=-\int {T^{kl}}_{,k}x^mdV-\int {T^{km}}_{,k}x^ldV \;</MATH>|7.92}} W powyższym rozpisaniu korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa zamiany całek objętościowych, w której jest całkowanej po ściśle określonej nam objętości, na całkę powierzchniową, w której jest całkowanie po powierzchni zamkniętej ograniczającą wcześniej wprowadzoną objętość. Następnym krokiem jest udowodnienie poniżej tożsamości korzystając z twierdzenia z pochodnej iloczynu znanej z analizy: {{CentrujWzór|<MATH>(T^{kl}x^m)_{,k}dV={T^{kl}}_{,k}x^m+T^{kl}{\delta^m}_{k}={T^{kl}}_{,k}x^m+T^{ml}\;</math>|7.93}} Możemy wykorzystać tożsamość {{LinkWzór|7.93}} do dalszej części dowodu {{LinkWzór|7.92}}, wiedząc jednocześnie że pierwsza i trzecia ciałka jest równa zero przy wykorzystaniu twierdzenia Ostrogradzkiego-Gauusa, która jest całką po powierzchni zamkniętej, którego to T{{Sub|&alpha;&beta;}} jest równa zero na tej powierzchni, wtedy dochodzimy do wniosku: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -\int (T^{kl}x^m)_{,k}dV+\int T^{ml}dV-\int (T^{km}x^l)_{,k}dV+\int T^{lm}dV=\int T^{ml}dV+T^{lm}dV=2\int T^{ml}dV\;</MaTH>|7.94}} W powyższym dowodzie znów korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa, w której na jej powierzchni całkowanej panuje zerowa wartość tensora gęstości energii. Co kończy dowód twierdzenia {{LinkWzór|7.89}}. == Wytwarzanie fal grawitacyjnych == Fala grawitacyjna rozchodząca się od niezerowego źródła, w której gęstość materii poza źródłem jest równa zero, a także ciśnienie jest zaniedbywalnie małe, zatem tensor gęstości energii dla punktu poza źródłem zapisujemy wedle: {{CentrujWzór|<MATH>T^{\alpha\beta}=0\;</Math>|7.95}} Zatem biorąc to do równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}} i z przybliżeniem słabości pola grawitacyjnego tensor Einsteina wedle końcowego przedstawienia {{LinkWzór|5.17|Słabe_pola_grawitacyjne}}, jeśli będziemy wykorzystywać {{LinkWzór|7.95}}, zapisujemy wtedy go łącząc to z prawem grawitacji Einsteina: {{CentrujWzór|<MATH>G^{\alpha\beta}=\kappa T^{\alpha\beta}\Rightarrow G^{\alpha\beta}=0\Rightarrow {{1}\over{2}}\square\overline{h}_{\alpha\beta}=0\;</MATH>|7.96}} Rozwiązaniem równań grawitacji Einsteina dla słabego pola grawitacji {{LinkWzór|7.96}} jest wyrażenie {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, która jest zależna od stałej częstotliwości kołowej &Omega; i czasu t: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=B_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.97}} Aby sprawdzić jakie B{{Sub|&alpha;&beta;}} spełnia równanie {{LinkWzór|7.96}} dla odpowiedzi {{LinkWzór|7.97}}, to po podstawieniu naszego rozwiązania do rozważanego równania różniczkowego, mamy: {{CentrujWzór|<MATH>\square B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=0\;</MATH>|7.98}} Można udowodnić, że rozwiązanie w {{Formuła|<MATH>B_{\alpha\beta}\;</MATH>}} równania różniczkowego {{LinkWzór|7.98}} jest rozwiązanie w postaciach zależnych od dwóch niezależnych stałych występujące w dwóch składnikach osobno: {{CentrujWzór|<MaTH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\;</MATH>|7.99}} Sprawdźmy czy {{LinkWzór|7.99}} jest rzeczywiście jest rozwiązaniem równania {{LinkWzór|7.98}}, zatem jeśli obierzemy definicję kwadratu &Delta;=&nabla;{{Sup|2}} we współrzędnych kulistych, zatem operator &Delta; zapisujemy w postaci: {{CentrujWzór|<MATH>\Delta=\nabla^2={{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda</MATH>}} to policzmy, czy rozwiązanie {{LinkWzór|7.99}} jest poprawnym rozwiązaniem dla równania różniczkowego {{LinkWzór|7.98}} dla promienia od źródła, który się znajduje dla r=0, wtedy przejdźmy do właściwej idei dowodu: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda\right) \left({{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\right)=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+\;</MATH>{{Br}}<MATH>+\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}</MATH>|7.100}} Wyznaczmy pierwszy składnik w {{LinkWzór|7.100}}, czyli ile jest on równy: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}(r)}\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}={{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}\left(r{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\right)= {{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}-{{\Omega^2}\over{c^2}}{{1}\over{r}}A_{\alpha\beta}e^{i{{\Omega}\over{c}}r}=0</MATH>|7.101}} zatem ten nasz pierwszy składnik w {{LinkWzór|7.100}} wedle {{LinkWzór|7.101}} jest równy zero, dla drugiego wyrazu mamy podobnie, a dowód przebiega analogicznie jak dla {{LinkWzór|7.101}}, zatem dochodzimy do wniosku, że rozwiązanie {{LinkWzór|7.99}} jest rozwiązaniem {{LinkWzór|7.98}} poprawnym. W rozwiązaniu w {{LinkWzór|7.99}} wybierzmy tylko pierwszy wyraz, a w przypadku drugiego wyrazu stałą w nim występującą wyzerujmy, bo to równanie ma dwie niezależne stałe w dwóch niezależnych składnikach, bo tak robimy, że interesuje nasz rozwiązania rozchodzące się od źródła: {{CentrujWzór|<MATH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\;</MATH>|7.102}} Wyznaczmy wyrażenia pomocnicze, które będą w przyszłości nam potrzebne. Obierzmy kulę, która ma promień &epsilon;, którego promień jest zaniedbywalnie mały. Zakładamy, że źródło jest niezerowe tylko wewnątrz sfery o promieniu podanym wyżej, zatem przejdźmy do dzieła. {{CentrujWzór|<MATH>\lim_{\epsilon\rightarrow 0}\oint {{\Omega^2}\over{c^2}}B_{\alpha\beta}d^3x\leq{{\Omega^2}\over{c^2}}(B_{\mu\nu})_{max}d^3x=\lim_{\epsilon\rightarrow 0}{{\Omega^2}\over{c^2}}(B_{\alpha\beta})_{max}{{4}\over{3}}\pi\epsilon^3=0</MATH>|7.103}} Pozostało nam jeszcze do obliczenia całkę z działania operatora &nabla; względem infinitezymalnej objętości, którego to B{{Sub|&alpha;&beta;}} jest zależna od trzech współrzędnych i czasu w kartezjańskim układzie współrzędnych, która jest przestrzenią zanurzoną w czasoprzestrzeni czterowymniarowej: {{CentrujWzór|<MATH>\int \nabla^2B_{\alpha\beta}d^3x=\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}B_{\alpha\beta}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}{{1}\over{r}}A_{\alpha\beta}e^{-i{{\Omega}\over{c}}r}=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2A_{\alpha\beta}\left[ |-{{1}\over{r^2}}e^{-i{{\Omega}\over{c}}r}-{{1}\over{r}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c}}r}|_{r=\epsilon} \right]= \lim_{\epsilon\rightarrow 0}\left[\left(-4\pi\epsilon^2A_{\alpha\beta}\right){{1}\over{\epsilon^2}} e^{-i{{\Omega}\over{c}}\epsilon}-4\pi\epsilon^2{{1}\over{\epsilon}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c }}\epsilon}\right]=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}\left(-4\pi-4\pi\epsilon i {{\Omega}\over{c}}\right)A_{\alpha\beta}e^{-i{{\Omega}\over{c}}\epsilon}=-4\pi A_{\alpha\beta}</MATH>|7.104}} Następnym wyrażeniem pomocniczym, która korzysta z udowodnionych tożsamości, którego to pierwsza jest równa zero, a druga jest równa stałej tożsamości, czyli za pomocą tożsamości {{LinkWzór|7.103}} i {{LinkWzór|7.104}} możemy wyznaczyć wyrażenie: {{CentrujWzór|<MATH>\int\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}dV=-4\pi A_{\alpha\beta}\;</MATH>|7.105}} Równaniem grawitacji, którego to równanie jest zapisywane w punkcie {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}}, wewnątrz źródła jest opisane wedle wzoru ze stałą {{Formuła|<MATH>\kappa\;</MATH>}}, która jest równa {{LinkWzór|5.46|Słabe_pola_grawitacyjne}}, którego to zapis jest za pomocą tensora napięć-energii i tensora {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, dla słabego pola grawitacyjnego jest wyrażona: {{CentrujWzór|<MATH>{{1}\over{2}}\square\overline{h}_{\alpha\beta}={{8\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\;</MATH>|7.106}} Przecałkujmy wyrażenie {{LinkWzór|7.106}} obustronnie i wiedząc, że mamy definicję rozwiązania {{LinkWzór|7.97}} i w nim stałej {{LinkWzór|7.102}} dla rozmiarów kuli dążącej do prawie do zera, bo nasze źródło jest prawie punktowe: {{CentrujWzór|<MATH>(-4\pi A_{\alpha\beta})e^{-i\Omega t}={{16\pi G}\over{c^4}}\int T_{\alpha\beta}dV\;</MaTH>|7.107}} zatem możemy powiedzieć, że tensor A{{Sub|&alpha;&beta;}} jest zapisany jako całka z iloczynu tensora energii i napięć przez funkcję eksponencjalną , którego argumentem jest funkcja zależna od częstotliwości fali grawitacyjnej, a przed tą naszą rozważaną całką występują stałe mówiące o stałej grawitacji i prędkości światła c: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}\int T_{\alpha\beta}e^{i\Omega t}dV\;</MATH>|7.108}} Jeśli oznaczymy definicję gęstości tensora energii poprzez amplitudę drgań tensora gęstości energii i częstotliwość kołowa tych drgań i całkę występującą po prawej stronie {{LinkWzór|7.108}} poprzez definicję {{LinkWzór|7.109}}, to możemy zdefiniować wyrażenie na J{{Sub|&alpha;&beta;}} jako całkę po pewnej objętości zamkniętej po amplitudzie drgać omawianego tensora gęstości energii: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>T_{\alpha\beta}=S_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.109}}|2={{CentrujWzór|<MATH>J_{\alpha\beta}=\int T_{\alpha\beta}e^{i\Omega t}\Rightarrow J_{\alpha\beta}=\int S_{\alpha\beta}dV\;</maTH>|7.110}}}} Wtedy stałą A{{Sub|&alpha;&beta;}} (po lewej stronie w {{LinkWzór|7.108}}) i wedle definicji tensora gęstości energii poprzez stałą amplitudy {{LinkWzór|7.109}} i wykorzystując przy tym fakt, że w definicji tensora J{{Sub|&alpha;&beta;}} zapisanej w punkcie {{LinkWzór|7.110}}, zatem tensor A{{Sub|&alpha;&beta;}} jest zapisany na podstawie tychże danych w zależności od tensora J{{Sub|&alpha;&beta;}} w postaci: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}\;</MATH>|7.111}} Jest to amplituda fal grawitacyjnych występująca we wyrażeniu {{LinkWzór|7.102}} i wyrażona jest przez całkę z amplitudy drgań tensora gęstości energii. Rozwiązanie dla słabych pól grawitacyjnych wykorzystując wzór {{LinkWzór|7.111}}, przyjmuje postać: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}{{e^{i({{\Omega}\over{c}}r-\Omega t)}}\over{r}}\;</MATH>|7.112}} Jest to rozwiązanie dla fal grawitacyjnych wytwarzanych przez źródła prawie punktowe i nierelatywistyczne, które wytwarzają te właśnie fale zwane promieniowaniem grawitacyjnym. === Właściwości fali grawitacyjnej dla jednego wskaźnika zerowego górnego === Jeśli wykorzystamy równanie {{LinkWzór|7.110}}, którego wielkość jest całką amplitudy po infinitezymalnej objętości tensora gęstości energii oraz korzystając z definicji tensora gęstości energii dla źródła fal grawitacyjnych {{LinkWzór|7.109}}, co można wykorzystać mnożąc {{LinkWzór|7.110}} przez niezerowe wyrażenie {{Formuła|<MATH>e^{-i\Omega t}\;</MATH>}}: {{CentrujWzór|<MATH>J_{\mu\nu}e^{-i\Omega t}=\int T_{\alpha\beta}dV\;</MATH>|7.113}} I jeśli zróżniczkujemy obie strony wyrażenia {{LinkWzór|7.113}} względem czasu w sekundach, ale przedtem podnosząc wszystkie wskaźniki do góry i biorąc jednocześnie drugi wskaźnik jako zerowy, wtedy mamy: {{CentrujWzór|<MaTH>-i\Omega J^{\mu 0}e^{-i\Omega t}=\int {T^{\mu 0}}_{,0}dV=\int {T^{\mu k}}_{,k}dV=\oint T^{\mu k}n_kdS=0\;</MaTH>|7.114}} Powyższe równanie zachodzi, bo tensor gęstości energii po za źródłem fal grawitacyjnych jest równy zero, a my całkujemy po powierzchni, która otacza nasze źródło naszego promieniowania. W powyższych obliczeniach przyjęliśmy, że tensor gęstości energii na zewnątrz źródła jest równy zero na zewnątrz badanego źródła, bo wytwarzać fal grawitacyjnych jest bardzo mały, otrzymujemy: {{CentrujWzór|<maTH>J^{\mu 0}=0\Rightarrow \overline{h}^{\mu 0}=0\;</MATH>|7.115}} Dalsze zerowania się tensora metrycznego {{Formuła|<MATH>\overline{h}^{\mu \nu}\;</MATH>}} wynika stąd, gdy skorzystamy z symetryczności tensora {{LinkWzór|7.94}}, a także wynikającego z symetryczności tensora J{{Sup|&mu;&nu;}} {{LinkWzór|7.110}}, wynika poprzez to {{LinkWzór|7.112}} symetryczność tensora {{Formuła|<MATH>\overline{h}^{\mu\nu}\;</MATH>}}. === Tensor momentu kwadrupolowego rozkładu masy === Tensor momentu kwadrupolowego rozkładu masy definiujemy poprzez tensor gęstości energii o wskaźnikach dwóch górnych i zerowych i wyrazimy ją poprzez funkcję fali o częstotliwości kołowej &Omega; (eksponens z argumentu i&Omega;t) i przez tensor D{{Sup|lm}}: {{CentrujWzór|<MATH>I^{lm}=\int T^{00}x^lx^mdV=D^{lm}e^{-i\Omega t}\;</MATH>|7.116}} Jeśli zachodzi tożsamość {{LinkWzór|7.113}}, to na podstawie tożsamości zdefiniowanej w {{LinkWzór|7.89}}, możemy napisać, dokonując pewnych przekształceń i wykorzystania wzoru {{LinkWzór|7.116}} dla wskażników l,m=1,2,3 w sposób: {{CentrujWzór|<MATH>J^{lm}e^{-i\Omega t}=\int T^{lm}dV\Rightarrow J^{lm}e^{-i\Omega t}={{1}\over{2c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV\Rightarrow J^{lm}e^{-i\Omega t}=-{{\Omega^2}\over{2c^2}}D^{lm}e^{-i\Omega t}\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow J^{lm}=-{{\Omega^2}\over{2c^2}}D^{lm}\Rightarrow J_{lm}=-{{\Omega^2}\over{2c^2}}D_{lm}\;</MATH>|7.117}} Rozwiązanie {{LinkWzór|7.112}} na podstawie obliczeń {{LinkWzór|7.116}}, wykorzystując fakt {{LinkWzór|7.115}}, który mówi, że jedynymi elementami tensora poprawki do tensora metrycznego Minkowskiego w postaci fal grawitacyjnych {{Formuła|<MaTh>\overline{h}_{\alpha\beta}\;</MaTh>}} są równe zero, gdy zachodzi dla &alpha;=0 lub &beta;=0. Zatem wskaźniki przy naszym tensorze są równe 1,2,3, zatem dochodzimy wtedy do wniosku, że zachodzi ogólne rozwiązanie dla fal grawitacyjnych wytwarzane przez źródła prawie punktowe o niezerowych elementach: {{CentrujWzór|<MATH>\overline{h}_{lm}={{2G\Omega^2}\over{c^6}}D_{lm}{{e^{i\left({{\Omega}\over{c}}r-\Omega t\right)}}\over{r}}\;</MaTH>|7.118}} Tensory poprawki do tensora metrycznego Minkowskiego możemy obliczyć ze wzoru {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, gdy mamy już policzone {{LinkWzór|7.118}}. === Układ dwóch kulek jako układ prostego oscylatora === Widzimy, że na podstawie wzorów {{LinkWzór|7.116}}, że gdy I{{Sup|lm}}(t), to dla t=0 ono jest równe D{{Sup|lm}}, to wtedy mając cechowanie, w której dwuwskaźnikowe tensory krzywizny fali grawitacyjnej {{LinkWzór|7.2}}, w której w pewnym cechowaniu tensor amplitudy jest równy {{LinkWzór|7.25}}, wtedy tensory {{LinkWzór|7.118}} w tym cechowaniu możemy przepisać: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}^{TT}_{zi}=0\;</MATH>|7.119}}|2={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{G\Omega^2}\over{c^6}}\left(\not{I}_{xx}-\not{I}_{yy}\right){{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.120}}|3={{CentrujWzór|<MATH>\overline{I}_{xy}^{TT}=2{{G\Omega^2}\over{c^6}}\not{I}_{xy}{{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.121}}}} Przy powyższych uwagach wprowadziliśmy tensor bezśladowy z definiowany w oparciu o tensor I{{Sup|lm}} {{LinkWzór|7.116}}: {{CentrujWzór|<MATH>\not{I}_{lm}=I_{lm}-{{1}\over{3}}\delta_{lm}{I^l}_l\;</MATH>|7.122}} Rozważmy teraz falę emitowaną przez prosty oscylator fal grawitacyjnych, których wykrywamy, za pomocą detektora pokazywanego w punkcie [[#Detekcja fal grawitacyjnych|Detekcja fal grawitacyjnych]]. Ten detektor też wytwarza fale grawitacyjne, w których obie masy drgają z częstotliwością &omega; i z amplitudą A wokół średniego położenia równowagi. W tym przykładzie detektora fal mamy tylko składową I{{Sub|xx}} nierównej zero, tą składową możemy policzyć mając na uwadze harmoniczne drgania: {{CentrujWzór|<MATH>I_{xx}=mc^2\left[(x_1)^2+(x_2)^2\right]=mc^2\left[\left(-{{1}\over{2}}l_0-A\cos\omega t\right)^2+\left({{1}\over{2}}l_0+A\cos\omega t\right)^2\right]=\;</MATH>{{Br}}<MATH> =mc^2{{1}\over{4}}l_0^2+A^2m\cos^2\omega t+l_0mc^2Acos\omega t+{{1}\over{4}}ml_0^2+A^2mc^2\cos^2\omega t+l_0Amc^2\cos\omega t=\;</math>{{Br}}<math>={{1}\over{2}}mc^2l_0^2+2mA^2\cos^2\omega t+2l_0Amc^2\cos\omega t={{1}\over{2}}mc^2l_0^2+2mA^2+mc^2A^2\cos 2\omega t+2l_0Amc^2\cos\omega t</MATH>|7.123}} Zdefiniujmy teraz elementy tensora {{LinkWzór|7.122}} mając na uwadze element tensora I{{Sub|xx}} {{LinkWzór|7.123}} przy częstotliwości kołowej &omega;, czyli wykorzystując czwarty wyraz powyższych końcowych obliczeń możemy zdefiniować elementy tensora {{LinkWzór|7.122}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=I_{xx}-{{1}\over{3}}{I^l}_{l}={{2}\over{3}}I_{xx}={{4}\over{3}}c^2ml_0Ae^{-i\omega t}\\ \not{i}_{yy}={I}_{zz}-{{1}\over{3}}I_{xx}={{1}\over{3}}I_{xx}=-{{2}\over{3}}ml_0c^2Ae^{-i\omega t} \end{cases}\;</MATH>|7.124}} Zdefiniujmy teraz tensory {{LinkWzór|7.119}}, {{LinkWzór|7.120}} i {{LinkWzór|7.121}} w oparciu o tensor {{LinkWzór|7.124}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}=-\overline{h}_{yy}={{2mG\omega^2l_0A}\over{c^4}}{{e^{i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.125}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}=0\;</MATH>|7.126}}}} Jeśli uwzględnimy człon trzeci w końcowych obliczeniach {{LinkWzór|7.123}}, wtedy wzór na tensor {{Formuła|<MATH>\overline{I}_{xx}\;</MATH>}} i {{Formuła|<MATH>\overline{I}_{yy}\;</MATH>}}, który powstaje z {{LinkWzór|7.120}} po zastąpieniu &Omega; przez 2&omega;, wtedy otrzymujemy: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{4mG\omega^2A^2}\over{c^4}}{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.127}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=0\;</MATH>|7.128}}}} Całkowite promieniowanie wytwarzane przez prosty oscylator jest częścią rzeczywistą sumy składników, tzn. {{LinkWzór|7.125}} i {{LinkWzór|7.127}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}={{2mG\omega^2l_0}\over{c^4}}{{\cos\omega\left({{r}\over{c}}-t\right)}\over{r}}+{{4mG\omega^2A^2}\over{c^4}}{{\cos 2\omega\left({{r}\over{c}}-t\right)}\over{r}}\;</MATH>|7.129}} === Układ podwójny gwiazd o jednakowych masach === Wygodniejszym przykładem jest podwójmy układ gwiezdny dwóch jednakowych gwiazd, które krążą po orbicie o promieniu {{Formuła|<MATH>{{1}\over{2}}l_0\;</MATH>}}, czyli wokół wspólnego środka masy, wtedy równanie ruchu z drugiej zasady dynamiki dynamiki Newtona jest: {{CentrujWzór|<MATH>G{{m^2}\over{l_0^2}}=m\omega^2\left({{l_0}\over{2}}\right)\Rightarrow\omega=\left({{2Gm}\over{l_0^3}}\right)^{{{1}\over{2}}}\;</MATH>|7.130}} Położenia układu dwóch gwiazd opiszemy przy odpowiednich wyborze współrzędnych, przy czym oznaczamy przez jedynkę pierwszą gwiazdę, a przez dwójkę drugą gwiazdę: {{CentrujWzór|<MATH>\begin{cases} x_1(t)={{1}\over{2}}l_0\cos\omega t&y_1(t)={{1}\over{2}}l_0\sin\omega t\\ x_2(t)=-x_1(t)&y_2(t)=-y_1(t) \end{cases}\;</MATH>|7.131}} Wiedząc, ze tensor kwadrupolowy definiujemy sposobem I{{Sub|ik}}=mc{{Sup|2}}x_ix_k według {{LinkWzór|7.116}}, wtedy te elementy tego tensora możemy napisać dla podwójnego układu gwiazd, których ich współrzedne zdefiniowane są sposobem {{LinkWzór|7.131}}: {{CentrujWzór|<MATH>\begin{cases} I_{xx}=m c^2(x^2_1(t)+x^2_2(t))={{1}\over{2}}mc^2l_0^2\cos^2\omega t={{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{yy}=mc^2(y^2_1(t)+y^2_2(t))={{1}\over{2}}mc^2l_0^2\sin^2\omega t=-{{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{xy}=mc^2x_1(t)y_1(y)={{1}\over{8}}c^2ml_0^2\sin2\omega t\\ \end{cases}\;</MATH>|7.132}} Napiszmy teraz czemu są równe tensory {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} dla naszego badanego układu wykorzystując jego definicję {{LinkWzór|7.22}}, do którego wykorzystamy już policzone elementy tensora I{{Sub|lm}}, czyli I{{Sub|xx}}, I{{Sub|yy}} i I{{Sub|xy}}, wiedząc, że I{{Sup|l}}{{Sub|l}}=0 na podstawie definicji elementów I{{Sub|lm}} {{LinkWzór|7.132}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=-\not{I}_{yy}={{1}\over{4}}mc^2l_0^2e^{-2i\omega t}\\ \not{I}_{xy}={{1}\over{4}}imc^2l_0^2e^{-2i\omega t}\\ \end{cases}\;</MATH>|7.133}} Patrząc na wzory {{LinkWzór|7.120}} i {{LinkWzór|7.121}} dla &Omega;=2&omega; i na elementy tensora {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} {{LinkWzór|7.133}}, wtedy można zapisać wzory na promieniowanie rozchodzące się wzdłuż kierunku zetowego: {{CentrujWzór|<MATH>\begin{cases} \overline{h}_{xx}^{TT}=-\overline{h}_{yy}={{2mGl_0^2}\over{c^4}}\omega^2{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\\ \overline{h}_{xy}^{TT}={{2imGl_0^2\omega^2}\over{c^4}}{{e^{2i\omega({{r}\over{c}}-t)}}\over{r}}\end{cases}\;</MATH>|7.134}} === Równanie falowe i jego ścisłe rozwiązanie === Ścisłe rozwiązanie falowe dla fali grawitacyjnej dla źródła punktowego jest {{LinkWzór|7.112}}, weźmy sobie pewne źródło składające się ze źródeł punktowych, i w ten sposób fala grawitacyjna dociera pokolei do kolejnych punktów tego ośrodka w czasie t'=t-R/c, wtedy mamy wzór na elementy tensora {{Formuła|<MATH>\overline{h}_{\mu\nu}\;,</MATH>}} dla tego niepunktowego źródła: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}=-{{4G}\over{c^4}}\int J_{\mu\nu}(\vec{r},t^'){{e^{i\Omega\left({{R}\over{c}}-t\right)}}\over{R}}dV=-{{4G}\over{c^4}}\int {{T_{\mu\nu}(t^',x^i)}\over{R}}e^{i\Omega t^'}e^{i\Omega\left({{R}\over{c}}-t\right)}dV=-{{4G}\over{c^4}}\int{{T_{\mu\nu}\left(t-{{R}\over{c}},x^i\right)}\over{R}}d^3x\;</MATH>|7.135}} Weźmy sobie punkt w którym będziemy obserwować falę grawitacyjną, który jest bardzo daleko od źródła fali grawitacyjnej, wtedy powiemy: {{CentrujWzór|<MATH>\left[\sum_i(y^i)^2\right]^{{{1}\over{2}}}\equiv r>>\left[\sum_i(x^i)^2\right]^{{{1}\over{2}}}\;</MATH>|7.136}} Przy tak zachodzącym warunku {{LinkWzór|7.136}} możemy napisać, pod którą pod całką występuje tensor napięć energii a przed całką jest odwrotność promienia r, która wyszła z całki, która była pod postacią R, bo dla małego źródła r i R praktycznie się nie różnią: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}\simeq-{{4G}\over{c^4r}}\int T_{\mu\nu}d^3x\;</MATH>|7.137}} Do wzoru {{LinkWzór|7.137}} możemy wykorzystać {{LinkWzór|7.89}} i definicję tensora kwadrupolowego {{LinkWzór|7.116}}, wtedy tensor fali grawitacyjnej przyjmuje wtedy kształt: {{CentrujWzór|<MATH>\overline{h}_{lm}=-{{2G}\over{c^4r}}I_{lm,0,0}\left(t-{{r}\over{c}}\right)\;</MATH>|7.138}} Jeśli w prowadzimy cechowanie TT, to wtedy wzór na elementy tensora fali grawitacyjnej są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-{{G}\over{c^4r}}\left[\not{I}_{xx,00}\left(t-{{r}\over{c}}\right)-\not{I}_{yy,00}\left(t-{{r}\over{c}}\right)\right]\;</MATH>|7.139}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=-{{2G}\over{c^4r}}\not{I}_{xy,00}\left(t-{{r}\over{c}}\right)\;</MATH>|7.140}}}} == Energia przenoszona przez fale grawitacyjne wytwarzane przez układ oscylatorów grawitacyjnych == Przy pomocy wcześniejszych rozważań zorientowaliśmy się, że fale grawitacyjne przenoszą energię. Fale grawitacyjne unoszą energię od swych źródeł zabierając im energię. Rozważmy teraz ciało próbne, który nie wpływa na pole fali grawitacyjnej, czyli jego wpływ jest zaniedbywalny, wtedy takie podejście jest niekonsystentne, zatem jeśli przez ciało przechodzi fala grawitacyjna, to po przejściu jego przez układ mas, to fala grawitacyjna powinna być słabsza, tzn. układ ciał przez które przechodzi się fala grawitacyjna, sama staje się jego źródłem. Rozważmy teraz falę padającą o częstotliwości kołowej &omega;, to fala wyemitowana przez ciało jest emitowana z tą samą częstotliwością, więc fale przechodząca przez układ mas jest zatem sumą dwóch fal, tzn. fali padającej i fali wyemitowanej. Zobaczymy, że te dwie fale interferują one ze sobą dekonstruktywnie, obniżając wypadkową fali w tym kierunku. W innych kierunkach nie ma interferencji, i fale przechodzą jedno koło drugiej. === Fala grawitacyjna i jego strumień energii === Załóżmy, że mamy falę grawitacyjną wytwarzaną przez układ oscylatorów, który jest układem mas znajdujących się w pewnej płaszczyźnie, wtedy bardzo wygodnie jest rozważanie nie jako oscylatora harmonicznego wytwarzającego fale grawitacyjne, ale układ oscylatorów znajdujących się w płaszczyźnie dla z=0. Oscylatory w rozważanej płaszczyźnie są bardzo blisko siebie, więc je możemy uważać jako układ ciągły oscylatorów, i wprowadźmy przez &sigma; jako liczbę oscylatorów przez jednostkę powierzchni. Fala padająca na układ oscylatorów znajdujących się na płaszczyźnie przy cechowaniu {{LinkWzór|7.25}} określamy przez wzory: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=A\cos\Omega\left({{z}\over{c}}-t\right)\;</MATH>|7.141}}|2={{CentrujWzór|<MATH>\overline{h}_{yy}^{TT}=-\overline{h}_{xx}^{TT}\;</MATH>|7.142}}}} Przy przejściu fali grawitacyjnej przez naszą rozważaną płaszczyznę układu oscylatorów, wtedy ten układ odpowie stabilną oscylacją: {{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\phi)\;</MATH>|7.143}} Wielkości R i &phi; są to wielkości opisane poprzez wzory na &phi; {{LinkWzór|7.69}} i na R {{LinkWzór|7.76}}. Nasz rozważany ruch jest stabilny ponieważ energia dostarczana przez przechodzącą falę grawitacyjną poprzez sprężynkę jest rozpraszana w wyniku tarcia w oscylatorach w których energia jest kompensowana przez pracę wykonywaną na sprężynkach przez pływowe siły fali grawitacyjnej. Fala grawitacyjna dostarcza energii każdemu oscylatorowi równą: {{CentrujWzór|<MATH>{{dE}\over{dt}}=\nu\left({{\partial\xi}\over{\partial t}}\right)^2=m\gamma \left({{\partial\xi}\over{\partial t}}\right)^2\;</MATH>|7.144}} Uśrednienie energii dostarczanej przez falę w ciągu jednego okresu równej T=2&pi;/&Omega; dla wyrażenia {{LinkWzór|7.138}}, w wyniku tego mamy uśrednioną energię z definicji wartości średniej: {{CentrujWzór|<MATH>\left\langle{{dE}\over{dt}}\right\rangle= {{1}\over{{{2\pi}\over{\Omega}}}}\int_0^{{{2\pi}\over{\Omega}}}m\gamma\Omega^2R^2\sin^2(\Omega t+\phi)dt= {{m\gamma\Omega^3R^2}\over{2\pi}}\int_0^{{{2\pi}\over{\Omega}}}{{1}\over{2}}(1-\cos\left(2\Omega t+2\phi)\right)={{m\gamma\Omega^3R^2}\over{2\pi}}{{1}\over{2}}{{2\pi}\over{\Omega}}={{1}\over{2}}m\gamma\Omega^2R^2\;</MATH>|7.145}} Wzór {{LinkWzór|7.145}} przestawia energię dostarczaną do układu oscylatorów przez falę grawitacyjną, przy &sigma; oscylatorach energia fali zmniejsza się przy przejściu przez płaszczyznę o wartość: {{CentrujWzór|<MATH>\delta F=-{{1}\over{2}}\sigma m\gamma\Omega^2R^2\;</MATH>|7.146}} Każdy oscylator ma tensor kwadrupolowy zapisanej przez wzór {{LinkWzór|7.123}}, w której zastąpimy &omega; t przez &Omega;t+&phi;, a A przez R/2. Ponieważ w naszym przypadku R jest niewielkie, to człon jego trzeci możemy pominąć, i w ten sposób otrzymujemy tensor kwadrupolowy: {{CentrujWzór|<MATH>I_{xx}=mc^2l_0R\cos(\Omega t+\phi)\;</MATH>|7.147}} Według wzoru {{LinkWzór|7.118}} każdy oscylator wytwarza falę grawitacyjną: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}={{2G\Omega^2ml_0R}\over{c^4}}{{\cos\left[\Omega({{r}\over{c}}-t)-\phi\right]}\over{r}}\;</MATH>|7.148}} {{Rysunek|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego.png|bg1|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego|rozmiar=150px}} Ilość oscylatorów na powierzchni {{Formuła|<MATH>\pi\tilde{\omega}^2\;</MATH>}} jest {{Formuła|<MATH>\pi\tilde{\omega}^2\sigma\;</MATH>}}, a ilość oscylatorów znajdujących się na powierzchni pomiędzy {{Formuła|<MATH>\tilde{\omega}\;</MATH>}}, a {{Formuła|<math>\tilde{\omega}+d\tilde{\omega}\;</MATH>}} jest wyrażona przez {{Formuła|<MATH>2\pi\sigma\tilde{\omega}d\tilde{\omega}\;</MATH>}}, wtedy całkowity tensor {{Formuła|<math>\overline{h}_{xx}\;\;</math>}} możemy wyrazić przez: {{CentrujWzór|<math>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_0^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]{{\overline{\omega}d\overline{\omega}}\over{r}}\;</MATH>|7.149}} Z rysunku obok należy zauważyć, że {{Formuła|<math>r^2=z^2+\tilde{\omega}^2\Rightarrow rdr=\tilde{\omega}d\tilde{\omega}\;</MATH>}}, i w ten sposób wykorzystując to do wzoru {{LinkWzór|7.149}}: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_z^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</math>|7.150}} Całka {{LinkWzór|7.150}} jest całką rozbieżną, gdy przyjmować będziemy &sigma; jako stałą, więc &sigma; możemy uczynić jako funkcję &sigma;(z)e{{Sup|&epsilon; r}} i pozwoleniu by przy scałkowaniu dla &epsilon; dążyło do zera, i w ten sposób mamy całkę do policzenia: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{4\pi G\Omega^2ml_0R}\over{c^4}}\lim_{\epsilon\rightarrow 0}\int_z^{\infty}\sigma(z)e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</MATH>|7.151}} Wyznaczmy teraz dokładną całkę występującą we wzorze {{LinkWzór|7.151}} po prawej jego stronie: {{CentrujWzór|<MATH>\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr= -{{1}\over{\epsilon}}e^{-\epsilon r}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Bigg|_{z}^{\infty}-{{\Omega}\over{c\epsilon}}\int_z^{\infty}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr=\;</MATH>{{Br}}<MATH>={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\psi\right]-{{\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow {{c^2\epsilon^2+\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{c^2\epsilon}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{c\Omega}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]</MATH>|7.152}} Całkę policzoną w punkcie {{LinkWzór|7.152}} podstawiamy do wzoru {{LinkWzór|7.151}}, i w ostatecznych rozrachunkach dostajemy: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}=-{{4\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.153}} Aby porównać pole {{LinkWzór|7.153}} z falą padającą {{LinkWzór|7.135}} należy to przedostatnie napisać w cechowaniu TT, bo ono pierwotnie nie było w tym cechowaniu, otrzymujemy: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}^{TT}=-\delta\overline{h}_{yy}^{TT}=-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.154}} Wypdadkowa fala grawitacyjna piszemy jako sumę fali grawitacyjnej padającej {{LinkWzór|7.135}} na układ oscylatorów fali grawitacyjnej wytwarzanej przez układ oscylatorów w płaszczyźnie {{LinkWzór|7.154}} i w rezultacie otrzymujemy: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}=\overline{h}_{xx}^{TT}+\delta \overline{h}^{TT}_{xx}=A\cos \left[\Omega\left({{z}\over{c}}-t\right)\right]-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi\right]-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\cos\psi-A\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\sin\psi-\;</MATH>{{Br}}<MATH>-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\Bigg\{\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\cos(\psi-\phi)}_{\cos\psi\cos \phi+\sin\psi\sin\phi}+\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\sin(\psi-\phi)}_{\sin\psi\cos\phi-\cos\psi\sin\phi}\Bigg\}\;</MATH>|7.155}} Powyższe obliczenia będziemy przeprowadzali dla małych wielkości R, czyli z dokładnością wyrazów pierwszego rzędu względem R, wtedy według powyższych obliczeń przeprowadzonych w punkcie {{LinkWzór|7.155}} możemy napisać : {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\cos\psi\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right]-\psi\right)+\;</MATH>{{Br}}<MATH>+\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\left(A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi\right) </MATH>|7.156}} W powyższych obliczeniach należy przyjąć zachodzący warunek na kąt &psi;: {{CentrujWzór|<MATH>A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi=0\Rightarrow\operatorname{tg}\psi={{2\pi G\Omega \sigma l_0R}\over{Ac^3}}\cos\phi\;</MATH>|7.157}} W ten sposób otrzymujemy zależność na tensor {{Formuła|<MATH>\overline{h}_{xx}^{wypadkowe}\;</MATH>}}, który przepisujemy z {{LinkWzór|7.156}} przy zachodzącej tożsamości {{LinkWzór|7.157}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\;</MATH>|7.158}} Wypadkowym efektem przy przejściu fali grawitacyjnej jest zmniejszenie jego amplitudy patrząc na {{LinkWzór|7.158}} o wartość (R ujemne według {{LinkWzór|7.76}}): {{CentrujWzór|<MATH>\delta A={{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\;</MATH>|7.159}} Zmniejszenie amplitudy o wartość {{LinkWzór|7.159}} towarzyszy temu zmiana strumienia energii opisanej przez {{LinkWzór|7.140}}, po skorzystaniu wzorów {{LinkWzór|7.76}} i z {{LinkWzór|7.74}}, co w rezultacie daje mam zastanawiający wynik: {{CentrujWzór|<MATH>{{\delta F}\over{\delta A}}={{-{{1}\over{2}}\sigma m\gamma\Omega^2R^2}\over{{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi}}=-{{\gamma\Omega Rc^3}\over{4\pi Gl_0\sin\phi}}=-{{\gamma\Omega c^3}\over{4\pi Gl_0}}{{R}\over{\sin\phi}}={{\gamma\Omega c^3}\over{4\pi Gl_0}}{{l_0A\Omega^2}\over{4\gamma\Omega}}={{c^3}\over{16\pi G}}\Omega^2A\;</MATH>|7.160}} Wzór {{LinkWzór|7.160}} możemy przecałkować względem argumentu A, i w ten sposób otrzymujemy całkowity strumień energii F w zależności od amplitudy fali A i częstości &Omega;: {{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2A^2\;</MATH>|7.161}} Średnią po kwadracie dla amplitudy A możemy napisać wzorem poniżej, a także po podstawieniu tego do {{LinkWzór|7.161}} mając na myśli tylko dwie niezależne składowe rozważanego tensora: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\langle{\overline{h}_{xx}^{TT}}^2\rangle={{1}\over{2}}A^2\;</MATH>|7.162}}|2={{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2\langle\overline{h}_{\mu\nu}^{TT}{\overline{h}^{\mu\nu}}^{TT}\rangle\;</MATH>|7.163}}}} <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> jd78qq1he3hv3sg4eh4f7xaleiyc3bn 546539 546538 2026-06-12T15:52:15Z Persino 2851 546539 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> Tutaj będziemy się zajmować ''falami grawitacyjnymi'', tzn. co to są fale grawitacyjne, czy to jest fala poprzeczna czy podłużna, dlaczego prędkość grupowa jest równa prędkości fazowej, jak można wykryć fale grawitacyjną za pomocą rezonatora grawitacyjnego, jak je wytwarzać. == Propagacja fal grawitacyjnych == Udowodnimy, że dla naszego pola grawitacyjnego niestacjonarnego w dużej odległości od źródła, pole grawitacyjne rozchodzi się na w sposób fali. Tensor Einsteina dla słabych pól grawitacyjnych daleko od źródła grawitacyjnego przedstawia się wedle schematu {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} i daleko od źródła tensor gęstości energii znika T{{Sup|&alpha;&beta;}}=0, bo w rozważanym punkcie gęstość jest już równa zero, a także ciśnienie jest zaniedbywalnie małe. Z równania grawitacji Einsteina, dla zerowego tensora gęstości energii-pędu powyższego równania, oczywiste jest, że tensor Einsteina G{{Sup|&alpha;&beta;}}=0. Z zerowania się tensora gęstości energii i równanie grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}} po pomnożeniu jego przez dwa i korzystając z definicji operatora d'Alemberta mamy z oczywistych powodów: {{CentrujWzór|<MATH>0=\square \overline{h}_{\alpha\beta}\Rightarrow\left(-{{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}^{\alpha\beta}=0</MATH>|7.1}} Końcowe równanie {{LinkWzór|7.1}} jest równaniem falowym, a poniżej podamy jego rozwiązanie w postaci poniżej, którego to zapis zależy od czterowektora kontrawariantnego położenia x{{Sup|&mu;}}i czterowektora kowariantnego liczby falowej k{{Sup|&mu;}}: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{ik_{\mu}x^{\mu}}</MATH>|7.2}} Końcowe równanie falowe {{LinkWzór|7.1}} po podstawieniu do niego rozwiązania falowego {{LinkWzór|7.2}} i zakładając przy tym, że stała tensorowa A{{Sup|&alpha;&beta;}} występująca w naszym wspomnianym rozwiązaniu jest stałą dowolną: {{CentrujWzór|<MATH>\eta^{\mu\nu}{\overline{h}^{\mu\nu}}_{,\mu,\nu}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}\overline{h}^{\alpha\beta}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}=0\Rightarrow k_{\mu}k^{\mu}=0\;</MATH>|7.3}} Wielkość występująca w {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}} pod eksponensem zapisanej w punkcie {{LinkWzór|7.2}} można rozpisać w zależności od czasu i wektora {{Formuła|<MATH>\vec{r}\;</math>}} wedle sposobów w zależności wprost proporcjonalnej od częstotliwości kołowej i zwykłej liczby falowej k. {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_0 ct+\mathbf{k}\vec{r}</MATH>|7.4}} Jeśli weżniemy, że zachodzi dla fotonu podróżującego wzdłuż wektora przestrzennego {{Formuła|<MATH>\vec{k}\;</MATH>}}, którego elementy są to składowe czterowektora k{{Sup|&mu;}} bez jej współrzędnej czasowej: {{CentrujWzór|<MATH>x^{\alpha}(\lambda)=k^{\alpha}\lambda+l^{\alpha}\;</MATH>|7.5}} Ależ wiadomo jednak, że l{{Sup|&lambda;}} jest stałym tensorem (wektorem). Możemy podstawić {{LinkWzór|7.5}} do {{LinkWzór|7.4}} i się przekonamy, że względem rozwiązania {{LinkWzór|7.5}} wyrażenie {{LinkWzór|7.4}} jest wielkością stałą na podstawie końcowego wyrażenia {{LinkWzór|7.3}}, że długość czterowektora {{Formuła|<MATH>k^{\mu}\;</MATH>}} w czasoprzestrzeni jest wielkością stałą: {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_{\alpha}k^{\alpha}\lambda+k_{\alpha}l^{\alpha}=\operatorname{const}\Rightarrow k_{\alpha}x^{\alpha}=k_{\alpha}l^{\alpha}</MATH>|7.6}} Znając definicję częstotliwości kołowej i liczby falowej poprzez długość fali grawitacyjnej, które można zapisać te wielkości fizyczne wedle: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>k_0={{\omega}\over{c}}\;</MATH>|7.7}}|2={{CentrujWzór|<MATH>k=|\vec{k}|={{2\pi}\over{\lambda}}\;</Math>|7.8}}}} Możemy wykorzystać z równości końcowej {{LinkWzór|7.3}} i wykorzystując dwie tożsamości {{LinkWzór|7.7}} oraz {{LinkWzór|7.8}}, wtedy to nasze wyrażenie rozpiszmy na część czasową i przestrzenną , wtedy możemy powiedzieć, że fala grawitacyjna rozchodzi się z prędkością fazową równą prędkości światła c: {{CentrujWzór|<MATH>k_{\mu}k^{\mu}=0\Rightarrow k_0k_0-k_ik_i=0\Rightarrow k_0^2=\sum^3_{i=1}k_i^2\Rightarrow {{\omega^2}\over{c^2}}=\vec{k}^2\Rightarrow\omega=\left|\vec{k}\right|c\Rightarrow \omega=kc\;</math>|7.9}} Dla {{LinkWzór|7.7}} (współrzędna czasowa liczby falowej) i {{LinkWzór|7.8}} (długość liczby falowej w przestrzeni) przy k{{Sup|&mu;}}, na którą składa się na jej część czasową i przestrzenną, wtedy równanie {{LinkWzór|7.2}} piszemy: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta} e^{i\left({{\omega}\over{c}}ct+\vec{k}\vec{r}\right)}\Rightarrow \overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{i\left(\omega t+\vec{k}\vec{r}\right)}\;</MATH>|7.10}} Wykorzystując definicję prędkości fazowej i grupowej znanej z fizyki ogólnej i zależności końcowej {{LinkWzór|7.9}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>v_f={{\omega}\over{k}}={{kc}\over{k}}=c\;</Math>|7.11}}|2={{CentrujWzór|<MATH>v_g={{d\omega}\over{dk}}={{dkc}\over{dk}}=c\;</Math>|7.12}}}} Na podstawie obliczeń {{LinkWzór|7.11}} i {{LinkWzór|7.12}} udowodniliśmy, że prędkość grupowa i fazowa fal grawitacyjnych są sobie równe, ze względu na właściwości czterowektora falowego w czasoprzestrzeni. Do naszego rozwiązania {{LinkWzór|7.2}} należy dodać cechowanie pola grawitacyjnego {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}, czyli wielkości {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}}, czyli z tego cechowania wynika końcowa tożsamość: {{CentrujWzór|<MATH>{\overline{h}^{\alpha\beta}}_{,\beta}=0\Rightarrow A^{\alpha\beta}k_{\beta}e^{ik_{\alpha}x^{\alpha}}=0\Rightarrow A^{\alpha\beta}k_{\beta}=0</MATH>|7.13}} Wedle powyższych rozważań udowodniliśmy, że fale grawitacyjne są falami poprzecznymi, bo iloczyn skalarny między czterowektorem liczby falowej i tensorem amplitudy fali grawitacyjnej {{LinkWzór|7.2}} jest równy zero. == Bezśladowe cechowanie poprzeczne Lorentza == Mamy sobie nowy układ współrzędnych względem starego układu, w obu układach panuje cechowanie Lorentza {{LinkWzór|5.29|Słabe_pola_grawitacyjne}}, dla równości różniczkowej {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} znajdźmy sobie taki tensor &xi;{{Sup|&alpha;}} przy tych cechowaniach w starym i w nowym układzie współrzędnych, który spełnia równanie różniczkowe {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} tożsamościowo, zatem nasz wspomniany tensor musi zatem spełniać w takim przypadku równanie różniczkowe: {{CentrujWzór|<MATH>\square \xi^{\alpha}=0\;</MATH>|7.14}} Rozwiązaniem równania {{LinkWzór|7.14}} jest rozwiązaniem w postaci funkcji zależnej od czterowektora falowego k{{Sub|&mu;}} wedle: {{CentrujWzór|<math>\xi^{\alpha}=B^{\alpha}e^{ik_{\mu}x^{\mu}}\;</MaTH>|7.15}} Mając rozwiązaniem równania falowego {{LinkWzór|7.2}} i rozwiązanie w postaci funkcji &xi; {{LinkWzór|7.15}} równania {{LinkWzór|7.14}}, wtedy równość końcową {{LinkWzór|5.25|Słabe_pola_grawitacyjne}} możemy zapisać na podstawie: {{CentrujWzór|<MATH>{A'}_{\alpha\beta}=A_{\alpha\beta}-iB_{\alpha}k_{\beta}-iB_{\beta}k_{\alpha}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}\;</MaTh>|7.16}} Obierzmy sobie dodatkowe cechowania obowiązujące w nowym układzie współrzędnych wedle sposobów: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{A'}^{\alpha}}_{\alpha}=0\;</MATH>|7.17}}|2={{CentrujWzór|<MATH>{A^{'}}_{\alpha\beta}U^{\beta}=0\;</MATH>|7.18}}}} Przedstawmy teraz tożsamości wynikające z {{LinkWzór|7.17}} oraz z {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, wtedy na podstawie tego otrzymujemy dwa poniższe warunki: {{ElastycznyWiersz|1={{CentrujWzór|<math>\overline{h}={\overline{h}^{\alpha}}_{\alpha}=0\;</MATH>|7.19}}|2={{CentrujWzór|<MATH>h_{\alpha\beta}=\overline{h}_{\alpha\beta}\;</Math>|7.20}}}} Równość tensorową {{LinkWzór|7.16}} na podstawie pierwszego cechowania {{LinkWzór|7.17}} możemy napisać w postaci: {{CentrujWzór|<MATH>0={A^{\alpha}}_{\alpha}-iB^{\alpha}k_{\alpha}-iB_{\alpha}k^{\alpha}+i{\delta^{\alpha}}_{\alpha}B^{\mu}k_{\mu}\Rightarrow 0={A^{\alpha}}_{\alpha}+2iB^{\alpha}k_{\alpha}\;</MaTH>|7.21}} Mamy cztery wartości tensora B{{Sup|&alpha;}} przy jakiś wartościach A{{Sub|&alpha;&beta;}}, czyli mamy jedno tensorowe równanie więzów z czterema niewiadomymi. Weźmy sobie pod lupę cechowanie {{LinkWzór|7.17}} na podstawie obrania nowego układu spełniającego to cechowanie, wtedy na podstawie {{LinkWzór|7.16}} dostajemy znów inną tożsamość: {{CentrujWzór|<MATH>0=A_{\alpha\beta}U^{\beta}-iB_{\alpha}k_{\beta}U^{\beta}-iB_{\beta}k_{\alpha}U^{\beta}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\Rightarrow A_{\alpha\beta}U^{\beta}=iB_{\alpha}k_{\beta}U^{\beta}+iB_{\beta}k_{\alpha}U^{\beta}-i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\;</MATH>|7.22}} Jeśli pomnożyć końcowe równanie {{LinkWzór|7.22}} przez k{{Sup|&alpha;}}, to lewa strona tejże wspomnianej równości wedle warunku na poprzeczność fal grawitacyjnych wynikające z warunku cechowania Lorentza {{LinkWzór|7.13}} co stąd wynika, że ta strona naszego równania jest zawsze równa zero, ale przy jakich B{{Sub|&alpha;}}, zatem z {{LinkWzór|7.22}} mamy: {{CentrujWzór|<math>0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}+k^{\alpha}iB_{\beta}U^{\beta}k_{\alpha}-ik^{\alpha}\eta_{\alpha\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}-ik_{\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=0\;</MATH>|7.23}} Na podstawie {{LinkWzór|7.23}} jest ona spełniona bez względu jakie wartości przyjmuje B{{Sub|&alpha;}}, zatem dostajemy na podstawie wiadomości z algebry, że równość tensorowa {{LinkWzór|7.22}} ma w sobie trzy niezależne równania z czterema niewiadomymi B{{Sub|&alpha;}}. Jeśli połączymy równanie {{LinkWzór|7.22}} z {{LinkWzór|7.21}} dostajemy cztery niezależne równania z czteroma niewiadomymi, którymi są elementy tensora B{{Sub|&alpha;}}, których jest cztery, zatem na podstawie znanych A{{Sub|&alpha;&beta;}} możemy wyznaczyć właśnie elementy tensora B{{Sub|&alpha;}} jednoznacznie. Dochodzimy do wniosku, że cechowania {{LinkWzór|7.17}} i {{LinkWzór|7.18}} są spełnione w jakimś tam układach odniesienia, których jest nieskończenie wiele jak przy cechowaniu Lorentza {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}. Jeśli założymy, że cząstka spoczywa, to wtedy mamy U{{Sup|&beta;}}=&delta;{{Sup|&beta;}}{{Sub|0}}, wtedy na podstawie równania {{LinkWzór|7.18}} mamy 0=A{{Sub|&alpha;&beta;}}&delta;{{Sup|&beta;}}{{Sub|0}}=A{{Sub|&alpha; 0}}, zatem na podstawie symetryczności A{{Sub|&alpha;&beta;}} pierwsza kolumna i wiersz są zerowymi wielkościami. Jeśli przyjąć, że cząstka porusza się w kierunku osi zetowej, czyli jego czterowektor liczby falowej jest: {{CentrujWzór|<MATH>k^{\mu}=(k^1={{\omega}\over{c}},0,0,k)\;</math>|7.24}} wtedy warunek {{LinkWzór|7.13}} implikuje 0=A{{Sub|&alpha;&beta;}}k{{Sup|&beta;}}=k{{Sup|3}}A{{Sub|&alpha;3}}, zatem na podstawie tego rozważania i symetryczności A{{Sub|&alpha;&beta;}} dostajemy, że trzecia kolumna i wiersz są wielkościami zerowymi. Jeśli weźmiemy dodatkowo warunek {{LinkWzór|7.18}}, z poprzednimi rozważaniami: 0=A{{Sup|&alpha;}}{{Sub|&alpha;}}=A{{Sub|xx}}+A{{Sub|yy}}&rArr;A{{Sub|yy}}=-A{{Sub|xx}}, zatem naszą macierz A{{Sub|&alpha;&beta;}} możemy zapisać: {{CentrujWzór|<MATH>A^{TT}_{\alpha\beta}=\begin{pmatrix} 0&0&0&0\\ 0&A_{xx}&A_{xy}&0\\ 0&A_{xy}&-A_{xx}&0\\ 0&0&0&0\\ \end{pmatrix}</MATH>|7.25}} == Wpływ fal grawitacyjnych na swobodną cząstkę == Cząstka spoczywająca nie ma elementów przestrzennych czterowektora prędkości, wtedy wzór na linię geodezyjną {{LinkWzór|1.74|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}, gdy parametr {{Formuła|<MATH>\lambda\;</MATH>}} jest interwałem czasoprzestrzennym, możemy zapisać: {{CentrujWzór|<MATH>{{du^{\alpha}}\over{ds}}=-{\Gamma^{\alpha}}_{00}\;</MaTH>|7.26}} Do wzoru {{LinkWzór|7.26}} bardzo nam są potrzebne elementy tensora Christoffela na podstawie {{LinkWzór|7.2}} i na podstawie elementów amplitudy tensorowej A{{Sup|&alpha;&beta;}}{{LinkWzór|7.25}}, które to &Gamma;{{Sup|&alpha;}}{{Sub|00}} następnie wyznaczymy, zatem do dzieła: {{CentrujWzór|<math>{\Gamma^{\alpha}}_{00}={{1}\over{2}}\eta^{\alpha\beta}\left(h_{\beta 0,0}+h_{0\beta,0}-h_{00,\beta}\right)\;</MAtH>|7.27}} Zatem na podstawie równania na fale grawitacyjne przy obranym cechowaniu {{LinkWzór|7.17}} i {{LinkWzór|7.18}} oraz macierzy tensora amplitud {{LinkWzór|7.25}}, a także względem równania fali {{LinkWzór|7.2}}, przy obranym cechowaniu zachodziłoby {{LinkWzór|7.20}} oraz że te amplitudy nie mają wierszy oraz kolumn o numerze zerowym oraz jego elementy nie zależą od czasu, zatem elementy tensora Christoffela {{LinkWzór|7.27}} są wielkościami zerowymi, czyli znikają, zatem na podstawie {{LinkWzór|7.26}} cząstka spoczywająca współrzędnościowo pozostanie nadal cząstką spoczywającą, ponieważ cząstka która ma czteroprędkość a właściwie jej część przestrzenną, która równa jest nadal zero, dalej będzie miała ten sam czteroprędkość, którego zmiana jest równa zero wedle naszej metryki przy przyjętych cechowaniu. Zatem dochodzimy do wniosku, że fala grawitacyjna wcale nie wpływa na ruch punktowej masy wedle współrzędnych czteropołożenia położenia, ale to nic nie znaczy. Fala grawitacyjna może zmieniać odległość właściwą między dwoma punktami w sposób wedle {{LinkWzór|1.13|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>\Delta l=\int \left|ds^2\right|^{{{1}\over{2}}}=\int \left|g_{\alpha\beta}dx^{\alpha}dx^{\beta}\right|^{{{1}\over{2}}}=\int^{x_2}_{x_1}\left|g_{xx}\right|^{{{1}\over{2}}}dx=\int^{x_2}_{x_1} \left|\eta_{xx}+h_{xx}\right|^{{{1}\over{2}}}dx\simeq x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;</MATH>|7.28}} Również jak się przekonamy, że za pomocą zmiany długości właściwej &Delta;l można wykryć budując pewne układu fizyczne, mimo że fala grawitacyjna nie działa na punktowe masy. === Równanie dewiacji a odległość wektorowa pomiędzy obydwa spoczywającymi współrzędnościowo cząstkami === Równanie dewiacji z którego będziemy korzystać jest to {{LinkWzór|1.90|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, i w nim zakładamy, że cząstka spoczywa współrzędnościowo, bo prędkości współrzędnościowe przestrzenne jako są równe zero, i będziemy badali odległość przestrzenną iksową odległości pomiędzy dwoma cząstkami, wtedy czterowektor prędkości i odległość początkowa pomiędzy dwoma cząstkami przestawiamy jako U{{Sup|&mu;}}=(1,0,0,0),&xi;{{Sup|&mu;}}=(0,&epsilon;,0,0). W takim wypadku równanie dewiacyjne możemy napisać poniżej wykorzystując przy tym twierdzenie {{LinkWzór|2.106|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}}: {{CentrujWzór|<MATH>{{d^2\xi^{\lambda}}\over{d\lambda^2}}={{1}\over{c^2}}{{d^2\xi^{\lambda}}\over{d t^2}}=\epsilon {R^{\alpha}}_{00x}=-\epsilon {R^{\alpha}}_{0x0}\;</MATH>|7.29}} Dla słabego pola grawitacyjnego mamy {{LinkWzór|5.1|Słabe_pola_grawitacyjne}}, wtedy czterowskaźnikowy tensor krzywizny R{{Sup|&alpha;}}{{Sub|0x0}} {{LinkWzór|2.101|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}} możemy napisać z definicji tensora fali grawitacyjnego {{LinkWzór|7.2}} i definicji tensora amplitudy {{LinkWzór|7.25}}: {{CentrujWzór|<MATH> \begin{cases}{R^x}_{0x0}=R_{x0x0}=-{{1}\over{2}}h_{xx,0,0}\\ {R^y}_{0x0}=R_{y0x0}=-{{1}\over{2}}h_{xy,0,0}\\ {R^y}_{0y0}=R_{y0y0}=-{{1}\over{2}}h_{yy,0,0}=-{R^x}_{0x0} \end{cases}\;</MATH>|7.30}} Wszystkie pozostałe elementy tensora krzywizny inne niż policzone powyżej są równe zero, i ich nie podaliśmy, bo dowód zerowania się ich jest trywialny. Równania dewiacyjne w kierunku osi iksowej piszemy jako: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.30a}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^{y}={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.31}}}} Jeśli tensor &xi;{{Sup|&alpha;}} jest zdefiniowany w kierunku osi igrekowej, wtedy otrzymujemy dwa równania dewiacyjne: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^y={{1}\over{2}}{{\partial^2}\over{\partial t^2}}h_{yy}=-{{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.32}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.33}}}} === Ścisła fala grawitacyjna wynikająca z praw grawitacji Einsteina === Wszystkie fale grawitacyjne, których chcemy zaobserwować na Ziemi są to fale, które są opisywane przy pomocy teorii zlinearyzowanej, ale chcemy opisać fale grawitacyjne przy pomocy teorii dokładnej, czyli opisywanej przy pomocy dokładnego równania grawitacji Einsteina. Obierzmy teraz dwie zmienne nowe zdefiniowane przy pomocy zmiennych t i z, których definicje są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>u=ct-z\;</MATH>|7.34}}|2={{CentrujWzór|<MATH>v=ct+z\;</MATH>|7.35}}}} Mamy sobie zdefiniowany interwał czasoprzestrzenny w przestrzeni Minkowskiego {{LinkWzór|1.6|Wprowadzenie_do_ogólnej_teorii_względności}} i wykorzystując równania na zmienne u {{LinkWzór|7.34}} i {{LinkWzór|7.35}}, z których wyznaczmy wzory na zmienne "u" i "ct", co w ten sposób możemy napisać ten nasz interwał czasoprzestrzenny w tychże zmiennych: {{CentrujWzór|<MATH>ds^2={{1}\over{4}}d(u+v)^2-dx^2-dy^2-{{1}\over{4}}d(v-u)^2={{1}\over{4}}\left(du^2+dv^2+2dudv\right)-dx^2-dy^2-{{1}\over{4}}\left(du^2+dv^2-2dudv\right)=\;</MATH>{{Br}}<MATH>=dvdu-dx^2-dy^2\;</MATH>|7.36}} Zobaczymy, że fale grawitacyjne wpływają na odległości prostopadłe w stosunku do biegu fali grawitacyjnej przy jej opisie, która wynika z jej teorii dokładnej, czyli z równań grawitacji Einsteina. W tym celu napiszmy interwał czasoprzestrzenny, w których wprowadzimy funkcje f(u) i g(u), które są zależne od zmiennej "u": {{CentrujWzór|<MATH>ds^2=dudv-f^2(u)dx^2-g^2(u)dy^2\;</MATH>|7.37}} Napiszemy teraz wszystkie niezerowe elementy tensora Christoffela i niezerowe elementy tensory czterowskaźnikowego tensora krzywizny: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\Gamma^x}_{xu}={{\dot{f}}\over{f}}\;</MATH>|7.38}}|2={{CentrujWzór|<MATH>{\Gamma^y}_{yu}={{\dot{g}}\over{g}}\;</MATH>|7.39}}|3={{CentrujWzór|<MATH>{\Gamma^v}_{xx}={{1}\over{2}}\dot{f}f\;</MATH>|7.40}}|4={{CentrujWzór|<MATH>{\Gamma^v}_{yy}={{1}\over{2}}\dot{g}g\;</MATH>|7.41}}}} {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{R^x}_{uxu}=-{{\ddot{f}}\over{f}}\;</MATH>|7.42}}|2={{CentrujWzór|<MATH>{R^y}_{uyu}=-{{\ddot{g}}\over{g}}\;</MATH>|7.43}}|3={{CentrujWzór|<MATH>R=R_{uu}=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.44}}}} Z powyższych wnioskach możemy napisać tensory Einsteina i dowiemy się, że tensor Einsteina G{{Sub|&mu;&nu;}} posiada również elementy niediagonalne oprócz jej elementów diagonalnych: {{CentrujWzór|<math> G_{uu}=R_{uu}-{{1}\over{2}}g_{uu}R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}-{{1}\over{2}}\cdot 0\cdot R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.45}} {{CentrujWzór|<MATH>G_{uv}=R_{uv}=R_{vu}-{{1}\over{2}}g_{uv}R=-{{1}\over{2}}(-1)R=-{{1}\over{2}}{{1}\over{2}}\left(-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\right)={{1}\over{4}}\left({{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}\right)\;</math>|7.46}} Będziemy badać fale rozprzestrzeniające tam gdzie nie ma masy, wtedy z równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}}, gdy tensor napięć-energii jest równy zero, mamy: {{CentrujWzór|<MATH>{{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}=0\;</MATH>|7.47}} Jako funkcję f(u) możemy przyjąć jako dowolną funkcję i rozwiązać równanie dla g(u). Możemy funkcję f(u) w taki sposób napisać jako funkcję opisującą pewnego rodzaju falę podobną do {{LinkWzór|7.2}} i zapytać siebie jaka jest funkcja przy tak postawionych warunkach, czyli g(u). Dla przypadku prawie liniowego funkcja f(u) jest bliska jedności: {{CentrujWzór|<MATH>f\simeq 1+\epsilon(u)\;</MATH>|7.48}} wtedy funkcja g(u) jest prawie liniowa i w zależności od funkcji prawie liniowej f(u) {{LinkWzór|7.46}} możemy napisać jej rozwiązanie: {{CentrujWzór|<MATH>g\simeq 1-\epsilon(u)\;</MATH>|7.49}} == Detekcja fal grawitacyjnych == {{Rysunek|Fale grawitacyjne.jpg|sjp|Detektor rezonansowy dla wykrycia fal grawitacyjnych.}} Załóżmy, że mamy układ o współczynnik tłumienia &nu; i sprężyny o stałej sprężystości k, który jest oscylatorem harmonicznym tłumionym. Dla pierwszej i drugiej kulki rozważanego układu, równanie ruchu ma się: {{CentrujWzór| <MATH>\begin{cases} mx_{1,0,0}=k(x_2-x_1-l_0)-\nu(x_1-x_2)_{,0}\\ mx_{2,0,0}=-k(x_2-x_1-l_0)-\nu(x_2-x_1)_{,0} \end{cases}\;\;</MATH>|7.50}} Możemy odejmować dwa równania {{LinkWzór|7.50}} od siebie w naszym układzie równań otrzymując wynikowe równanie, które należy rozwiązać: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(x_2-x_1-l_0)-2\nu(\dot{x_2}-\dot{x_1})\;\;</MATH>|7.51}} Wprowadźmy nowe oznaczenia (parametry), które wykorzystamy do równania różniczkowego {{LinkWzór|7.51}}, tzn. parametr &xi; (która jest zależna od położenia obu kulek i długości własnej użytej sprężynki), częstotliwości własnej układu &omega;{{Sub|0}} (zależna od stałej sprężystości sprężynki i masy tej sprężynki), a także od stałej &gamma; (która jest zależna od stałej tłumienia &gamma; i masy sprężynki), zatem te podstawienia: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\xi=x_2-x_1-l_0\;\;</MATH>|7.52}}|2={{CentrujWzór|<MATH>\omega_0^2={{2k}\over{m}}\;\;</MATH>|7.53}}|3={{CentrujWzór|<MATH>\gamma={{\nu}\over{m}}\;\;</MATH>|7.54}}}} Na podstawie oznaczeń &xi; {{LinkWzór|7.52}}, &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, wtedy równanie {{LinkWzór|7.51}} przechodzi przy tych nowych oznaczeniach w równoważną postać: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=0\;\;</MATH>|7.55}} W równaniach ruchu dla dwóch kulek {{LinkWzór|7.50}} zastosowaliśmy równania ruchu Newtona, bo mamy do czynienia z prędkościami bardzo małymi (o wiele mniejszymi od prędkości światła). Ponieważ mamy do czynienia z ogólną teorią względności, czyli mamy do czynienia z teorią grawitacją Einsteina, to powyższe wywody nie są w ogólności spełnione i chwilową długość sprężyny jest inna niż zakładana, bo sprężyna jest w układzie dwóch kulek, których fala grawitacyjna zakłóca prawdziwą długość sprężyny, długość sprężyny według rozważanej metryki jest inna niż metryce Minkowskiego (czasoprzestrzeń płaska), jeśli sprężyna jest położona wzdłuż osi iksowej w przestrzeni, ma długość na podstawie {{LinkWzór|7.28}} wyrażonej według: {{CentrujWzór|<MATH>l(t)=x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.56}} Należy pamiętać, że długość l{{Sub|0}} jest bardzo mała w porównaniu z długością jakim światło może przebyć w ciągu jednej sekundy. Równania {{LinkWzór|7.50}} możemy zapisać w bardziej ogólny sposób uwzględniając jako sprężynę w ruchu, który ma w tej chwili długość l i zapisać je nie jako różnica położeń dwóch kul z dokładnością do znaku, ale jako różnica aktualnej długości kulki l i jej długości początkowej, bo tutaj nie mamy przestrzeni płaskiej tylko przestrzeń zakrzywioną i uwzględniając jakoby fala grawitacyjna nie oddziaływuje współrzędnościowo z punktowymi masami jako osobno, co tutaj jest ważne, ale kulki oddziałują ze sobą tylko za pomocą sprężynki przez promieniowanie grawitacyjne, które to kulki były początkowo w spoczynku przed dotarciem do nich tej rozważanej fali: {{CentrujWzór|<MATH>\begin{cases} mx_{1,0,0}=k(l-l_0)+\nu(l-l_0)_{,0}\\ mx_{2,0,0}=-k(l-l_0)-\nu(l-l_0)_{,0} \end{cases}\;</MaTh>|7.57}} Wprowadźmy nowe oznaczenia, która jest funkcją iksowych położeń kul, i poprawki do tensora metrycznego Minkowskiego i długości początkowej sprężyny nierozciągniętej i jest oznaczona ona przez tożsamość: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.58}} Na podstawie powyższej tożsamości możemy napisać przekształcenia wyznaczając różnicę współrzędnych iksowych dwóch rozważanych kulek: {{CentrujWzór|<MATH>x_2-x_1\simeq\xi+l_0+{{1}\over{2}}h_{xx}l_0\;\;</MATH>|7.59}} Powyżej przyjęliśmy, że zmiana długości własnej sprężynki stojąca przy h{{Sub|xx}} dla słabego pola grawitacyjnego jest bardzo mała, zatem różnica położeń kulek jest w przybliżeniu równa długości sprężynki. Równość {{LinkWzór|7.50}} z poprawką na chwilową długość sprężyny, która jest nie równa różnicy współrzędnych iksowych kulek w zakrzywionej czasoprzestrzeni: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(l-l_0)-2\nu(l-l_0)_{,0}\;\;</MATH>|7.60}} Wykorzystując oznaczenia na parametry &xi; {{LinkWzór|7.58}}, oraz na &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, to równanie różniczkowe {{LinkWzór|7.60}} zapisujemy poniżej, który również zawiera poprawkę do tensora metrycznego Minkowskiego dla tychże rozważanych kulek, a także zawiera zmianę długości sprężyny l-l{{Sub|0}} zapisanej według {{LinkWzór|7.59}}: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=-{{1}\over{2}}h_{xx,0,0}l_0\;\;</MATH>|7.61}} Powyższe równanie jest równaniem oscylatora harmonicznego tłumionego z przyłożoną siłą, która zmienia się w sposób harmoniczny (w tym przypadku promieniowanie grawitacyjne, które działa na kule poprzez sprężynkę). Fala kulista w dużej odległości od źródła jest falą w przybliżeniu płaską, a zatem jeśli {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;\;</MATH>}} opisuje falę płaską wedle definicji tensora Einsteina {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} dla tensora gęstości energii równej zero, wtedy równania grawitacji Einsteina opisują {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATh>}} wedle {{LinkWzór|7.2}}, jeśli częstotliwość tej fali jest jakaś tam, to częstotliwość fali {{Formuła|<MATH>h_{xx}\;</MATH>}}, wedle równości {{LinkWzór|5.20|Słabe_pola_grawitacyjne}} jest taka sama, zatem jeśli pierwsza zmienia się względem funkcji kosinus (dla {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}), to druga też, zatem niech będą funkcje {{Formuła|<math>h_{xx}\;</MaTH>}} i {{Formuła|<MATH>\xi\;</Math>}}, która zmieniają się względem czasu z częstotliwością &Omega;: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>h_{xx}=A\cos(\Omega t)\;\;</MATH>|7.62}}|2={{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\varphi)\;\;</MATH>|7.63}}}} Powyższe dwa równania są prawdziwe, bo można tak wybrać przesunięcie fazowe oraz &Omega;, by były spełnione równania ruchu dwóch kulek w polu grawitacyjnym, których drgania kulek maja się jak promieniowanie grawitacyjne. Podstawiamy za h{{Sub|xx}} równania fali grawitacyjnej {{LinkWzór|7.62}} i przemieszczenia harmonicznego kulek {{LinkWzór|7.63}}, którego zmianę powoduje fala grawitacyjna (promieniowanie grawitacyjne) o takiej samej częstotliwości co fala grawitacyjna, do równości {{LinkWzór|7.61}}, co w rezultacie ono przyjmuje postać: {{CentrujWzór|<MATH>-\Omega^2 R\cos(\Omega t+\varphi)+\omega_0^2 R\cos(\Omega t+\varphi)-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.64}} Co po krótkich przestawianiach wyrazów w tożsamości {{LinkWzór|7.64}}, czyli grupując wyrazy stojące przy funkcji sinus i kosinus: {{CentrujWzór|<MATH>\cos(\Omega t+\varphi)R\left[-\Omega^2+\omega_0^2\right]-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.65}} Wykorzystując z własności kosinusów i sinusów sumy składników pod tymi funkcjami trygonometrycznymi możemy zapisać {{LinkWzór|7.65}} rozwijając w odjemnej naszej tożsamości funkcji kosinus i odjemniku funkcję sinus: {{CentrujWzór|<MATH>\left(\cos(\Omega t)\cos\varphi-\sin(\Omega t)\sin\varphi\right)R(\omega_0^2-\Omega^2)-2\gamma R\Omega\left(\cos(\Omega t)\sin\varphi+\sin(\Omega t)\cos\varphi\right)=\;</MATH>{{Br}} <MATH>={{1}\over{2}}l_0A\Omega^2\cos(\Omega t)\;</MATH>|7.66}} Grupujemy wyrazy z kosinusami i sinusami, których argumentem jest &Omega; t we wzorze {{LinkWzór|7.66}} i aby ona zachodziła dla dowolnych chwili czasu t, to nasze wspomniane równanie przechodzi w dwa równania równoważne pierwotnemu. {{ElastycznyWiersz|1={{CentrujWzór|<MaTH>(\omega_0^2-\Omega^2)R\cos\varphi-2\gamma R\Omega\sin\varphi={{1}\over{2}}l_0 A\Omega^2\;</MATH>|7.67}}|2={{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)R\sin\varphi-2\gamma R\Omega\cos\varphi=0\;</MATH>|7.68}}}} Z tożsamości uzyskanej w punkcie {{LinkWzór|7.68}} możemy wyznaczyć tanges przesunięcia fazowego kulek względem fali promieniowania grawitacyjnego, który jak udowodnimy zależy tylko od częstotliwości fali grawitacyjnej &Omega; i częstotliwości własnej detektora fali grawitacyjnej: {{CentrujWzór|<MATH>\operatorname{tg}(\varphi)={{2\gamma\Omega}\over{\Omega^2-\omega_0^2}}\;\;</MATH>|7.69}} Pomnóżmy równanie {{LinkWzór|7.67}} przez wyrażenie {{Formuła|<MATH>2\gamma\Omega\;\;</MATH>}}, czyli podwojony iloczyn stałej tłumienia &gamma; i częstotliwości drgań fali grawitacyjnej, wtedy dostajemy tożsamość: {{CentrujWzór|<MATH>(\omega_0-\Omega^2)2\gamma\Omega R\cos\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\;\;</MATH>|7.70}} a także wykorzystując również tożsamość {{LinkWzór|7.68}}, którą podstawiamy do tożsamości {{LinkWzór|7.70}}, wtedy oczywiście dostajemy wniosek: {{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)(\omega_0^2-\Omega^2)R\sin\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\Rightarrow \left[(\omega_0^2-\Omega^2)^2+4\gamma^2\Omega^2\right]R\sin\varphi=-l_0A\gamma\Omega^3\;</MATH>|7.71}} Policzmy teraz czemu jest równa funkcja sin&phi; wyrażając kwadrat kotangensa względem kwadratu funkcji sinus &phi;, korzystając z definicji tangensa kąta, który jest ilorazem sinusa kąta &phi; przez jego kosinus tego samego kąta, i jeszcze korzystając z definicji jedynki trygonometrycznej, możemy napisać: {{CentrujWzór|<math>\operatorname{ctg}^2\varphi={{\cos^2\varphi}\over{\sin^2\varphi}}= {{1-\sin^2\varphi}\over{\sin^2\varphi}}=\sin^{-2}\varphi-1\Rightarrow \sin^{-2}\varphi=\operatorname{ctg}^{2}\varphi+1\Rightarrow \sin^2\varphi={{1}\over{\operatorname{ctg}^2\varphi+1}}\;</MATH>|7.72}} Ze wzoru na <MATH>\sin^2\varphi\;</MATH> w ostatnim rozważanym wyrażeniu {{LinkWzór|7.72}} przechodzimy do wzoru na funkcję trygonometryczną dla naszego zadania: {{CentrujWzór|<MATH>\sin^2\varphi={{1}\over{1+({{\Omega^2-\omega_0^2)}\over{2\gamma\Omega}})^2}}= {{1}\over{{{4\gamma^2\Omega^2+(\Omega^2-\omega_0^2)^2}\over{4\gamma^2\Omega^2}}}}= {{4\gamma^2\Omega^2}\over{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}\;</MAth>|7.73}} Równość {{LinkWzór|7.73}} możemy spierwiastkować obustronnie, tak by po lewej stronie wspomnianego równania otrzymać sam sinus kata &phi;, wtedy otrzymujemy wyrażenie: {{CentrujWzór|<MATH>\sin\varphi={{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.74}} Wyznaczony wzór na funkcję sin&phi; zapisanej i udowodnionej w punkcie {{LinkWzór|7.74}} podstawiamy do wzoru uzyskanego wcześniej w punkcie {{LinkWzór|7.71}}, wtedy można otrzymać tożsamość, którą poddamy dalszej obróbce: {{CentrujWzór|<MATH>\left[(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2\right]R{{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}=-l_0A\gamma\Omega^3\Rightarrow 2\gamma\Omega R\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}=-l_0A\gamma\Omega^3\;</MATH>|7.75}} Zatem amplituda drgań dla oscylatora harmonicznego tłumionego jest napisana wedle wzoru poniżej, która jest zależna od częstotliwości kołowej drgań fali grawitacyjnej &Omega;, częstotliwości własnej układu własnego &omega;{{Sub|0}} i współczynnika tłumienia &gamma;: {{CentrujWzór|<MATH>R=-{{{{1}\over{2}}l_0A\Omega^2}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.76}} Jest ona zależna od częstotliwości rezonansowej &omega;{{Sub|0}} i współczynnika pełniącego rolę współczynnika tłumienia &gamma;. Energia układu (oscylatora harmonicznego tłumionego) jest zdefiniowana jako energia kinetyczna obu kulek i energii potencjalnej sprężyny w polu grawitacyjnym, bo tutaj sprężynka znajduje się w polu promieniowania grawitacyjne oddziałujące ze sprężynką. {{CentrujWzór|<MATH>E={{1}\over{2}}m(x_{1,0})^2+{{1}\over{2}}m(x_{2,0})^2+{{1}\over{2}}k\xi^2\;</MATH>|7.77}} Jeśli dodamy do siebie dwa równania układu równań {{LinkWzór|7.57}} do siebie, wtedy otrzymamy równanie różniczkowe poniżej i założymy że nasz układ był w spoczynku, zanim dodarła do naszego badanego układu fala grawitacyjna, czyli przyjmujemy, że C=0, który jest warunkiem brzegowym: {{CentrujWzór|<MATH>(x_2+x_1)_{,0,0}=0\Rightarrow x_{2,0}+x_{1,0}=C\Rightarrow x_{2,0}=-x_{1,0}+C\;</MATH>|7.78}} Parametr {{LinkWzór|7.58}} można zapisać, jeśli przyjmiemy założenie, że mamy do czynienia z słabym polem grawitacyjnym w postaci fal grawitacyjnym, wtedy czwarty człon w nim możemy pominąć: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}l_0\simeq \xi=x_2-x_1-l_0\Rightarrow \xi_{,0}\simeq x_{2,0}-x_{1,0}=2x_{2,0}</MATH>|7.79}} zatem wedle obliczeń {{LinkWzór|7.79}}, które dokonaliśmy w tymże punkcie i dla naszych warunków brzegowych możemy napisać tożsamość między prędkościami dwóch kulek. {{CentrujWzór|<MATH>x_{1,0}=-x_{2,0}=-{{1}\over{2}}\xi_{,0}\;</MATH>|7.80}} Energia układu {{LinkWzór|7.77}} po wykorzystaniu dwóch podstawień do którego będziemy wykorzystywali obliczenia {{LinkWzór|7.80}}, które wynika z punktu przestawionego wzorem {{LinkWzór|7.79}}, wtedy ową energię chwilową zapisujemy wedle schematu poniżej, która jest zależna od pochodnej zmiennej &xi; względem czasu i samego przesunięcia &xi;, którego to &xi; jest to przesunięcie od położenia równowagi obu rozważanych w tym zadaniu kulek układu fizycznego: {{CentrujWzór|<MATH>E={{1}\over{2}}m(-{{1}\over{2}}\xi_{,0})^2+{{1}\over{2}}m({{1}\over{2}}\xi_{,0})^2+ {{1}\over{2}}\omega_0^2({{1}\over{2}}\xi)^2\Rightarrow E={{1}\over{4}}m\left(\xi^2_{,0}+\omega_0^2\xi^2\right)\;</MATH>|7.81}} Wykorzystujemy definicję parametru &xi; napisanej w punkcie {{LinkWzór|7.63}}, które to podstawiamy do równości {{LinkWzór|7.81}} na energię układu, wtedy owe równanie ma wygląd: {{CentrujWzór|<MATH>E={{1}\over{4}}m\left(R^2\Omega^2\sin^2(\Omega t+\varphi)+\omega_0^2R^2\cos^2(\Omega t+\varphi)\right)\;</MATH>|7.82}} Wiemy jednak, że średnia wartość kwadratu kosinusa z definicji wartości średniej jest równa połowie jedynki względem czasu t, zatem co zapisujemy wzorem poniżej. Widzimy, że powyższa równość jest zależna od częstotliwości fali grawitacyjnej &Omega; i przesunięcia fazowego &phi;. {{CentrujWzór|<MATH>\langle \cos^2(\Omega t+\varphi)\rangle=\langle\sin^2(\Omega t+\varphi)\rangle={{1}\over{2}}\;</MATH>|7.83}} Średnia wartość energii oscylatora wedle wartości chwilowej {{LinkWzór|7.81}}, korzystając już z obliczonej wartości średniej kwadratu kosinusa, to średnią energię drgań układu dwóch kulek i sprężyny zapisujemy wedle: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8}}mR^2(\Omega^2+\omega_0^2)\;</MATH>|7.84}} Amplituda rezonansowa nazywamy takie R w tożsamości {{LinkWzór|7.76}}, dla które zachodzi, gdy &omega;{{Sub|0}}=&Omega;, wtedy dochodzimy do wniosku, że mamy amplitudę rezonansową drgań przy udziale fal grawitacyjnych: {{CentrujWzór|<MATH>R={{{{1}\over{2}}l_0\Omega^2 A}\over{\sqrt{4\Omega^2\gamma^2}}}= {{{{1}\over{2}}l_0\Omega^2 A}\over{2\Omega\gamma}}={{1}\over{4}}l_0 A{{\Omega}\over{\gamma}}\;</MATH>|7.85}} Energia rezonansowa średnia {{LinkWzór|7.84}} na podstawie amplitudy rezonansowej układu dwóch kulek połączonej sprężynką policzonej w punkcie {{LinkWzór|7.85}}, do której to podstawimy do wzoru na średnią energię: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8\cdot 16}}ml_0^2A^2\left({{\Omega}\over{\gamma}}\right)^2 2\Omega^2= {{1}\over{8\cdot 8}}ml_0^2A^2\Omega^2\left({{\Omega}\over{\gamma}}\right)^2= {{1}\over{64}}ml_0^2\Omega^2A^2\left({{\Omega}\over{\gamma}}\right)^2 \;</MATH>|7.86}} Dobrocią oscylatora harmonicznego tłumionego nazywamy wielkość zdefiniowanej wedle sposobu poniżej, z której ją wyznaczymy dla częstotliwości rezonansowej, tzn. gdy <MATH>\Omega=\omega_0\;</Math> {{CentrujWzór|<MATH>Q={{\omega_0}\over{2\gamma}}\Rightarrow 2Q={{\Omega}\over{\gamma}}\;</MATH>|7.87}} Energia średnia rezonansowa {{LinkWzór|7.86}} w której podstawimy za stosunek {{Formuła|<MaTH>{{\Omega}\over{\gamma}}\;</MATH>}} podwojoną dobroć Q, czyli z korzystamy ze wzoru {{LinkWzór|7.87}}, zatem tą pierwszą wielkość fizyczną możemy napisać sposobem: {{CentrujWzór|<MATH>{\langle E\rangle}_{rezonas}={{1}\over{16}}ml_0\Omega^2A^2Q^2\;</MATH>|7.88}} I co kończy nasze rozważania na temat detekcji fal grawitacyjnych. == Tensorowe twierdzenie wirialne a lokalna zasada zachowania energii == Naszym wzorem, które zechcemy udowodnić jest twierdzenie łączący tensor gęstości energii o wskaźnikach zerowych górnych (lewa strona) po przez wyrażenie z tensorem gęstości energii o wskaźnikach górnych o wartościach przestrzennych: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV=2\int T^{lm}dV\;</MATH>|7.89|Obramuj}} Powyższy wzór jest wzorem, w której jest dokonane całkowanie po pewnej objętości, której ogranicza pewna powierzchnia zamknięta, na której powierzchni tensor gęstości energii jest równa zero, bo tak zamknięta powierzchnia jest poza obszarem, w której tensor gęstości energii jest różny od zera. Dowód powyższego lematu opiera się na zasadzie zachowawczości tensora napięć-energii dla słabego pola grawitacyjnego {{LinkWzór|1.49|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>{T^{\mu\nu}}_{,\nu}=0\Rightarrow {T^{\mu 0}}_{,0}+{T^{\mu k}}_{,k}=0\Rightarrow {T^{\mu 0}}_{,0}=-{T^{\mu k}}_{,k}\;</MATH>}} Zatem przejdźmy do głównego nurtu dowodu wiedząc, że T{{Sup|&mu;&nu;}} jest równe zero na zewnątrz źródła i będziemy korzystać z symetryczności tensora gęstości energii. {{CentrujWzór|<mATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= {{1}\over{c}}{{d}\over{dt}}\int {T^{00}}_{,0}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int {T^{0k}}_{,k}x^lx^mdV \;</MATH>|7.90}} Rozwińmy tożsamość występująca we wzorze {{LinkWzór|7.90}}, zatem korzystając z twierdzenia o pochodnej iloczynu trzech składników można napisać tożsamość: {{CentrujWzór|<MaTH>(T^{0k}x^lx^m)_{,k}={T^{0k}}_{,k}x^lx^m+T^{0k} {x^l}_{,k}x^m+T^{0k}x^l{x^m}_{,k}= {T^{0k}}_{,k}x^lx^m+T^{0k}{\delta^l}_{k}x^m+T^{0k}x^l{\delta^m}_{k} ={T^{0k}}_{,k}x^lx^m+T^{0l}x^m+\;</MATH>{{Br}}<MATH>+T^{0m}x^l\Rightarrow {T^{0k}}_{,k}x^lx^m=(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\;</MaTH>|7.91}} Wyrażenie końcowe zapisane w rozważanej powyżej w punkcie {{LinkWzór|7.91}} możemy podstawić do tożsamości fizycznej {{LinkWzór|7.90}} wynikającej z zachowalności energii i pędu, wtedy dostajemy równanie: {{CentrujWzór|<MaTH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int\left[(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\right]dV=-{{1}\over{c}}{{d}\over{dt}}\int T^{0k}x^lx^mdS_k+\int {T^{0l}}_{,0}x^mdV+\;</MATH>{{Br}}<MATH>+\int {T^{0m}}_{,0}x^ldV=-\int {T^{kl}}_{,k}x^mdV-\int {T^{km}}_{,k}x^ldV \;</MATH>|7.92}} W powyższym rozpisaniu korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa zamiany całek objętościowych, w której jest całkowanej po ściśle określonej nam objętości, na całkę powierzchniową, w której jest całkowanie po powierzchni zamkniętej ograniczającą wcześniej wprowadzoną objętość. Następnym krokiem jest udowodnienie poniżej tożsamości korzystając z twierdzenia z pochodnej iloczynu znanej z analizy: {{CentrujWzór|<MATH>(T^{kl}x^m)_{,k}dV={T^{kl}}_{,k}x^m+T^{kl}{\delta^m}_{k}={T^{kl}}_{,k}x^m+T^{ml}\;</math>|7.93}} Możemy wykorzystać tożsamość {{LinkWzór|7.93}} do dalszej części dowodu {{LinkWzór|7.92}}, wiedząc jednocześnie że pierwsza i trzecia ciałka jest równa zero przy wykorzystaniu twierdzenia Ostrogradzkiego-Gauusa, która jest całką po powierzchni zamkniętej, którego to T{{Sub|&alpha;&beta;}} jest równa zero na tej powierzchni, wtedy dochodzimy do wniosku: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -\int (T^{kl}x^m)_{,k}dV+\int T^{ml}dV-\int (T^{km}x^l)_{,k}dV+\int T^{lm}dV=\int T^{ml}dV+T^{lm}dV=2\int T^{ml}dV\;</MaTH>|7.94}} W powyższym dowodzie znów korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa, w której na jej powierzchni całkowanej panuje zerowa wartość tensora gęstości energii. Co kończy dowód twierdzenia {{LinkWzór|7.89}}. == Wytwarzanie fal grawitacyjnych == Fala grawitacyjna rozchodząca się od niezerowego źródła, w której gęstość materii poza źródłem jest równa zero, a także ciśnienie jest zaniedbywalnie małe, zatem tensor gęstości energii dla punktu poza źródłem zapisujemy wedle: {{CentrujWzór|<MATH>T^{\alpha\beta}=0\;</Math>|7.95}} Zatem biorąc to do równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}} i z przybliżeniem słabości pola grawitacyjnego tensor Einsteina wedle końcowego przedstawienia {{LinkWzór|5.17|Słabe_pola_grawitacyjne}}, jeśli będziemy wykorzystywać {{LinkWzór|7.95}}, zapisujemy wtedy go łącząc to z prawem grawitacji Einsteina: {{CentrujWzór|<MATH>G^{\alpha\beta}=\kappa T^{\alpha\beta}\Rightarrow G^{\alpha\beta}=0\Rightarrow {{1}\over{2}}\square\overline{h}_{\alpha\beta}=0\;</MATH>|7.96}} Rozwiązaniem równań grawitacji Einsteina dla słabego pola grawitacji {{LinkWzór|7.96}} jest wyrażenie {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, która jest zależna od stałej częstotliwości kołowej &Omega; i czasu t: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=B_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.97}} Aby sprawdzić jakie B{{Sub|&alpha;&beta;}} spełnia równanie {{LinkWzór|7.96}} dla odpowiedzi {{LinkWzór|7.97}}, to po podstawieniu naszego rozwiązania do rozważanego równania różniczkowego, mamy: {{CentrujWzór|<MATH>\square B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=0\;</MATH>|7.98}} Można udowodnić, że rozwiązanie w {{Formuła|<MATH>B_{\alpha\beta}\;</MATH>}} równania różniczkowego {{LinkWzór|7.98}} jest rozwiązanie w postaciach zależnych od dwóch niezależnych stałych występujące w dwóch składnikach osobno: {{CentrujWzór|<MaTH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\;</MATH>|7.99}} Sprawdźmy czy {{LinkWzór|7.99}} jest rzeczywiście jest rozwiązaniem równania {{LinkWzór|7.98}}, zatem jeśli obierzemy definicję kwadratu &Delta;=&nabla;{{Sup|2}} we współrzędnych kulistych, zatem operator &Delta; zapisujemy w postaci: {{CentrujWzór|<MATH>\Delta=\nabla^2={{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda</MATH>}} to policzmy, czy rozwiązanie {{LinkWzór|7.99}} jest poprawnym rozwiązaniem dla równania różniczkowego {{LinkWzór|7.98}} dla promienia od źródła, który się znajduje dla r=0, wtedy przejdźmy do właściwej idei dowodu: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda\right) \left({{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\right)=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+\;</MATH>{{Br}}<MATH>+\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}</MATH>|7.100}} Wyznaczmy pierwszy składnik w {{LinkWzór|7.100}}, czyli ile jest on równy: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}(r)}\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}={{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}\left(r{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\right)= {{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}-{{\Omega^2}\over{c^2}}{{1}\over{r}}A_{\alpha\beta}e^{i{{\Omega}\over{c}}r}=0</MATH>|7.101}} zatem ten nasz pierwszy składnik w {{LinkWzór|7.100}} wedle {{LinkWzór|7.101}} jest równy zero, dla drugiego wyrazu mamy podobnie, a dowód przebiega analogicznie jak dla {{LinkWzór|7.101}}, zatem dochodzimy do wniosku, że rozwiązanie {{LinkWzór|7.99}} jest rozwiązaniem {{LinkWzór|7.98}} poprawnym. W rozwiązaniu w {{LinkWzór|7.99}} wybierzmy tylko pierwszy wyraz, a w przypadku drugiego wyrazu stałą w nim występującą wyzerujmy, bo to równanie ma dwie niezależne stałe w dwóch niezależnych składnikach, bo tak robimy, że interesuje nasz rozwiązania rozchodzące się od źródła: {{CentrujWzór|<MATH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\;</MATH>|7.102}} Wyznaczmy wyrażenia pomocnicze, które będą w przyszłości nam potrzebne. Obierzmy kulę, która ma promień &epsilon;, którego promień jest zaniedbywalnie mały. Zakładamy, że źródło jest niezerowe tylko wewnątrz sfery o promieniu podanym wyżej, zatem przejdźmy do dzieła. {{CentrujWzór|<MATH>\lim_{\epsilon\rightarrow 0}\oint {{\Omega^2}\over{c^2}}B_{\alpha\beta}d^3x\leq{{\Omega^2}\over{c^2}}(B_{\mu\nu})_{max}d^3x=\lim_{\epsilon\rightarrow 0}{{\Omega^2}\over{c^2}}(B_{\alpha\beta})_{max}{{4}\over{3}}\pi\epsilon^3=0</MATH>|7.103}} Pozostało nam jeszcze do obliczenia całkę z działania operatora &nabla; względem infinitezymalnej objętości, którego to B{{Sub|&alpha;&beta;}} jest zależna od trzech współrzędnych i czasu w kartezjańskim układzie współrzędnych, która jest przestrzenią zanurzoną w czasoprzestrzeni czterowymniarowej: {{CentrujWzór|<MATH>\int \nabla^2B_{\alpha\beta}d^3x=\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}B_{\alpha\beta}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}{{1}\over{r}}A_{\alpha\beta}e^{-i{{\Omega}\over{c}}r}=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2A_{\alpha\beta}\left[ |-{{1}\over{r^2}}e^{-i{{\Omega}\over{c}}r}-{{1}\over{r}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c}}r}|_{r=\epsilon} \right]= \lim_{\epsilon\rightarrow 0}\left[\left(-4\pi\epsilon^2A_{\alpha\beta}\right){{1}\over{\epsilon^2}} e^{-i{{\Omega}\over{c}}\epsilon}-4\pi\epsilon^2{{1}\over{\epsilon}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c }}\epsilon}\right]=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}\left(-4\pi-4\pi\epsilon i {{\Omega}\over{c}}\right)A_{\alpha\beta}e^{-i{{\Omega}\over{c}}\epsilon}=-4\pi A_{\alpha\beta}</MATH>|7.104}} Następnym wyrażeniem pomocniczym, która korzysta z udowodnionych tożsamości, którego to pierwsza jest równa zero, a druga jest równa stałej tożsamości, czyli za pomocą tożsamości {{LinkWzór|7.103}} i {{LinkWzór|7.104}} możemy wyznaczyć wyrażenie: {{CentrujWzór|<MATH>\int\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}dV=-4\pi A_{\alpha\beta}\;</MATH>|7.105}} Równaniem grawitacji, którego to równanie jest zapisywane w punkcie {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}}, wewnątrz źródła jest opisane wedle wzoru ze stałą {{Formuła|<MATH>\kappa\;</MATH>}}, która jest równa {{LinkWzór|5.46|Słabe_pola_grawitacyjne}}, którego to zapis jest za pomocą tensora napięć-energii i tensora {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, dla słabego pola grawitacyjnego jest wyrażona: {{CentrujWzór|<MATH>{{1}\over{2}}\square\overline{h}_{\alpha\beta}={{8\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\;</MATH>|7.106}} Przecałkujmy wyrażenie {{LinkWzór|7.106}} obustronnie i wiedząc, że mamy definicję rozwiązania {{LinkWzór|7.97}} i w nim stałej {{LinkWzór|7.102}} dla rozmiarów kuli dążącej do prawie do zera, bo nasze źródło jest prawie punktowe: {{CentrujWzór|<MATH>(-4\pi A_{\alpha\beta})e^{-i\Omega t}={{16\pi G}\over{c^4}}\int T_{\alpha\beta}dV\;</MaTH>|7.107}} zatem możemy powiedzieć, że tensor A{{Sub|&alpha;&beta;}} jest zapisany jako całka z iloczynu tensora energii i napięć przez funkcję eksponencjalną , którego argumentem jest funkcja zależna od częstotliwości fali grawitacyjnej, a przed tą naszą rozważaną całką występują stałe mówiące o stałej grawitacji i prędkości światła c: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}\int T_{\alpha\beta}e^{i\Omega t}dV\;</MATH>|7.108}} Jeśli oznaczymy definicję gęstości tensora energii poprzez amplitudę drgań tensora gęstości energii i częstotliwość kołowa tych drgań i całkę występującą po prawej stronie {{LinkWzór|7.108}} poprzez definicję {{LinkWzór|7.109}}, to możemy zdefiniować wyrażenie na J{{Sub|&alpha;&beta;}} jako całkę po pewnej objętości zamkniętej po amplitudzie drgać omawianego tensora gęstości energii: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>T_{\alpha\beta}=S_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.109}}|2={{CentrujWzór|<MATH>J_{\alpha\beta}=\int T_{\alpha\beta}e^{i\Omega t}\Rightarrow J_{\alpha\beta}=\int S_{\alpha\beta}dV\;</maTH>|7.110}}}} Wtedy stałą A{{Sub|&alpha;&beta;}} (po lewej stronie w {{LinkWzór|7.108}}) i wedle definicji tensora gęstości energii poprzez stałą amplitudy {{LinkWzór|7.109}} i wykorzystując przy tym fakt, że w definicji tensora J{{Sub|&alpha;&beta;}} zapisanej w punkcie {{LinkWzór|7.110}}, zatem tensor A{{Sub|&alpha;&beta;}} jest zapisany na podstawie tychże danych w zależności od tensora J{{Sub|&alpha;&beta;}} w postaci: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}\;</MATH>|7.111}} Jest to amplituda fal grawitacyjnych występująca we wyrażeniu {{LinkWzór|7.102}} i wyrażona jest przez całkę z amplitudy drgań tensora gęstości energii. Rozwiązanie dla słabych pól grawitacyjnych wykorzystując wzór {{LinkWzór|7.111}}, przyjmuje postać: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}{{e^{i({{\Omega}\over{c}}r-\Omega t)}}\over{r}}\;</MATH>|7.112}} Jest to rozwiązanie dla fal grawitacyjnych wytwarzanych przez źródła prawie punktowe i nierelatywistyczne, które wytwarzają te właśnie fale zwane promieniowaniem grawitacyjnym. === Właściwości fali grawitacyjnej dla jednego wskaźnika zerowego górnego === Jeśli wykorzystamy równanie {{LinkWzór|7.110}}, którego wielkość jest całką amplitudy po infinitezymalnej objętości tensora gęstości energii oraz korzystając z definicji tensora gęstości energii dla źródła fal grawitacyjnych {{LinkWzór|7.109}}, co można wykorzystać mnożąc {{LinkWzór|7.110}} przez niezerowe wyrażenie {{Formuła|<MATH>e^{-i\Omega t}\;</MATH>}}: {{CentrujWzór|<MATH>J_{\mu\nu}e^{-i\Omega t}=\int T_{\alpha\beta}dV\;</MATH>|7.113}} I jeśli zróżniczkujemy obie strony wyrażenia {{LinkWzór|7.113}} względem czasu w sekundach, ale przedtem podnosząc wszystkie wskaźniki do góry i biorąc jednocześnie drugi wskaźnik jako zerowy, wtedy mamy: {{CentrujWzór|<MaTH>-i\Omega J^{\mu 0}e^{-i\Omega t}=\int {T^{\mu 0}}_{,0}dV=\int {T^{\mu k}}_{,k}dV=\oint T^{\mu k}n_kdS=0\;</MaTH>|7.114}} Powyższe równanie zachodzi, bo tensor gęstości energii po za źródłem fal grawitacyjnych jest równy zero, a my całkujemy po powierzchni, która otacza nasze źródło naszego promieniowania. W powyższych obliczeniach przyjęliśmy, że tensor gęstości energii na zewnątrz źródła jest równy zero na zewnątrz badanego źródła, bo wytwarzać fal grawitacyjnych jest bardzo mały, otrzymujemy: {{CentrujWzór|<maTH>J^{\mu 0}=0\Rightarrow \overline{h}^{\mu 0}=0\;</MATH>|7.115}} Dalsze zerowania się tensora metrycznego {{Formuła|<MATH>\overline{h}^{\mu \nu}\;</MATH>}} wynika stąd, gdy skorzystamy z symetryczności tensora {{LinkWzór|7.94}}, a także wynikającego z symetryczności tensora J{{Sup|&mu;&nu;}} {{LinkWzór|7.110}}, wynika poprzez to {{LinkWzór|7.112}} symetryczność tensora {{Formuła|<MATH>\overline{h}^{\mu\nu}\;</MATH>}}. === Tensor momentu kwadrupolowego rozkładu masy === Tensor momentu kwadrupolowego rozkładu masy definiujemy poprzez tensor gęstości energii o wskaźnikach dwóch górnych i zerowych i wyrazimy ją poprzez funkcję fali o częstotliwości kołowej &Omega; (eksponens z argumentu i&Omega;t) i przez tensor D{{Sup|lm}}: {{CentrujWzór|<MATH>I^{lm}=\int T^{00}x^lx^mdV=D^{lm}e^{-i\Omega t}\;</MATH>|7.116}} Jeśli zachodzi tożsamość {{LinkWzór|7.113}}, to na podstawie tożsamości zdefiniowanej w {{LinkWzór|7.89}}, możemy napisać, dokonując pewnych przekształceń i wykorzystania wzoru {{LinkWzór|7.116}} dla wskażników l,m=1,2,3 w sposób: {{CentrujWzór|<MATH>J^{lm}e^{-i\Omega t}=\int T^{lm}dV\Rightarrow J^{lm}e^{-i\Omega t}={{1}\over{2c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV\Rightarrow J^{lm}e^{-i\Omega t}=-{{\Omega^2}\over{2c^2}}D^{lm}e^{-i\Omega t}\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow J^{lm}=-{{\Omega^2}\over{2c^2}}D^{lm}\Rightarrow J_{lm}=-{{\Omega^2}\over{2c^2}}D_{lm}\;</MATH>|7.117}} Rozwiązanie {{LinkWzór|7.112}} na podstawie obliczeń {{LinkWzór|7.116}}, wykorzystując fakt {{LinkWzór|7.115}}, który mówi, że jedynymi elementami tensora poprawki do tensora metrycznego Minkowskiego w postaci fal grawitacyjnych {{Formuła|<MaTh>\overline{h}_{\alpha\beta}\;</MaTh>}} są równe zero, gdy zachodzi dla &alpha;=0 lub &beta;=0. Zatem wskaźniki przy naszym tensorze są równe 1,2,3, zatem dochodzimy wtedy do wniosku, że zachodzi ogólne rozwiązanie dla fal grawitacyjnych wytwarzane przez źródła prawie punktowe o niezerowych elementach: {{CentrujWzór|<MATH>\overline{h}_{lm}={{2G\Omega^2}\over{c^6}}D_{lm}{{e^{i\left({{\Omega}\over{c}}r-\Omega t\right)}}\over{r}}\;</MaTH>|7.118}} Tensory poprawki do tensora metrycznego Minkowskiego możemy obliczyć ze wzoru {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, gdy mamy już policzone {{LinkWzór|7.118}}. === Układ dwóch kulek jako układ prostego oscylatora === Widzimy, że na podstawie wzorów {{LinkWzór|7.116}}, że gdy I{{Sup|lm}}(t), to dla t=0 ono jest równe D{{Sup|lm}}, to wtedy mając cechowanie, w której dwuwskaźnikowe tensory krzywizny fali grawitacyjnej {{LinkWzór|7.2}}, w której w pewnym cechowaniu tensor amplitudy jest równy {{LinkWzór|7.25}}, wtedy tensory {{LinkWzór|7.118}} w tym cechowaniu możemy przepisać: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}^{TT}_{zi}=0\;</MATH>|7.119}}|2={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{G\Omega^2}\over{c^6}}\left(\not{I}_{xx}-\not{I}_{yy}\right){{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.120}}|3={{CentrujWzór|<MATH>\overline{I}_{xy}^{TT}=2{{G\Omega^2}\over{c^6}}\not{I}_{xy}{{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.121}}}} Przy powyższych uwagach wprowadziliśmy tensor bezśladowy z definiowany w oparciu o tensor I{{Sup|lm}} {{LinkWzór|7.116}}: {{CentrujWzór|<MATH>\not{I}_{lm}=I_{lm}-{{1}\over{3}}\delta_{lm}{I^l}_l\;</MATH>|7.122}} Rozważmy teraz falę emitowaną przez prosty oscylator fal grawitacyjnych, których wykrywamy, za pomocą detektora pokazywanego w punkcie [[#Detekcja fal grawitacyjnych|Detekcja fal grawitacyjnych]]. Ten detektor też wytwarza fale grawitacyjne, w których obie masy drgają z częstotliwością &omega; i z amplitudą A wokół średniego położenia równowagi. W tym przykładzie detektora fal mamy tylko składową I{{Sub|xx}} nierównej zero, tą składową możemy policzyć mając na uwadze harmoniczne drgania: {{CentrujWzór|<MATH>I_{xx}=mc^2\left[(x_1)^2+(x_2)^2\right]=mc^2\left[\left(-{{1}\over{2}}l_0-A\cos\omega t\right)^2+\left({{1}\over{2}}l_0+A\cos\omega t\right)^2\right]=\;</MATH>{{Br}}<MATH> =mc^2{{1}\over{4}}l_0^2+A^2m\cos^2\omega t+l_0mc^2Acos\omega t+{{1}\over{4}}ml_0^2+A^2mc^2\cos^2\omega t+l_0Amc^2\cos\omega t=\;</math>{{Br}}<math>={{1}\over{2}}mc^2l_0^2+2mA^2\cos^2\omega t+2l_0Amc^2\cos\omega t={{1}\over{2}}mc^2l_0^2+2mA^2+mc^2A^2\cos 2\omega t+2l_0Amc^2\cos\omega t</MATH>|7.123}} Zdefiniujmy teraz elementy tensora {{LinkWzór|7.122}} mając na uwadze element tensora I{{Sub|xx}} {{LinkWzór|7.123}} przy częstotliwości kołowej &omega;, czyli wykorzystując czwarty wyraz powyższych końcowych obliczeń możemy zdefiniować elementy tensora {{LinkWzór|7.122}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=I_{xx}-{{1}\over{3}}{I^l}_{l}={{2}\over{3}}I_{xx}={{4}\over{3}}c^2ml_0Ae^{-i\omega t}\\ \not{i}_{yy}={I}_{zz}-{{1}\over{3}}I_{xx}={{1}\over{3}}I_{xx}=-{{2}\over{3}}ml_0c^2Ae^{-i\omega t} \end{cases}\;</MATH>|7.124}} Zdefiniujmy teraz tensory {{LinkWzór|7.119}}, {{LinkWzór|7.120}} i {{LinkWzór|7.121}} w oparciu o tensor {{LinkWzór|7.124}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}=-\overline{h}_{yy}={{2mG\omega^2l_0A}\over{c^4}}{{e^{i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.125}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}=0\;</MATH>|7.126}}}} Jeśli uwzględnimy człon trzeci w końcowych obliczeniach {{LinkWzór|7.123}}, wtedy wzór na tensor {{Formuła|<MATH>\overline{I}_{xx}\;</MATH>}} i {{Formuła|<MATH>\overline{I}_{yy}\;</MATH>}}, który powstaje z {{LinkWzór|7.120}} po zastąpieniu &Omega; przez 2&omega;, wtedy otrzymujemy: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{4mG\omega^2A^2}\over{c^4}}{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.127}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=0\;</MATH>|7.128}}}} Całkowite promieniowanie wytwarzane przez prosty oscylator jest częścią rzeczywistą sumy składników, tzn. {{LinkWzór|7.125}} i {{LinkWzór|7.127}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}={{2mG\omega^2l_0}\over{c^4}}{{\cos\omega\left({{r}\over{c}}-t\right)}\over{r}}+{{4mG\omega^2A^2}\over{c^4}}{{\cos 2\omega\left({{r}\over{c}}-t\right)}\over{r}}\;</MATH>|7.129}} === Układ podwójny gwiazd o jednakowych masach === Wygodniejszym przykładem jest podwójmy układ gwiezdny dwóch jednakowych gwiazd, które krążą po orbicie o promieniu {{Formuła|<MATH>{{1}\over{2}}l_0\;</MATH>}}, czyli wokół wspólnego środka masy, wtedy równanie ruchu z drugiej zasady dynamiki dynamiki Newtona jest: {{CentrujWzór|<MATH>G{{m^2}\over{l_0^2}}=m\omega^2\left({{l_0}\over{2}}\right)\Rightarrow\omega=\left({{2Gm}\over{l_0^3}}\right)^{{{1}\over{2}}}\;</MATH>|7.130}} Położenia układu dwóch gwiazd opiszemy przy odpowiednich wyborze współrzędnych, przy czym oznaczamy przez jedynkę pierwszą gwiazdę, a przez dwójkę drugą gwiazdę: {{CentrujWzór|<MATH>\begin{cases} x_1(t)={{1}\over{2}}l_0\cos\omega t&y_1(t)={{1}\over{2}}l_0\sin\omega t\\ x_2(t)=-x_1(t)&y_2(t)=-y_1(t) \end{cases}\;</MATH>|7.131}} Wiedząc, ze tensor kwadrupolowy definiujemy sposobem I{{Sub|ik}}=mc{{Sup|2}}x_ix_k według {{LinkWzór|7.116}}, wtedy te elementy tego tensora możemy napisać dla podwójnego układu gwiazd, których ich współrzedne zdefiniowane są sposobem {{LinkWzór|7.131}}: {{CentrujWzór|<MATH>\begin{cases} I_{xx}=m c^2(x^2_1(t)+x^2_2(t))={{1}\over{2}}mc^2l_0^2\cos^2\omega t={{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{yy}=mc^2(y^2_1(t)+y^2_2(t))={{1}\over{2}}mc^2l_0^2\sin^2\omega t=-{{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{xy}=mc^2x_1(t)y_1(y)={{1}\over{8}}c^2ml_0^2\sin2\omega t\\ \end{cases}\;</MATH>|7.132}} Napiszmy teraz czemu są równe tensory {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} dla naszego badanego układu wykorzystując jego definicję {{LinkWzór|7.22}}, do którego wykorzystamy już policzone elementy tensora I{{Sub|lm}}, czyli I{{Sub|xx}}, I{{Sub|yy}} i I{{Sub|xy}}, wiedząc, że I{{Sup|l}}{{Sub|l}}=0 na podstawie definicji elementów I{{Sub|lm}} {{LinkWzór|7.132}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=-\not{I}_{yy}={{1}\over{4}}mc^2l_0^2e^{-2i\omega t}\\ \not{I}_{xy}={{1}\over{4}}imc^2l_0^2e^{-2i\omega t}\\ \end{cases}\;</MATH>|7.133}} Patrząc na wzory {{LinkWzór|7.120}} i {{LinkWzór|7.121}} dla &Omega;=2&omega; i na elementy tensora {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} {{LinkWzór|7.133}}, wtedy można zapisać wzory na promieniowanie rozchodzące się wzdłuż kierunku zetowego: {{CentrujWzór|<MATH>\begin{cases} \overline{h}_{xx}^{TT}=-\overline{h}_{yy}={{2mGl_0^2}\over{c^4}}\omega^2{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\\ \overline{h}_{xy}^{TT}={{2imGl_0^2\omega^2}\over{c^4}}{{e^{2i\omega({{r}\over{c}}-t)}}\over{r}}\end{cases}\;</MATH>|7.134}} === Równanie falowe i jego ścisłe rozwiązanie === Ścisłe rozwiązanie falowe dla fali grawitacyjnej dla źródła punktowego jest {{LinkWzór|7.112}}, weźmy sobie pewne źródło składające się ze źródeł punktowych, i w ten sposób fala grawitacyjna dociera pokolei do kolejnych punktów tego ośrodka w czasie t'=t-R/c, wtedy mamy wzór na elementy tensora {{Formuła|<MATH>\overline{h}_{\mu\nu}\;,</MATH>}} dla tego niepunktowego źródła: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}=-{{4G}\over{c^4}}\int J_{\mu\nu}(\vec{r},t^'){{e^{i\Omega\left({{R}\over{c}}-t\right)}}\over{R}}dV=-{{4G}\over{c^4}}\int {{T_{\mu\nu}(t^',x^i)}\over{R}}e^{i\Omega t^'}e^{i\Omega\left({{R}\over{c}}-t\right)}dV=-{{4G}\over{c^4}}\int{{T_{\mu\nu}\left(t-{{R}\over{c}},x^i\right)}\over{R}}d^3x\;</MATH>|7.135}} Weźmy sobie punkt w którym będziemy obserwować falę grawitacyjną, który jest bardzo daleko od źródła fali grawitacyjnej, wtedy powiemy: {{CentrujWzór|<MATH>\left[\sum_i(y^i)^2\right]^{{{1}\over{2}}}\equiv r>>\left[\sum_i(x^i)^2\right]^{{{1}\over{2}}}\;</MATH>|7.136}} Przy tak zachodzącym warunku {{LinkWzór|7.136}} możemy napisać, pod którą pod całką występuje tensor napięć energii a przed całką jest odwrotność promienia r, która wyszła z całki, która była pod postacią R, bo dla małego źródła r i R praktycznie się nie różnią: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}\simeq-{{4G}\over{c^4r}}\int T_{\mu\nu}d^3x\;</MATH>|7.137}} Do wzoru {{LinkWzór|7.137}} możemy wykorzystać {{LinkWzór|7.89}} i definicję tensora kwadrupolowego {{LinkWzór|7.116}}, wtedy tensor fali grawitacyjnej przyjmuje wtedy kształt: {{CentrujWzór|<MATH>\overline{h}_{lm}=-{{2G}\over{c^4r}}I_{lm,0,0}\left(t-{{r}\over{c}}\right)\;</MATH>|7.138}} Jeśli w prowadzimy cechowanie TT, to wtedy wzór na elementy tensora fali grawitacyjnej są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-{{G}\over{c^4r}}\left[\not{I}_{xx,00}\left(t-{{r}\over{c}}\right)-\not{I}_{yy,00}\left(t-{{r}\over{c}}\right)\right]\;</MATH>|7.139}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=-{{2G}\over{c^4r}}\not{I}_{xy,00}\left(t-{{r}\over{c}}\right)\;</MATH>|7.140}}}} == Energia przenoszona przez fale grawitacyjne wytwarzane przez układ oscylatorów grawitacyjnych == Przy pomocy wcześniejszych rozważań zorientowaliśmy się, że fale grawitacyjne przenoszą energię. Fale grawitacyjne unoszą energię od swych źródeł zabierając im energię. Rozważmy teraz ciało próbne, który nie wpływa na pole fali grawitacyjnej, czyli jego wpływ jest zaniedbywalny, wtedy takie podejście jest niekonsystentne, zatem jeśli przez ciało przechodzi fala grawitacyjna, to po przejściu jego przez układ mas, to fala grawitacyjna powinna być słabsza, tzn. układ ciał przez które przechodzi się fala grawitacyjna, sama staje się jego źródłem. Rozważmy teraz falę padającą o częstotliwości kołowej &omega;, to fala wyemitowana przez ciało jest emitowana z tą samą częstotliwością, więc fale przechodząca przez układ mas jest zatem sumą dwóch fal, tzn. fali padającej i fali wyemitowanej. Zobaczymy, że te dwie fale interferują one ze sobą dekonstruktywnie, obniżając wypadkową fali w tym kierunku. W innych kierunkach nie ma interferencji, i fale przechodzą jedno koło drugiej. === Fala grawitacyjna i jego strumień energii === Załóżmy, że mamy falę grawitacyjną wytwarzaną przez układ oscylatorów, który jest układem mas znajdujących się w pewnej płaszczyźnie, wtedy bardzo wygodnie jest rozważanie nie jako oscylatora harmonicznego wytwarzającego fale grawitacyjne, ale układ oscylatorów znajdujących się w płaszczyźnie dla z=0. Oscylatory w rozważanej płaszczyźnie są bardzo blisko siebie, więc je możemy uważać jako układ ciągły oscylatorów, i wprowadźmy przez &sigma; jako liczbę oscylatorów przez jednostkę powierzchni. Fala padająca na układ oscylatorów znajdujących się na płaszczyźnie przy cechowaniu {{LinkWzór|7.25}} określamy przez wzory: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=A\cos\Omega\left({{z}\over{c}}-t\right)\;</MATH>|7.141}}|2={{CentrujWzór|<MATH>\overline{h}_{yy}^{TT}=-\overline{h}_{xx}^{TT}\;</MATH>|7.142}}}} Przy przejściu fali grawitacyjnej przez naszą rozważaną płaszczyznę układu oscylatorów, wtedy ten układ odpowie stabilną oscylacją: {{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\phi)\;</MATH>|7.143}} Wielkości R i &phi; są to wielkości opisane poprzez wzory na &phi; {{LinkWzór|7.69}} i na R {{LinkWzór|7.76}}. Nasz rozważany ruch jest stabilny ponieważ energia dostarczana przez przechodzącą falę grawitacyjną poprzez sprężynkę jest rozpraszana w wyniku tarcia w oscylatorach w których energia jest kompensowana przez pracę wykonywaną na sprężynkach przez pływowe siły fali grawitacyjnej. Fala grawitacyjna dostarcza energii każdemu oscylatorowi równą: {{CentrujWzór|<MATH>{{dE}\over{dt}}=\nu\left({{\partial\xi}\over{\partial t}}\right)^2=m\gamma \left({{\partial\xi}\over{\partial t}}\right)^2\;</MATH>|7.144}} Uśrednienie energii dostarczanej przez falę w ciągu jednego okresu równej T=2&pi;/&Omega; dla wyrażenia {{LinkWzór|7.138}}, w wyniku tego mamy uśrednioną energię z definicji wartości średniej: {{CentrujWzór|<MATH>\left\langle{{dE}\over{dt}}\right\rangle= {{1}\over{{{2\pi}\over{\Omega}}}}\int_0^{{{2\pi}\over{\Omega}}}m\gamma\Omega^2R^2\sin^2(\Omega t+\phi)dt= {{m\gamma\Omega^3R^2}\over{2\pi}}\int_0^{{{2\pi}\over{\Omega}}}{{1}\over{2}}(1-\cos\left(2\Omega t+2\phi)\right)={{m\gamma\Omega^3R^2}\over{2\pi}}{{1}\over{2}}{{2\pi}\over{\Omega}}={{1}\over{2}}m\gamma\Omega^2R^2\;</MATH>|7.145}} Wzór {{LinkWzór|7.145}} przestawia energię dostarczaną do układu oscylatorów przez falę grawitacyjną, przy &sigma; oscylatorach energia fali zmniejsza się przy przejściu przez płaszczyznę o wartość: {{CentrujWzór|<MATH>\delta F=-{{1}\over{2}}\sigma m\gamma\Omega^2R^2\;</MATH>|7.146}} Każdy oscylator ma tensor kwadrupolowy zapisanej przez wzór {{LinkWzór|7.123}}, w której zastąpimy &omega; t przez &Omega;t+&phi;, a A przez R/2. Ponieważ w naszym przypadku R jest niewielkie, to człon jego trzeci możemy pominąć, i w ten sposób otrzymujemy tensor kwadrupolowy: {{CentrujWzór|<MATH>I_{xx}=mc^2l_0R\cos(\Omega t+\phi)\;</MATH>|7.147}} Według wzoru {{LinkWzór|7.118}} każdy oscylator wytwarza falę grawitacyjną: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}={{2G\Omega^2ml_0R}\over{c^4}}{{\cos\left[\Omega({{r}\over{c}}-t)-\phi\right]}\over{r}}\;</MATH>|7.148}} {{Rysunek|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego.png|bg1|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego|rozmiar=150px}} Ilość oscylatorów na powierzchni {{Formuła|<MATH>\pi\tilde{\omega}^2\;</MATH>}} jest {{Formuła|<MATH>\pi\tilde{\omega}^2\sigma\;</MATH>}}, a ilość oscylatorów znajdujących się na powierzchni pomiędzy {{Formuła|<MATH>\tilde{\omega}\;</MATH>}}, a {{Formuła|<math>\tilde{\omega}+d\tilde{\omega}\;</MATH>}} jest wyrażona przez {{Formuła|<MATH>2\pi\sigma\tilde{\omega}d\tilde{\omega}\;</MATH>}}, wtedy całkowity tensor {{Formuła|<math>\overline{h}_{xx}\;\;</math>}} możemy wyrazić przez: {{CentrujWzór|<math>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_0^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]{{\overline{\omega}d\overline{\omega}}\over{r}}\;</MATH>|7.149}} Z rysunku obok należy zauważyć, że {{Formuła|<math>r^2=z^2+\tilde{\omega}^2\Rightarrow rdr=\tilde{\omega}d\tilde{\omega}\;</MATH>}}, i w ten sposób wykorzystując to do wzoru {{LinkWzór|7.149}}: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_z^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</math>|7.150}} Całka {{LinkWzór|7.150}} jest całką rozbieżną, gdy przyjmować będziemy &sigma; jako stałą, więc &sigma; możemy uczynić jako funkcję &sigma;(z)e{{Sup|&epsilon; r}} i pozwoleniu by przy scałkowaniu dla &epsilon; dążyło do zera, i w ten sposób mamy całkę do policzenia: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{4\pi G\Omega^2ml_0R}\over{c^4}}\lim_{\epsilon\rightarrow 0}\int_z^{\infty}\sigma(z)e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</MATH>|7.151}} Wyznaczmy teraz dokładną całkę występującą we wzorze {{LinkWzór|7.151}} po prawej jego stronie: {{CentrujWzór|<MATH>\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr= -{{1}\over{\epsilon}}e^{-\epsilon r}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Bigg|_{z}^{\infty}-{{\Omega}\over{c\epsilon}}\int_z^{\infty}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr=\;</MATH>{{Br}}<MATH>={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\psi\right]-{{\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow {{c^2\epsilon^2+\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{c^2\epsilon}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{c\Omega}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]</MATH>|7.152}} Całkę policzoną w punkcie {{LinkWzór|7.152}} podstawiamy do wzoru {{LinkWzór|7.151}}, i w ostatecznych rozrachunkach dostajemy: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}=-{{4\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.153}} Aby porównać pole {{LinkWzór|7.153}} z falą padającą {{LinkWzór|7.135}} należy to przedostatnie napisać w cechowaniu TT, bo ono pierwotnie nie było w tym cechowaniu, otrzymujemy: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}^{TT}=-\delta\overline{h}_{yy}^{TT}=-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.154}} Wypdadkowa fala grawitacyjna piszemy jako sumę fali grawitacyjnej padającej {{LinkWzór|7.135}} na układ oscylatorów fali grawitacyjnej wytwarzanej przez układ oscylatorów w płaszczyźnie {{LinkWzór|7.154}} i w rezultacie otrzymujemy: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}=\overline{h}_{xx}^{TT}+\delta \overline{h}^{TT}_{xx}=A\cos \left[\Omega\left({{z}\over{c}}-t\right)\right]-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi\right]-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\cos\psi-A\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\sin\psi-\;</MATH>{{Br}}<MATH>-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\Bigg\{\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\cos(\psi-\phi)}_{\cos\psi\cos \phi+\sin\psi\sin\phi}+\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\sin(\psi-\phi)}_{\sin\psi\cos\phi-\cos\psi\sin\phi}\Bigg\}\;</MATH>|7.155}} Powyższe obliczenia będziemy przeprowadzali dla małych wielkości R, czyli z dokładnością wyrazów pierwszego rzędu względem R, wtedy według powyższych obliczeń przeprowadzonych w punkcie {{LinkWzór|7.155}} możemy napisać : {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\cos\psi\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right]-\psi\right)+\;</MATH>{{Br}}<MATH>+\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\left(A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi\right) </MATH>|7.156}} W powyższych obliczeniach należy przyjąć zachodzący warunek na kąt &psi;: {{CentrujWzór|<MATH>A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi=0\Rightarrow\operatorname{tg}\psi={{2\pi G\Omega \sigma l_0R}\over{Ac^3}}\cos\phi\;</MATH>|7.157}} W ten sposób otrzymujemy zależność na tensor {{Formuła|<MATH>\overline{h}_{xx}^{wypadkowe}\;</MATH>}}, który przepisujemy z {{LinkWzór|7.156}} przy zachodzącej tożsamości {{LinkWzór|7.157}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\;</MATH>|7.158}} Wypadkowym efektem przy przejściu fali grawitacyjnej jest zmniejszenie jego amplitudy patrząc na {{LinkWzór|7.158}} o wartość (R ujemne według {{LinkWzór|7.76}}): {{CentrujWzór|<MATH>\delta A={{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\;</MATH>|7.159}} Zmniejszenie amplitudy o wartość {{LinkWzór|7.159}} towarzyszy temu zmiana strumienia energii opisanej przez {{LinkWzór|7.140}}, po skorzystaniu wzorów {{LinkWzór|7.76}} i z {{LinkWzór|7.74}}, co w rezultacie daje mam zastanawiający wynik: {{CentrujWzór|<MATH>{{\delta F}\over{\delta A}}={{-{{1}\over{2}}\sigma m\gamma\Omega^2R^2}\over{{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi}}=-{{\gamma\Omega Rc^3}\over{4\pi Gl_0\sin\phi}}=-{{\gamma\Omega c^3}\over{4\pi Gl_0}}{{R}\over{\sin\phi}}={{\gamma\Omega c^3}\over{4\pi Gl_0}}{{l_0A\Omega^2}\over{4\gamma\Omega}}={{c^3}\over{16\pi G}}\Omega^2A\;</MATH>|7.160}} Wzór {{LinkWzór|7.160}} możemy przecałkować względem argumentu A, i w ten sposób otrzymujemy całkowity strumień energii F w zależności od amplitudy fali A i częstości &Omega;: {{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2A^2\;</MATH>|7.161}} Średnią po kwadracie dla amplitudy A możemy napisać wzorem poniżej, a także po podstawieniu tego do {{LinkWzór|7.161}} mając na myśli tylko dwie niezależne składowe rozważanego tensora: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\langle{\overline{h}_{xx}^{TT}}^2\rangle={{1}\over{2}}A^2\;</MATH>|7.162}}|2={{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2\langle\overline{h}_{\mu\nu}^{TT}{\overline{h}^{\mu\nu}}^{TT}\rangle\;</MATH>|7.163}}}} <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> 1n8ay904739cwr4tkhg0z6ooq9esop0 546540 546539 2026-06-12T15:53:25Z Persino 2851 /* Wpływ fal grawitacyjnych na swobodną cząstkę */ 546540 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> Tutaj będziemy się zajmować ''falami grawitacyjnymi'', tzn. co to są fale grawitacyjne, czy to jest fala poprzeczna czy podłużna, dlaczego prędkość grupowa jest równa prędkości fazowej, jak można wykryć fale grawitacyjną za pomocą rezonatora grawitacyjnego, jak je wytwarzać. == Propagacja fal grawitacyjnych == Udowodnimy, że dla naszego pola grawitacyjnego niestacjonarnego w dużej odległości od źródła, pole grawitacyjne rozchodzi się na w sposób fali. Tensor Einsteina dla słabych pól grawitacyjnych daleko od źródła grawitacyjnego przedstawia się wedle schematu {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} i daleko od źródła tensor gęstości energii znika T{{Sup|&alpha;&beta;}}=0, bo w rozważanym punkcie gęstość jest już równa zero, a także ciśnienie jest zaniedbywalnie małe. Z równania grawitacji Einsteina, dla zerowego tensora gęstości energii-pędu powyższego równania, oczywiste jest, że tensor Einsteina G{{Sup|&alpha;&beta;}}=0. Z zerowania się tensora gęstości energii i równanie grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}} po pomnożeniu jego przez dwa i korzystając z definicji operatora d'Alemberta mamy z oczywistych powodów: {{CentrujWzór|<MATH>0=\square \overline{h}_{\alpha\beta}\Rightarrow\left(-{{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}^{\alpha\beta}=0</MATH>|7.1}} Końcowe równanie {{LinkWzór|7.1}} jest równaniem falowym, a poniżej podamy jego rozwiązanie w postaci poniżej, którego to zapis zależy od czterowektora kontrawariantnego położenia x{{Sup|&mu;}}i czterowektora kowariantnego liczby falowej k{{Sup|&mu;}}: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{ik_{\mu}x^{\mu}}</MATH>|7.2}} Końcowe równanie falowe {{LinkWzór|7.1}} po podstawieniu do niego rozwiązania falowego {{LinkWzór|7.2}} i zakładając przy tym, że stała tensorowa A{{Sup|&alpha;&beta;}} występująca w naszym wspomnianym rozwiązaniu jest stałą dowolną: {{CentrujWzór|<MATH>\eta^{\mu\nu}{\overline{h}^{\mu\nu}}_{,\mu,\nu}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}\overline{h}^{\alpha\beta}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}=0\Rightarrow k_{\mu}k^{\mu}=0\;</MATH>|7.3}} Wielkość występująca w {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}} pod eksponensem zapisanej w punkcie {{LinkWzór|7.2}} można rozpisać w zależności od czasu i wektora {{Formuła|<MATH>\vec{r}\;</math>}} wedle sposobów w zależności wprost proporcjonalnej od częstotliwości kołowej i zwykłej liczby falowej k. {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_0 ct+\mathbf{k}\vec{r}</MATH>|7.4}} Jeśli weżniemy, że zachodzi dla fotonu podróżującego wzdłuż wektora przestrzennego {{Formuła|<MATH>\vec{k}\;</MATH>}}, którego elementy są to składowe czterowektora k{{Sup|&mu;}} bez jej współrzędnej czasowej: {{CentrujWzór|<MATH>x^{\alpha}(\lambda)=k^{\alpha}\lambda+l^{\alpha}\;</MATH>|7.5}} Ależ wiadomo jednak, że l{{Sup|&lambda;}} jest stałym tensorem (wektorem). Możemy podstawić {{LinkWzór|7.5}} do {{LinkWzór|7.4}} i się przekonamy, że względem rozwiązania {{LinkWzór|7.5}} wyrażenie {{LinkWzór|7.4}} jest wielkością stałą na podstawie końcowego wyrażenia {{LinkWzór|7.3}}, że długość czterowektora {{Formuła|<MATH>k^{\mu}\;</MATH>}} w czasoprzestrzeni jest wielkością stałą: {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_{\alpha}k^{\alpha}\lambda+k_{\alpha}l^{\alpha}=\operatorname{const}\Rightarrow k_{\alpha}x^{\alpha}=k_{\alpha}l^{\alpha}</MATH>|7.6}} Znając definicję częstotliwości kołowej i liczby falowej poprzez długość fali grawitacyjnej, które można zapisać te wielkości fizyczne wedle: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>k_0={{\omega}\over{c}}\;</MATH>|7.7}}|2={{CentrujWzór|<MATH>k=|\vec{k}|={{2\pi}\over{\lambda}}\;</Math>|7.8}}}} Możemy wykorzystać z równości końcowej {{LinkWzór|7.3}} i wykorzystując dwie tożsamości {{LinkWzór|7.7}} oraz {{LinkWzór|7.8}}, wtedy to nasze wyrażenie rozpiszmy na część czasową i przestrzenną , wtedy możemy powiedzieć, że fala grawitacyjna rozchodzi się z prędkością fazową równą prędkości światła c: {{CentrujWzór|<MATH>k_{\mu}k^{\mu}=0\Rightarrow k_0k_0-k_ik_i=0\Rightarrow k_0^2=\sum^3_{i=1}k_i^2\Rightarrow {{\omega^2}\over{c^2}}=\vec{k}^2\Rightarrow\omega=\left|\vec{k}\right|c\Rightarrow \omega=kc\;</math>|7.9}} Dla {{LinkWzór|7.7}} (współrzędna czasowa liczby falowej) i {{LinkWzór|7.8}} (długość liczby falowej w przestrzeni) przy k{{Sup|&mu;}}, na którą składa się na jej część czasową i przestrzenną, wtedy równanie {{LinkWzór|7.2}} piszemy: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta} e^{i\left({{\omega}\over{c}}ct+\vec{k}\vec{r}\right)}\Rightarrow \overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{i\left(\omega t+\vec{k}\vec{r}\right)}\;</MATH>|7.10}} Wykorzystując definicję prędkości fazowej i grupowej znanej z fizyki ogólnej i zależności końcowej {{LinkWzór|7.9}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>v_f={{\omega}\over{k}}={{kc}\over{k}}=c\;</Math>|7.11}}|2={{CentrujWzór|<MATH>v_g={{d\omega}\over{dk}}={{dkc}\over{dk}}=c\;</Math>|7.12}}}} Na podstawie obliczeń {{LinkWzór|7.11}} i {{LinkWzór|7.12}} udowodniliśmy, że prędkość grupowa i fazowa fal grawitacyjnych są sobie równe, ze względu na właściwości czterowektora falowego w czasoprzestrzeni. Do naszego rozwiązania {{LinkWzór|7.2}} należy dodać cechowanie pola grawitacyjnego {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}, czyli wielkości {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}}, czyli z tego cechowania wynika końcowa tożsamość: {{CentrujWzór|<MATH>{\overline{h}^{\alpha\beta}}_{,\beta}=0\Rightarrow A^{\alpha\beta}k_{\beta}e^{ik_{\alpha}x^{\alpha}}=0\Rightarrow A^{\alpha\beta}k_{\beta}=0</MATH>|7.13}} Wedle powyższych rozważań udowodniliśmy, że fale grawitacyjne są falami poprzecznymi, bo iloczyn skalarny między czterowektorem liczby falowej i tensorem amplitudy fali grawitacyjnej {{LinkWzór|7.2}} jest równy zero. == Bezśladowe cechowanie poprzeczne Lorentza == Mamy sobie nowy układ współrzędnych względem starego układu, w obu układach panuje cechowanie Lorentza {{LinkWzór|5.29|Słabe_pola_grawitacyjne}}, dla równości różniczkowej {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} znajdźmy sobie taki tensor &xi;{{Sup|&alpha;}} przy tych cechowaniach w starym i w nowym układzie współrzędnych, który spełnia równanie różniczkowe {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} tożsamościowo, zatem nasz wspomniany tensor musi zatem spełniać w takim przypadku równanie różniczkowe: {{CentrujWzór|<MATH>\square \xi^{\alpha}=0\;</MATH>|7.14}} Rozwiązaniem równania {{LinkWzór|7.14}} jest rozwiązaniem w postaci funkcji zależnej od czterowektora falowego k{{Sub|&mu;}} wedle: {{CentrujWzór|<math>\xi^{\alpha}=B^{\alpha}e^{ik_{\mu}x^{\mu}}\;</MaTH>|7.15}} Mając rozwiązaniem równania falowego {{LinkWzór|7.2}} i rozwiązanie w postaci funkcji &xi; {{LinkWzór|7.15}} równania {{LinkWzór|7.14}}, wtedy równość końcową {{LinkWzór|5.25|Słabe_pola_grawitacyjne}} możemy zapisać na podstawie: {{CentrujWzór|<MATH>{A'}_{\alpha\beta}=A_{\alpha\beta}-iB_{\alpha}k_{\beta}-iB_{\beta}k_{\alpha}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}\;</MaTh>|7.16}} Obierzmy sobie dodatkowe cechowania obowiązujące w nowym układzie współrzędnych wedle sposobów: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{A'}^{\alpha}}_{\alpha}=0\;</MATH>|7.17}}|2={{CentrujWzór|<MATH>{A^{'}}_{\alpha\beta}U^{\beta}=0\;</MATH>|7.18}}}} Przedstawmy teraz tożsamości wynikające z {{LinkWzór|7.17}} oraz z {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, wtedy na podstawie tego otrzymujemy dwa poniższe warunki: {{ElastycznyWiersz|1={{CentrujWzór|<math>\overline{h}={\overline{h}^{\alpha}}_{\alpha}=0\;</MATH>|7.19}}|2={{CentrujWzór|<MATH>h_{\alpha\beta}=\overline{h}_{\alpha\beta}\;</Math>|7.20}}}} Równość tensorową {{LinkWzór|7.16}} na podstawie pierwszego cechowania {{LinkWzór|7.17}} możemy napisać w postaci: {{CentrujWzór|<MATH>0={A^{\alpha}}_{\alpha}-iB^{\alpha}k_{\alpha}-iB_{\alpha}k^{\alpha}+i{\delta^{\alpha}}_{\alpha}B^{\mu}k_{\mu}\Rightarrow 0={A^{\alpha}}_{\alpha}+2iB^{\alpha}k_{\alpha}\;</MaTH>|7.21}} Mamy cztery wartości tensora B{{Sup|&alpha;}} przy jakiś wartościach A{{Sub|&alpha;&beta;}}, czyli mamy jedno tensorowe równanie więzów z czterema niewiadomymi. Weźmy sobie pod lupę cechowanie {{LinkWzór|7.17}} na podstawie obrania nowego układu spełniającego to cechowanie, wtedy na podstawie {{LinkWzór|7.16}} dostajemy znów inną tożsamość: {{CentrujWzór|<MATH>0=A_{\alpha\beta}U^{\beta}-iB_{\alpha}k_{\beta}U^{\beta}-iB_{\beta}k_{\alpha}U^{\beta}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\Rightarrow A_{\alpha\beta}U^{\beta}=iB_{\alpha}k_{\beta}U^{\beta}+iB_{\beta}k_{\alpha}U^{\beta}-i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\;</MATH>|7.22}} Jeśli pomnożyć końcowe równanie {{LinkWzór|7.22}} przez k{{Sup|&alpha;}}, to lewa strona tejże wspomnianej równości wedle warunku na poprzeczność fal grawitacyjnych wynikające z warunku cechowania Lorentza {{LinkWzór|7.13}} co stąd wynika, że ta strona naszego równania jest zawsze równa zero, ale przy jakich B{{Sub|&alpha;}}, zatem z {{LinkWzór|7.22}} mamy: {{CentrujWzór|<math>0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}+k^{\alpha}iB_{\beta}U^{\beta}k_{\alpha}-ik^{\alpha}\eta_{\alpha\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}-ik_{\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=0\;</MATH>|7.23}} Na podstawie {{LinkWzór|7.23}} jest ona spełniona bez względu jakie wartości przyjmuje B{{Sub|&alpha;}}, zatem dostajemy na podstawie wiadomości z algebry, że równość tensorowa {{LinkWzór|7.22}} ma w sobie trzy niezależne równania z czterema niewiadomymi B{{Sub|&alpha;}}. Jeśli połączymy równanie {{LinkWzór|7.22}} z {{LinkWzór|7.21}} dostajemy cztery niezależne równania z czteroma niewiadomymi, którymi są elementy tensora B{{Sub|&alpha;}}, których jest cztery, zatem na podstawie znanych A{{Sub|&alpha;&beta;}} możemy wyznaczyć właśnie elementy tensora B{{Sub|&alpha;}} jednoznacznie. Dochodzimy do wniosku, że cechowania {{LinkWzór|7.17}} i {{LinkWzór|7.18}} są spełnione w jakimś tam układach odniesienia, których jest nieskończenie wiele jak przy cechowaniu Lorentza {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}. Jeśli założymy, że cząstka spoczywa, to wtedy mamy U{{Sup|&beta;}}=&delta;{{Sup|&beta;}}{{Sub|0}}, wtedy na podstawie równania {{LinkWzór|7.18}} mamy 0=A{{Sub|&alpha;&beta;}}&delta;{{Sup|&beta;}}{{Sub|0}}=A{{Sub|&alpha; 0}}, zatem na podstawie symetryczności A{{Sub|&alpha;&beta;}} pierwsza kolumna i wiersz są zerowymi wielkościami. Jeśli przyjąć, że cząstka porusza się w kierunku osi zetowej, czyli jego czterowektor liczby falowej jest: {{CentrujWzór|<MATH>k^{\mu}=(k^1={{\omega}\over{c}},0,0,k)\;</math>|7.24}} wtedy warunek {{LinkWzór|7.13}} implikuje 0=A{{Sub|&alpha;&beta;}}k{{Sup|&beta;}}=k{{Sup|3}}A{{Sub|&alpha;3}}, zatem na podstawie tego rozważania i symetryczności A{{Sub|&alpha;&beta;}} dostajemy, że trzecia kolumna i wiersz są wielkościami zerowymi. Jeśli weźmiemy dodatkowo warunek {{LinkWzór|7.18}}, z poprzednimi rozważaniami: 0=A{{Sup|&alpha;}}{{Sub|&alpha;}}=A{{Sub|xx}}+A{{Sub|yy}}&rArr;A{{Sub|yy}}=-A{{Sub|xx}}, zatem naszą macierz A{{Sub|&alpha;&beta;}} możemy zapisać: {{CentrujWzór|<MATH>A^{TT}_{\alpha\beta}=\begin{pmatrix} 0&0&0&0\\ 0&A_{xx}&A_{xy}&0\\ 0&A_{xy}&-A_{xx}&0\\ 0&0&0&0\\ \end{pmatrix}</MATH>|7.25}} == Wpływ fal grawitacyjnych na swobodną cząstkę == Cząstka spoczywająca nie ma elementów przestrzennych czterowektora prędkości, wtedy wzór na linię geodezyjną {{LinkWzór|1.74|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, gdy parametr {{Formuła|<MATH>\lambda\;</MATH>}} jest interwałem czasoprzestrzennym, możemy zapisać: {{CentrujWzór|<MATH>{{du^{\alpha}}\over{ds}}=-{\Gamma^{\alpha}}_{00}\;</MaTH>|7.26}} Do wzoru {{LinkWzór|7.26}} bardzo nam są potrzebne elementy tensora Christoffela na podstawie {{LinkWzór|7.2}} i na podstawie elementów amplitudy tensorowej A{{Sup|&alpha;&beta;}}{{LinkWzór|7.25}}, które to &Gamma;{{Sup|&alpha;}}{{Sub|00}} następnie wyznaczymy, zatem do dzieła: {{CentrujWzór|<math>{\Gamma^{\alpha}}_{00}={{1}\over{2}}\eta^{\alpha\beta}\left(h_{\beta 0,0}+h_{0\beta,0}-h_{00,\beta}\right)\;</MAtH>|7.27}} Zatem na podstawie równania na fale grawitacyjne przy obranym cechowaniu {{LinkWzór|7.17}} i {{LinkWzór|7.18}} oraz macierzy tensora amplitud {{LinkWzór|7.25}}, a także względem równania fali {{LinkWzór|7.2}}, przy obranym cechowaniu zachodziłoby {{LinkWzór|7.20}} oraz że te amplitudy nie mają wierszy oraz kolumn o numerze zerowym oraz jego elementy nie zależą od czasu, zatem elementy tensora Christoffela {{LinkWzór|7.27}} są wielkościami zerowymi, czyli znikają, zatem na podstawie {{LinkWzór|7.26}} cząstka spoczywająca współrzędnościowo pozostanie nadal cząstką spoczywającą, ponieważ cząstka która ma czteroprędkość a właściwie jej część przestrzenną, która równa jest nadal zero, dalej będzie miała ten sam czteroprędkość, którego zmiana jest równa zero wedle naszej metryki przy przyjętych cechowaniu. Zatem dochodzimy do wniosku, że fala grawitacyjna wcale nie wpływa na ruch punktowej masy wedle współrzędnych czteropołożenia położenia, ale to nic nie znaczy. Fala grawitacyjna może zmieniać odległość właściwą między dwoma punktami w sposób wedle {{LinkWzór|1.13|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>\Delta l=\int \left|ds^2\right|^{{{1}\over{2}}}=\int \left|g_{\alpha\beta}dx^{\alpha}dx^{\beta}\right|^{{{1}\over{2}}}=\int^{x_2}_{x_1}\left|g_{xx}\right|^{{{1}\over{2}}}dx=\int^{x_2}_{x_1} \left|\eta_{xx}+h_{xx}\right|^{{{1}\over{2}}}dx\simeq x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;</MATH>|7.28}} Również jak się przekonamy, że za pomocą zmiany długości właściwej &Delta;l można wykryć budując pewne układu fizyczne, mimo że fala grawitacyjna nie działa na punktowe masy. === Równanie dewiacji a odległość wektorowa pomiędzy obydwa spoczywającymi współrzędnościowo cząstkami === Równanie dewiacji z którego będziemy korzystać jest to {{LinkWzór|1.90|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, i w nim zakładamy, że cząstka spoczywa współrzędnościowo, bo prędkości współrzędnościowe przestrzenne jako są równe zero, i będziemy badali odległość przestrzenną iksową odległości pomiędzy dwoma cząstkami, wtedy czterowektor prędkości i odległość początkowa pomiędzy dwoma cząstkami przestawiamy jako U{{Sup|&mu;}}=(1,0,0,0),&xi;{{Sup|&mu;}}=(0,&epsilon;,0,0). W takim wypadku równanie dewiacyjne możemy napisać poniżej wykorzystując przy tym twierdzenie {{LinkWzór|2.106|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}}: {{CentrujWzór|<MATH>{{d^2\xi^{\lambda}}\over{d\lambda^2}}={{1}\over{c^2}}{{d^2\xi^{\lambda}}\over{d t^2}}=\epsilon {R^{\alpha}}_{00x}=-\epsilon {R^{\alpha}}_{0x0}\;</MATH>|7.29}} Dla słabego pola grawitacyjnego mamy {{LinkWzór|5.1|Słabe_pola_grawitacyjne}}, wtedy czterowskaźnikowy tensor krzywizny R{{Sup|&alpha;}}{{Sub|0x0}} {{LinkWzór|2.101|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}} możemy napisać z definicji tensora fali grawitacyjnego {{LinkWzór|7.2}} i definicji tensora amplitudy {{LinkWzór|7.25}}: {{CentrujWzór|<MATH> \begin{cases}{R^x}_{0x0}=R_{x0x0}=-{{1}\over{2}}h_{xx,0,0}\\ {R^y}_{0x0}=R_{y0x0}=-{{1}\over{2}}h_{xy,0,0}\\ {R^y}_{0y0}=R_{y0y0}=-{{1}\over{2}}h_{yy,0,0}=-{R^x}_{0x0} \end{cases}\;</MATH>|7.30}} Wszystkie pozostałe elementy tensora krzywizny inne niż policzone powyżej są równe zero, i ich nie podaliśmy, bo dowód zerowania się ich jest trywialny. Równania dewiacyjne w kierunku osi iksowej piszemy jako: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.30a}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^{y}={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.31}}}} Jeśli tensor &xi;{{Sup|&alpha;}} jest zdefiniowany w kierunku osi igrekowej, wtedy otrzymujemy dwa równania dewiacyjne: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^y={{1}\over{2}}{{\partial^2}\over{\partial t^2}}h_{yy}=-{{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.32}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.33}}}} === Ścisła fala grawitacyjna wynikająca z praw grawitacji Einsteina === Wszystkie fale grawitacyjne, których chcemy zaobserwować na Ziemi są to fale, które są opisywane przy pomocy teorii zlinearyzowanej, ale chcemy opisać fale grawitacyjne przy pomocy teorii dokładnej, czyli opisywanej przy pomocy dokładnego równania grawitacji Einsteina. Obierzmy teraz dwie zmienne nowe zdefiniowane przy pomocy zmiennych t i z, których definicje są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>u=ct-z\;</MATH>|7.34}}|2={{CentrujWzór|<MATH>v=ct+z\;</MATH>|7.35}}}} Mamy sobie zdefiniowany interwał czasoprzestrzenny w przestrzeni Minkowskiego {{LinkWzór|1.6|Wprowadzenie_do_ogólnej_teorii_względności}} i wykorzystując równania na zmienne u {{LinkWzór|7.34}} i {{LinkWzór|7.35}}, z których wyznaczmy wzory na zmienne "u" i "ct", co w ten sposób możemy napisać ten nasz interwał czasoprzestrzenny w tychże zmiennych: {{CentrujWzór|<MATH>ds^2={{1}\over{4}}d(u+v)^2-dx^2-dy^2-{{1}\over{4}}d(v-u)^2={{1}\over{4}}\left(du^2+dv^2+2dudv\right)-dx^2-dy^2-{{1}\over{4}}\left(du^2+dv^2-2dudv\right)=\;</MATH>{{Br}}<MATH>=dvdu-dx^2-dy^2\;</MATH>|7.36}} Zobaczymy, że fale grawitacyjne wpływają na odległości prostopadłe w stosunku do biegu fali grawitacyjnej przy jej opisie, która wynika z jej teorii dokładnej, czyli z równań grawitacji Einsteina. W tym celu napiszmy interwał czasoprzestrzenny, w których wprowadzimy funkcje f(u) i g(u), które są zależne od zmiennej "u": {{CentrujWzór|<MATH>ds^2=dudv-f^2(u)dx^2-g^2(u)dy^2\;</MATH>|7.37}} Napiszemy teraz wszystkie niezerowe elementy tensora Christoffela i niezerowe elementy tensory czterowskaźnikowego tensora krzywizny: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\Gamma^x}_{xu}={{\dot{f}}\over{f}}\;</MATH>|7.38}}|2={{CentrujWzór|<MATH>{\Gamma^y}_{yu}={{\dot{g}}\over{g}}\;</MATH>|7.39}}|3={{CentrujWzór|<MATH>{\Gamma^v}_{xx}={{1}\over{2}}\dot{f}f\;</MATH>|7.40}}|4={{CentrujWzór|<MATH>{\Gamma^v}_{yy}={{1}\over{2}}\dot{g}g\;</MATH>|7.41}}}} {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{R^x}_{uxu}=-{{\ddot{f}}\over{f}}\;</MATH>|7.42}}|2={{CentrujWzór|<MATH>{R^y}_{uyu}=-{{\ddot{g}}\over{g}}\;</MATH>|7.43}}|3={{CentrujWzór|<MATH>R=R_{uu}=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.44}}}} Z powyższych wnioskach możemy napisać tensory Einsteina i dowiemy się, że tensor Einsteina G{{Sub|&mu;&nu;}} posiada również elementy niediagonalne oprócz jej elementów diagonalnych: {{CentrujWzór|<math> G_{uu}=R_{uu}-{{1}\over{2}}g_{uu}R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}-{{1}\over{2}}\cdot 0\cdot R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.45}} {{CentrujWzór|<MATH>G_{uv}=R_{uv}=R_{vu}-{{1}\over{2}}g_{uv}R=-{{1}\over{2}}(-1)R=-{{1}\over{2}}{{1}\over{2}}\left(-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\right)={{1}\over{4}}\left({{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}\right)\;</math>|7.46}} Będziemy badać fale rozprzestrzeniające tam gdzie nie ma masy, wtedy z równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}}, gdy tensor napięć-energii jest równy zero, mamy: {{CentrujWzór|<MATH>{{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}=0\;</MATH>|7.47}} Jako funkcję f(u) możemy przyjąć jako dowolną funkcję i rozwiązać równanie dla g(u). Możemy funkcję f(u) w taki sposób napisać jako funkcję opisującą pewnego rodzaju falę podobną do {{LinkWzór|7.2}} i zapytać siebie jaka jest funkcja przy tak postawionych warunkach, czyli g(u). Dla przypadku prawie liniowego funkcja f(u) jest bliska jedności: {{CentrujWzór|<MATH>f\simeq 1+\epsilon(u)\;</MATH>|7.48}} wtedy funkcja g(u) jest prawie liniowa i w zależności od funkcji prawie liniowej f(u) {{LinkWzór|7.46}} możemy napisać jej rozwiązanie: {{CentrujWzór|<MATH>g\simeq 1-\epsilon(u)\;</MATH>|7.49}} == Detekcja fal grawitacyjnych == {{Rysunek|Fale grawitacyjne.jpg|sjp|Detektor rezonansowy dla wykrycia fal grawitacyjnych.}} Załóżmy, że mamy układ o współczynnik tłumienia &nu; i sprężyny o stałej sprężystości k, który jest oscylatorem harmonicznym tłumionym. Dla pierwszej i drugiej kulki rozważanego układu, równanie ruchu ma się: {{CentrujWzór| <MATH>\begin{cases} mx_{1,0,0}=k(x_2-x_1-l_0)-\nu(x_1-x_2)_{,0}\\ mx_{2,0,0}=-k(x_2-x_1-l_0)-\nu(x_2-x_1)_{,0} \end{cases}\;\;</MATH>|7.50}} Możemy odejmować dwa równania {{LinkWzór|7.50}} od siebie w naszym układzie równań otrzymując wynikowe równanie, które należy rozwiązać: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(x_2-x_1-l_0)-2\nu(\dot{x_2}-\dot{x_1})\;\;</MATH>|7.51}} Wprowadźmy nowe oznaczenia (parametry), które wykorzystamy do równania różniczkowego {{LinkWzór|7.51}}, tzn. parametr &xi; (która jest zależna od położenia obu kulek i długości własnej użytej sprężynki), częstotliwości własnej układu &omega;{{Sub|0}} (zależna od stałej sprężystości sprężynki i masy tej sprężynki), a także od stałej &gamma; (która jest zależna od stałej tłumienia &gamma; i masy sprężynki), zatem te podstawienia: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\xi=x_2-x_1-l_0\;\;</MATH>|7.52}}|2={{CentrujWzór|<MATH>\omega_0^2={{2k}\over{m}}\;\;</MATH>|7.53}}|3={{CentrujWzór|<MATH>\gamma={{\nu}\over{m}}\;\;</MATH>|7.54}}}} Na podstawie oznaczeń &xi; {{LinkWzór|7.52}}, &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, wtedy równanie {{LinkWzór|7.51}} przechodzi przy tych nowych oznaczeniach w równoważną postać: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=0\;\;</MATH>|7.55}} W równaniach ruchu dla dwóch kulek {{LinkWzór|7.50}} zastosowaliśmy równania ruchu Newtona, bo mamy do czynienia z prędkościami bardzo małymi (o wiele mniejszymi od prędkości światła). Ponieważ mamy do czynienia z ogólną teorią względności, czyli mamy do czynienia z teorią grawitacją Einsteina, to powyższe wywody nie są w ogólności spełnione i chwilową długość sprężyny jest inna niż zakładana, bo sprężyna jest w układzie dwóch kulek, których fala grawitacyjna zakłóca prawdziwą długość sprężyny, długość sprężyny według rozważanej metryki jest inna niż metryce Minkowskiego (czasoprzestrzeń płaska), jeśli sprężyna jest położona wzdłuż osi iksowej w przestrzeni, ma długość na podstawie {{LinkWzór|7.28}} wyrażonej według: {{CentrujWzór|<MATH>l(t)=x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.56}} Należy pamiętać, że długość l{{Sub|0}} jest bardzo mała w porównaniu z długością jakim światło może przebyć w ciągu jednej sekundy. Równania {{LinkWzór|7.50}} możemy zapisać w bardziej ogólny sposób uwzględniając jako sprężynę w ruchu, który ma w tej chwili długość l i zapisać je nie jako różnica położeń dwóch kul z dokładnością do znaku, ale jako różnica aktualnej długości kulki l i jej długości początkowej, bo tutaj nie mamy przestrzeni płaskiej tylko przestrzeń zakrzywioną i uwzględniając jakoby fala grawitacyjna nie oddziaływuje współrzędnościowo z punktowymi masami jako osobno, co tutaj jest ważne, ale kulki oddziałują ze sobą tylko za pomocą sprężynki przez promieniowanie grawitacyjne, które to kulki były początkowo w spoczynku przed dotarciem do nich tej rozważanej fali: {{CentrujWzór|<MATH>\begin{cases} mx_{1,0,0}=k(l-l_0)+\nu(l-l_0)_{,0}\\ mx_{2,0,0}=-k(l-l_0)-\nu(l-l_0)_{,0} \end{cases}\;</MaTh>|7.57}} Wprowadźmy nowe oznaczenia, która jest funkcją iksowych położeń kul, i poprawki do tensora metrycznego Minkowskiego i długości początkowej sprężyny nierozciągniętej i jest oznaczona ona przez tożsamość: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.58}} Na podstawie powyższej tożsamości możemy napisać przekształcenia wyznaczając różnicę współrzędnych iksowych dwóch rozważanych kulek: {{CentrujWzór|<MATH>x_2-x_1\simeq\xi+l_0+{{1}\over{2}}h_{xx}l_0\;\;</MATH>|7.59}} Powyżej przyjęliśmy, że zmiana długości własnej sprężynki stojąca przy h{{Sub|xx}} dla słabego pola grawitacyjnego jest bardzo mała, zatem różnica położeń kulek jest w przybliżeniu równa długości sprężynki. Równość {{LinkWzór|7.50}} z poprawką na chwilową długość sprężyny, która jest nie równa różnicy współrzędnych iksowych kulek w zakrzywionej czasoprzestrzeni: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(l-l_0)-2\nu(l-l_0)_{,0}\;\;</MATH>|7.60}} Wykorzystując oznaczenia na parametry &xi; {{LinkWzór|7.58}}, oraz na &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, to równanie różniczkowe {{LinkWzór|7.60}} zapisujemy poniżej, który również zawiera poprawkę do tensora metrycznego Minkowskiego dla tychże rozważanych kulek, a także zawiera zmianę długości sprężyny l-l{{Sub|0}} zapisanej według {{LinkWzór|7.59}}: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=-{{1}\over{2}}h_{xx,0,0}l_0\;\;</MATH>|7.61}} Powyższe równanie jest równaniem oscylatora harmonicznego tłumionego z przyłożoną siłą, która zmienia się w sposób harmoniczny (w tym przypadku promieniowanie grawitacyjne, które działa na kule poprzez sprężynkę). Fala kulista w dużej odległości od źródła jest falą w przybliżeniu płaską, a zatem jeśli {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;\;</MATH>}} opisuje falę płaską wedle definicji tensora Einsteina {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} dla tensora gęstości energii równej zero, wtedy równania grawitacji Einsteina opisują {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATh>}} wedle {{LinkWzór|7.2}}, jeśli częstotliwość tej fali jest jakaś tam, to częstotliwość fali {{Formuła|<MATH>h_{xx}\;</MATH>}}, wedle równości {{LinkWzór|5.20|Słabe_pola_grawitacyjne}} jest taka sama, zatem jeśli pierwsza zmienia się względem funkcji kosinus (dla {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}), to druga też, zatem niech będą funkcje {{Formuła|<math>h_{xx}\;</MaTH>}} i {{Formuła|<MATH>\xi\;</Math>}}, która zmieniają się względem czasu z częstotliwością &Omega;: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>h_{xx}=A\cos(\Omega t)\;\;</MATH>|7.62}}|2={{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\varphi)\;\;</MATH>|7.63}}}} Powyższe dwa równania są prawdziwe, bo można tak wybrać przesunięcie fazowe oraz &Omega;, by były spełnione równania ruchu dwóch kulek w polu grawitacyjnym, których drgania kulek maja się jak promieniowanie grawitacyjne. Podstawiamy za h{{Sub|xx}} równania fali grawitacyjnej {{LinkWzór|7.62}} i przemieszczenia harmonicznego kulek {{LinkWzór|7.63}}, którego zmianę powoduje fala grawitacyjna (promieniowanie grawitacyjne) o takiej samej częstotliwości co fala grawitacyjna, do równości {{LinkWzór|7.61}}, co w rezultacie ono przyjmuje postać: {{CentrujWzór|<MATH>-\Omega^2 R\cos(\Omega t+\varphi)+\omega_0^2 R\cos(\Omega t+\varphi)-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.64}} Co po krótkich przestawianiach wyrazów w tożsamości {{LinkWzór|7.64}}, czyli grupując wyrazy stojące przy funkcji sinus i kosinus: {{CentrujWzór|<MATH>\cos(\Omega t+\varphi)R\left[-\Omega^2+\omega_0^2\right]-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.65}} Wykorzystując z własności kosinusów i sinusów sumy składników pod tymi funkcjami trygonometrycznymi możemy zapisać {{LinkWzór|7.65}} rozwijając w odjemnej naszej tożsamości funkcji kosinus i odjemniku funkcję sinus: {{CentrujWzór|<MATH>\left(\cos(\Omega t)\cos\varphi-\sin(\Omega t)\sin\varphi\right)R(\omega_0^2-\Omega^2)-2\gamma R\Omega\left(\cos(\Omega t)\sin\varphi+\sin(\Omega t)\cos\varphi\right)=\;</MATH>{{Br}} <MATH>={{1}\over{2}}l_0A\Omega^2\cos(\Omega t)\;</MATH>|7.66}} Grupujemy wyrazy z kosinusami i sinusami, których argumentem jest &Omega; t we wzorze {{LinkWzór|7.66}} i aby ona zachodziła dla dowolnych chwili czasu t, to nasze wspomniane równanie przechodzi w dwa równania równoważne pierwotnemu. {{ElastycznyWiersz|1={{CentrujWzór|<MaTH>(\omega_0^2-\Omega^2)R\cos\varphi-2\gamma R\Omega\sin\varphi={{1}\over{2}}l_0 A\Omega^2\;</MATH>|7.67}}|2={{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)R\sin\varphi-2\gamma R\Omega\cos\varphi=0\;</MATH>|7.68}}}} Z tożsamości uzyskanej w punkcie {{LinkWzór|7.68}} możemy wyznaczyć tanges przesunięcia fazowego kulek względem fali promieniowania grawitacyjnego, który jak udowodnimy zależy tylko od częstotliwości fali grawitacyjnej &Omega; i częstotliwości własnej detektora fali grawitacyjnej: {{CentrujWzór|<MATH>\operatorname{tg}(\varphi)={{2\gamma\Omega}\over{\Omega^2-\omega_0^2}}\;\;</MATH>|7.69}} Pomnóżmy równanie {{LinkWzór|7.67}} przez wyrażenie {{Formuła|<MATH>2\gamma\Omega\;\;</MATH>}}, czyli podwojony iloczyn stałej tłumienia &gamma; i częstotliwości drgań fali grawitacyjnej, wtedy dostajemy tożsamość: {{CentrujWzór|<MATH>(\omega_0-\Omega^2)2\gamma\Omega R\cos\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\;\;</MATH>|7.70}} a także wykorzystując również tożsamość {{LinkWzór|7.68}}, którą podstawiamy do tożsamości {{LinkWzór|7.70}}, wtedy oczywiście dostajemy wniosek: {{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)(\omega_0^2-\Omega^2)R\sin\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\Rightarrow \left[(\omega_0^2-\Omega^2)^2+4\gamma^2\Omega^2\right]R\sin\varphi=-l_0A\gamma\Omega^3\;</MATH>|7.71}} Policzmy teraz czemu jest równa funkcja sin&phi; wyrażając kwadrat kotangensa względem kwadratu funkcji sinus &phi;, korzystając z definicji tangensa kąta, który jest ilorazem sinusa kąta &phi; przez jego kosinus tego samego kąta, i jeszcze korzystając z definicji jedynki trygonometrycznej, możemy napisać: {{CentrujWzór|<math>\operatorname{ctg}^2\varphi={{\cos^2\varphi}\over{\sin^2\varphi}}= {{1-\sin^2\varphi}\over{\sin^2\varphi}}=\sin^{-2}\varphi-1\Rightarrow \sin^{-2}\varphi=\operatorname{ctg}^{2}\varphi+1\Rightarrow \sin^2\varphi={{1}\over{\operatorname{ctg}^2\varphi+1}}\;</MATH>|7.72}} Ze wzoru na <MATH>\sin^2\varphi\;</MATH> w ostatnim rozważanym wyrażeniu {{LinkWzór|7.72}} przechodzimy do wzoru na funkcję trygonometryczną dla naszego zadania: {{CentrujWzór|<MATH>\sin^2\varphi={{1}\over{1+({{\Omega^2-\omega_0^2)}\over{2\gamma\Omega}})^2}}= {{1}\over{{{4\gamma^2\Omega^2+(\Omega^2-\omega_0^2)^2}\over{4\gamma^2\Omega^2}}}}= {{4\gamma^2\Omega^2}\over{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}\;</MAth>|7.73}} Równość {{LinkWzór|7.73}} możemy spierwiastkować obustronnie, tak by po lewej stronie wspomnianego równania otrzymać sam sinus kata &phi;, wtedy otrzymujemy wyrażenie: {{CentrujWzór|<MATH>\sin\varphi={{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.74}} Wyznaczony wzór na funkcję sin&phi; zapisanej i udowodnionej w punkcie {{LinkWzór|7.74}} podstawiamy do wzoru uzyskanego wcześniej w punkcie {{LinkWzór|7.71}}, wtedy można otrzymać tożsamość, którą poddamy dalszej obróbce: {{CentrujWzór|<MATH>\left[(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2\right]R{{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}=-l_0A\gamma\Omega^3\Rightarrow 2\gamma\Omega R\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}=-l_0A\gamma\Omega^3\;</MATH>|7.75}} Zatem amplituda drgań dla oscylatora harmonicznego tłumionego jest napisana wedle wzoru poniżej, która jest zależna od częstotliwości kołowej drgań fali grawitacyjnej &Omega;, częstotliwości własnej układu własnego &omega;{{Sub|0}} i współczynnika tłumienia &gamma;: {{CentrujWzór|<MATH>R=-{{{{1}\over{2}}l_0A\Omega^2}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.76}} Jest ona zależna od częstotliwości rezonansowej &omega;{{Sub|0}} i współczynnika pełniącego rolę współczynnika tłumienia &gamma;. Energia układu (oscylatora harmonicznego tłumionego) jest zdefiniowana jako energia kinetyczna obu kulek i energii potencjalnej sprężyny w polu grawitacyjnym, bo tutaj sprężynka znajduje się w polu promieniowania grawitacyjne oddziałujące ze sprężynką. {{CentrujWzór|<MATH>E={{1}\over{2}}m(x_{1,0})^2+{{1}\over{2}}m(x_{2,0})^2+{{1}\over{2}}k\xi^2\;</MATH>|7.77}} Jeśli dodamy do siebie dwa równania układu równań {{LinkWzór|7.57}} do siebie, wtedy otrzymamy równanie różniczkowe poniżej i założymy że nasz układ był w spoczynku, zanim dodarła do naszego badanego układu fala grawitacyjna, czyli przyjmujemy, że C=0, który jest warunkiem brzegowym: {{CentrujWzór|<MATH>(x_2+x_1)_{,0,0}=0\Rightarrow x_{2,0}+x_{1,0}=C\Rightarrow x_{2,0}=-x_{1,0}+C\;</MATH>|7.78}} Parametr {{LinkWzór|7.58}} można zapisać, jeśli przyjmiemy założenie, że mamy do czynienia z słabym polem grawitacyjnym w postaci fal grawitacyjnym, wtedy czwarty człon w nim możemy pominąć: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}l_0\simeq \xi=x_2-x_1-l_0\Rightarrow \xi_{,0}\simeq x_{2,0}-x_{1,0}=2x_{2,0}</MATH>|7.79}} zatem wedle obliczeń {{LinkWzór|7.79}}, które dokonaliśmy w tymże punkcie i dla naszych warunków brzegowych możemy napisać tożsamość między prędkościami dwóch kulek. {{CentrujWzór|<MATH>x_{1,0}=-x_{2,0}=-{{1}\over{2}}\xi_{,0}\;</MATH>|7.80}} Energia układu {{LinkWzór|7.77}} po wykorzystaniu dwóch podstawień do którego będziemy wykorzystywali obliczenia {{LinkWzór|7.80}}, które wynika z punktu przestawionego wzorem {{LinkWzór|7.79}}, wtedy ową energię chwilową zapisujemy wedle schematu poniżej, która jest zależna od pochodnej zmiennej &xi; względem czasu i samego przesunięcia &xi;, którego to &xi; jest to przesunięcie od położenia równowagi obu rozważanych w tym zadaniu kulek układu fizycznego: {{CentrujWzór|<MATH>E={{1}\over{2}}m(-{{1}\over{2}}\xi_{,0})^2+{{1}\over{2}}m({{1}\over{2}}\xi_{,0})^2+ {{1}\over{2}}\omega_0^2({{1}\over{2}}\xi)^2\Rightarrow E={{1}\over{4}}m\left(\xi^2_{,0}+\omega_0^2\xi^2\right)\;</MATH>|7.81}} Wykorzystujemy definicję parametru &xi; napisanej w punkcie {{LinkWzór|7.63}}, które to podstawiamy do równości {{LinkWzór|7.81}} na energię układu, wtedy owe równanie ma wygląd: {{CentrujWzór|<MATH>E={{1}\over{4}}m\left(R^2\Omega^2\sin^2(\Omega t+\varphi)+\omega_0^2R^2\cos^2(\Omega t+\varphi)\right)\;</MATH>|7.82}} Wiemy jednak, że średnia wartość kwadratu kosinusa z definicji wartości średniej jest równa połowie jedynki względem czasu t, zatem co zapisujemy wzorem poniżej. Widzimy, że powyższa równość jest zależna od częstotliwości fali grawitacyjnej &Omega; i przesunięcia fazowego &phi;. {{CentrujWzór|<MATH>\langle \cos^2(\Omega t+\varphi)\rangle=\langle\sin^2(\Omega t+\varphi)\rangle={{1}\over{2}}\;</MATH>|7.83}} Średnia wartość energii oscylatora wedle wartości chwilowej {{LinkWzór|7.81}}, korzystając już z obliczonej wartości średniej kwadratu kosinusa, to średnią energię drgań układu dwóch kulek i sprężyny zapisujemy wedle: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8}}mR^2(\Omega^2+\omega_0^2)\;</MATH>|7.84}} Amplituda rezonansowa nazywamy takie R w tożsamości {{LinkWzór|7.76}}, dla które zachodzi, gdy &omega;{{Sub|0}}=&Omega;, wtedy dochodzimy do wniosku, że mamy amplitudę rezonansową drgań przy udziale fal grawitacyjnych: {{CentrujWzór|<MATH>R={{{{1}\over{2}}l_0\Omega^2 A}\over{\sqrt{4\Omega^2\gamma^2}}}= {{{{1}\over{2}}l_0\Omega^2 A}\over{2\Omega\gamma}}={{1}\over{4}}l_0 A{{\Omega}\over{\gamma}}\;</MATH>|7.85}} Energia rezonansowa średnia {{LinkWzór|7.84}} na podstawie amplitudy rezonansowej układu dwóch kulek połączonej sprężynką policzonej w punkcie {{LinkWzór|7.85}}, do której to podstawimy do wzoru na średnią energię: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8\cdot 16}}ml_0^2A^2\left({{\Omega}\over{\gamma}}\right)^2 2\Omega^2= {{1}\over{8\cdot 8}}ml_0^2A^2\Omega^2\left({{\Omega}\over{\gamma}}\right)^2= {{1}\over{64}}ml_0^2\Omega^2A^2\left({{\Omega}\over{\gamma}}\right)^2 \;</MATH>|7.86}} Dobrocią oscylatora harmonicznego tłumionego nazywamy wielkość zdefiniowanej wedle sposobu poniżej, z której ją wyznaczymy dla częstotliwości rezonansowej, tzn. gdy <MATH>\Omega=\omega_0\;</Math> {{CentrujWzór|<MATH>Q={{\omega_0}\over{2\gamma}}\Rightarrow 2Q={{\Omega}\over{\gamma}}\;</MATH>|7.87}} Energia średnia rezonansowa {{LinkWzór|7.86}} w której podstawimy za stosunek {{Formuła|<MaTH>{{\Omega}\over{\gamma}}\;</MATH>}} podwojoną dobroć Q, czyli z korzystamy ze wzoru {{LinkWzór|7.87}}, zatem tą pierwszą wielkość fizyczną możemy napisać sposobem: {{CentrujWzór|<MATH>{\langle E\rangle}_{rezonas}={{1}\over{16}}ml_0\Omega^2A^2Q^2\;</MATH>|7.88}} I co kończy nasze rozważania na temat detekcji fal grawitacyjnych. == Tensorowe twierdzenie wirialne a lokalna zasada zachowania energii == Naszym wzorem, które zechcemy udowodnić jest twierdzenie łączący tensor gęstości energii o wskaźnikach zerowych górnych (lewa strona) po przez wyrażenie z tensorem gęstości energii o wskaźnikach górnych o wartościach przestrzennych: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV=2\int T^{lm}dV\;</MATH>|7.89|Obramuj}} Powyższy wzór jest wzorem, w której jest dokonane całkowanie po pewnej objętości, której ogranicza pewna powierzchnia zamknięta, na której powierzchni tensor gęstości energii jest równa zero, bo tak zamknięta powierzchnia jest poza obszarem, w której tensor gęstości energii jest różny od zera. Dowód powyższego lematu opiera się na zasadzie zachowawczości tensora napięć-energii dla słabego pola grawitacyjnego {{LinkWzór|1.49|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>{T^{\mu\nu}}_{,\nu}=0\Rightarrow {T^{\mu 0}}_{,0}+{T^{\mu k}}_{,k}=0\Rightarrow {T^{\mu 0}}_{,0}=-{T^{\mu k}}_{,k}\;</MATH>}} Zatem przejdźmy do głównego nurtu dowodu wiedząc, że T{{Sup|&mu;&nu;}} jest równe zero na zewnątrz źródła i będziemy korzystać z symetryczności tensora gęstości energii. {{CentrujWzór|<mATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= {{1}\over{c}}{{d}\over{dt}}\int {T^{00}}_{,0}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int {T^{0k}}_{,k}x^lx^mdV \;</MATH>|7.90}} Rozwińmy tożsamość występująca we wzorze {{LinkWzór|7.90}}, zatem korzystając z twierdzenia o pochodnej iloczynu trzech składników można napisać tożsamość: {{CentrujWzór|<MaTH>(T^{0k}x^lx^m)_{,k}={T^{0k}}_{,k}x^lx^m+T^{0k} {x^l}_{,k}x^m+T^{0k}x^l{x^m}_{,k}= {T^{0k}}_{,k}x^lx^m+T^{0k}{\delta^l}_{k}x^m+T^{0k}x^l{\delta^m}_{k} ={T^{0k}}_{,k}x^lx^m+T^{0l}x^m+\;</MATH>{{Br}}<MATH>+T^{0m}x^l\Rightarrow {T^{0k}}_{,k}x^lx^m=(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\;</MaTH>|7.91}} Wyrażenie końcowe zapisane w rozważanej powyżej w punkcie {{LinkWzór|7.91}} możemy podstawić do tożsamości fizycznej {{LinkWzór|7.90}} wynikającej z zachowalności energii i pędu, wtedy dostajemy równanie: {{CentrujWzór|<MaTH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int\left[(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\right]dV=-{{1}\over{c}}{{d}\over{dt}}\int T^{0k}x^lx^mdS_k+\int {T^{0l}}_{,0}x^mdV+\;</MATH>{{Br}}<MATH>+\int {T^{0m}}_{,0}x^ldV=-\int {T^{kl}}_{,k}x^mdV-\int {T^{km}}_{,k}x^ldV \;</MATH>|7.92}} W powyższym rozpisaniu korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa zamiany całek objętościowych, w której jest całkowanej po ściśle określonej nam objętości, na całkę powierzchniową, w której jest całkowanie po powierzchni zamkniętej ograniczającą wcześniej wprowadzoną objętość. Następnym krokiem jest udowodnienie poniżej tożsamości korzystając z twierdzenia z pochodnej iloczynu znanej z analizy: {{CentrujWzór|<MATH>(T^{kl}x^m)_{,k}dV={T^{kl}}_{,k}x^m+T^{kl}{\delta^m}_{k}={T^{kl}}_{,k}x^m+T^{ml}\;</math>|7.93}} Możemy wykorzystać tożsamość {{LinkWzór|7.93}} do dalszej części dowodu {{LinkWzór|7.92}}, wiedząc jednocześnie że pierwsza i trzecia ciałka jest równa zero przy wykorzystaniu twierdzenia Ostrogradzkiego-Gauusa, która jest całką po powierzchni zamkniętej, którego to T{{Sub|&alpha;&beta;}} jest równa zero na tej powierzchni, wtedy dochodzimy do wniosku: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -\int (T^{kl}x^m)_{,k}dV+\int T^{ml}dV-\int (T^{km}x^l)_{,k}dV+\int T^{lm}dV=\int T^{ml}dV+T^{lm}dV=2\int T^{ml}dV\;</MaTH>|7.94}} W powyższym dowodzie znów korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa, w której na jej powierzchni całkowanej panuje zerowa wartość tensora gęstości energii. Co kończy dowód twierdzenia {{LinkWzór|7.89}}. == Wytwarzanie fal grawitacyjnych == Fala grawitacyjna rozchodząca się od niezerowego źródła, w której gęstość materii poza źródłem jest równa zero, a także ciśnienie jest zaniedbywalnie małe, zatem tensor gęstości energii dla punktu poza źródłem zapisujemy wedle: {{CentrujWzór|<MATH>T^{\alpha\beta}=0\;</Math>|7.95}} Zatem biorąc to do równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}} i z przybliżeniem słabości pola grawitacyjnego tensor Einsteina wedle końcowego przedstawienia {{LinkWzór|5.17|Słabe_pola_grawitacyjne}}, jeśli będziemy wykorzystywać {{LinkWzór|7.95}}, zapisujemy wtedy go łącząc to z prawem grawitacji Einsteina: {{CentrujWzór|<MATH>G^{\alpha\beta}=\kappa T^{\alpha\beta}\Rightarrow G^{\alpha\beta}=0\Rightarrow {{1}\over{2}}\square\overline{h}_{\alpha\beta}=0\;</MATH>|7.96}} Rozwiązaniem równań grawitacji Einsteina dla słabego pola grawitacji {{LinkWzór|7.96}} jest wyrażenie {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, która jest zależna od stałej częstotliwości kołowej &Omega; i czasu t: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=B_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.97}} Aby sprawdzić jakie B{{Sub|&alpha;&beta;}} spełnia równanie {{LinkWzór|7.96}} dla odpowiedzi {{LinkWzór|7.97}}, to po podstawieniu naszego rozwiązania do rozważanego równania różniczkowego, mamy: {{CentrujWzór|<MATH>\square B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=0\;</MATH>|7.98}} Można udowodnić, że rozwiązanie w {{Formuła|<MATH>B_{\alpha\beta}\;</MATH>}} równania różniczkowego {{LinkWzór|7.98}} jest rozwiązanie w postaciach zależnych od dwóch niezależnych stałych występujące w dwóch składnikach osobno: {{CentrujWzór|<MaTH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\;</MATH>|7.99}} Sprawdźmy czy {{LinkWzór|7.99}} jest rzeczywiście jest rozwiązaniem równania {{LinkWzór|7.98}}, zatem jeśli obierzemy definicję kwadratu &Delta;=&nabla;{{Sup|2}} we współrzędnych kulistych, zatem operator &Delta; zapisujemy w postaci: {{CentrujWzór|<MATH>\Delta=\nabla^2={{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda</MATH>}} to policzmy, czy rozwiązanie {{LinkWzór|7.99}} jest poprawnym rozwiązaniem dla równania różniczkowego {{LinkWzór|7.98}} dla promienia od źródła, który się znajduje dla r=0, wtedy przejdźmy do właściwej idei dowodu: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda\right) \left({{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\right)=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+\;</MATH>{{Br}}<MATH>+\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}</MATH>|7.100}} Wyznaczmy pierwszy składnik w {{LinkWzór|7.100}}, czyli ile jest on równy: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}(r)}\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}={{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}\left(r{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\right)= {{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}-{{\Omega^2}\over{c^2}}{{1}\over{r}}A_{\alpha\beta}e^{i{{\Omega}\over{c}}r}=0</MATH>|7.101}} zatem ten nasz pierwszy składnik w {{LinkWzór|7.100}} wedle {{LinkWzór|7.101}} jest równy zero, dla drugiego wyrazu mamy podobnie, a dowód przebiega analogicznie jak dla {{LinkWzór|7.101}}, zatem dochodzimy do wniosku, że rozwiązanie {{LinkWzór|7.99}} jest rozwiązaniem {{LinkWzór|7.98}} poprawnym. W rozwiązaniu w {{LinkWzór|7.99}} wybierzmy tylko pierwszy wyraz, a w przypadku drugiego wyrazu stałą w nim występującą wyzerujmy, bo to równanie ma dwie niezależne stałe w dwóch niezależnych składnikach, bo tak robimy, że interesuje nasz rozwiązania rozchodzące się od źródła: {{CentrujWzór|<MATH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\;</MATH>|7.102}} Wyznaczmy wyrażenia pomocnicze, które będą w przyszłości nam potrzebne. Obierzmy kulę, która ma promień &epsilon;, którego promień jest zaniedbywalnie mały. Zakładamy, że źródło jest niezerowe tylko wewnątrz sfery o promieniu podanym wyżej, zatem przejdźmy do dzieła. {{CentrujWzór|<MATH>\lim_{\epsilon\rightarrow 0}\oint {{\Omega^2}\over{c^2}}B_{\alpha\beta}d^3x\leq{{\Omega^2}\over{c^2}}(B_{\mu\nu})_{max}d^3x=\lim_{\epsilon\rightarrow 0}{{\Omega^2}\over{c^2}}(B_{\alpha\beta})_{max}{{4}\over{3}}\pi\epsilon^3=0</MATH>|7.103}} Pozostało nam jeszcze do obliczenia całkę z działania operatora &nabla; względem infinitezymalnej objętości, którego to B{{Sub|&alpha;&beta;}} jest zależna od trzech współrzędnych i czasu w kartezjańskim układzie współrzędnych, która jest przestrzenią zanurzoną w czasoprzestrzeni czterowymniarowej: {{CentrujWzór|<MATH>\int \nabla^2B_{\alpha\beta}d^3x=\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}B_{\alpha\beta}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}{{1}\over{r}}A_{\alpha\beta}e^{-i{{\Omega}\over{c}}r}=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2A_{\alpha\beta}\left[ |-{{1}\over{r^2}}e^{-i{{\Omega}\over{c}}r}-{{1}\over{r}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c}}r}|_{r=\epsilon} \right]= \lim_{\epsilon\rightarrow 0}\left[\left(-4\pi\epsilon^2A_{\alpha\beta}\right){{1}\over{\epsilon^2}} e^{-i{{\Omega}\over{c}}\epsilon}-4\pi\epsilon^2{{1}\over{\epsilon}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c }}\epsilon}\right]=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}\left(-4\pi-4\pi\epsilon i {{\Omega}\over{c}}\right)A_{\alpha\beta}e^{-i{{\Omega}\over{c}}\epsilon}=-4\pi A_{\alpha\beta}</MATH>|7.104}} Następnym wyrażeniem pomocniczym, która korzysta z udowodnionych tożsamości, którego to pierwsza jest równa zero, a druga jest równa stałej tożsamości, czyli za pomocą tożsamości {{LinkWzór|7.103}} i {{LinkWzór|7.104}} możemy wyznaczyć wyrażenie: {{CentrujWzór|<MATH>\int\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}dV=-4\pi A_{\alpha\beta}\;</MATH>|7.105}} Równaniem grawitacji, którego to równanie jest zapisywane w punkcie {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}}, wewnątrz źródła jest opisane wedle wzoru ze stałą {{Formuła|<MATH>\kappa\;</MATH>}}, która jest równa {{LinkWzór|5.46|Słabe_pola_grawitacyjne}}, którego to zapis jest za pomocą tensora napięć-energii i tensora {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, dla słabego pola grawitacyjnego jest wyrażona: {{CentrujWzór|<MATH>{{1}\over{2}}\square\overline{h}_{\alpha\beta}={{8\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\;</MATH>|7.106}} Przecałkujmy wyrażenie {{LinkWzór|7.106}} obustronnie i wiedząc, że mamy definicję rozwiązania {{LinkWzór|7.97}} i w nim stałej {{LinkWzór|7.102}} dla rozmiarów kuli dążącej do prawie do zera, bo nasze źródło jest prawie punktowe: {{CentrujWzór|<MATH>(-4\pi A_{\alpha\beta})e^{-i\Omega t}={{16\pi G}\over{c^4}}\int T_{\alpha\beta}dV\;</MaTH>|7.107}} zatem możemy powiedzieć, że tensor A{{Sub|&alpha;&beta;}} jest zapisany jako całka z iloczynu tensora energii i napięć przez funkcję eksponencjalną , którego argumentem jest funkcja zależna od częstotliwości fali grawitacyjnej, a przed tą naszą rozważaną całką występują stałe mówiące o stałej grawitacji i prędkości światła c: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}\int T_{\alpha\beta}e^{i\Omega t}dV\;</MATH>|7.108}} Jeśli oznaczymy definicję gęstości tensora energii poprzez amplitudę drgań tensora gęstości energii i częstotliwość kołowa tych drgań i całkę występującą po prawej stronie {{LinkWzór|7.108}} poprzez definicję {{LinkWzór|7.109}}, to możemy zdefiniować wyrażenie na J{{Sub|&alpha;&beta;}} jako całkę po pewnej objętości zamkniętej po amplitudzie drgać omawianego tensora gęstości energii: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>T_{\alpha\beta}=S_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.109}}|2={{CentrujWzór|<MATH>J_{\alpha\beta}=\int T_{\alpha\beta}e^{i\Omega t}\Rightarrow J_{\alpha\beta}=\int S_{\alpha\beta}dV\;</maTH>|7.110}}}} Wtedy stałą A{{Sub|&alpha;&beta;}} (po lewej stronie w {{LinkWzór|7.108}}) i wedle definicji tensora gęstości energii poprzez stałą amplitudy {{LinkWzór|7.109}} i wykorzystując przy tym fakt, że w definicji tensora J{{Sub|&alpha;&beta;}} zapisanej w punkcie {{LinkWzór|7.110}}, zatem tensor A{{Sub|&alpha;&beta;}} jest zapisany na podstawie tychże danych w zależności od tensora J{{Sub|&alpha;&beta;}} w postaci: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}\;</MATH>|7.111}} Jest to amplituda fal grawitacyjnych występująca we wyrażeniu {{LinkWzór|7.102}} i wyrażona jest przez całkę z amplitudy drgań tensora gęstości energii. Rozwiązanie dla słabych pól grawitacyjnych wykorzystując wzór {{LinkWzór|7.111}}, przyjmuje postać: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}{{e^{i({{\Omega}\over{c}}r-\Omega t)}}\over{r}}\;</MATH>|7.112}} Jest to rozwiązanie dla fal grawitacyjnych wytwarzanych przez źródła prawie punktowe i nierelatywistyczne, które wytwarzają te właśnie fale zwane promieniowaniem grawitacyjnym. === Właściwości fali grawitacyjnej dla jednego wskaźnika zerowego górnego === Jeśli wykorzystamy równanie {{LinkWzór|7.110}}, którego wielkość jest całką amplitudy po infinitezymalnej objętości tensora gęstości energii oraz korzystając z definicji tensora gęstości energii dla źródła fal grawitacyjnych {{LinkWzór|7.109}}, co można wykorzystać mnożąc {{LinkWzór|7.110}} przez niezerowe wyrażenie {{Formuła|<MATH>e^{-i\Omega t}\;</MATH>}}: {{CentrujWzór|<MATH>J_{\mu\nu}e^{-i\Omega t}=\int T_{\alpha\beta}dV\;</MATH>|7.113}} I jeśli zróżniczkujemy obie strony wyrażenia {{LinkWzór|7.113}} względem czasu w sekundach, ale przedtem podnosząc wszystkie wskaźniki do góry i biorąc jednocześnie drugi wskaźnik jako zerowy, wtedy mamy: {{CentrujWzór|<MaTH>-i\Omega J^{\mu 0}e^{-i\Omega t}=\int {T^{\mu 0}}_{,0}dV=\int {T^{\mu k}}_{,k}dV=\oint T^{\mu k}n_kdS=0\;</MaTH>|7.114}} Powyższe równanie zachodzi, bo tensor gęstości energii po za źródłem fal grawitacyjnych jest równy zero, a my całkujemy po powierzchni, która otacza nasze źródło naszego promieniowania. W powyższych obliczeniach przyjęliśmy, że tensor gęstości energii na zewnątrz źródła jest równy zero na zewnątrz badanego źródła, bo wytwarzać fal grawitacyjnych jest bardzo mały, otrzymujemy: {{CentrujWzór|<maTH>J^{\mu 0}=0\Rightarrow \overline{h}^{\mu 0}=0\;</MATH>|7.115}} Dalsze zerowania się tensora metrycznego {{Formuła|<MATH>\overline{h}^{\mu \nu}\;</MATH>}} wynika stąd, gdy skorzystamy z symetryczności tensora {{LinkWzór|7.94}}, a także wynikającego z symetryczności tensora J{{Sup|&mu;&nu;}} {{LinkWzór|7.110}}, wynika poprzez to {{LinkWzór|7.112}} symetryczność tensora {{Formuła|<MATH>\overline{h}^{\mu\nu}\;</MATH>}}. === Tensor momentu kwadrupolowego rozkładu masy === Tensor momentu kwadrupolowego rozkładu masy definiujemy poprzez tensor gęstości energii o wskaźnikach dwóch górnych i zerowych i wyrazimy ją poprzez funkcję fali o częstotliwości kołowej &Omega; (eksponens z argumentu i&Omega;t) i przez tensor D{{Sup|lm}}: {{CentrujWzór|<MATH>I^{lm}=\int T^{00}x^lx^mdV=D^{lm}e^{-i\Omega t}\;</MATH>|7.116}} Jeśli zachodzi tożsamość {{LinkWzór|7.113}}, to na podstawie tożsamości zdefiniowanej w {{LinkWzór|7.89}}, możemy napisać, dokonując pewnych przekształceń i wykorzystania wzoru {{LinkWzór|7.116}} dla wskażników l,m=1,2,3 w sposób: {{CentrujWzór|<MATH>J^{lm}e^{-i\Omega t}=\int T^{lm}dV\Rightarrow J^{lm}e^{-i\Omega t}={{1}\over{2c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV\Rightarrow J^{lm}e^{-i\Omega t}=-{{\Omega^2}\over{2c^2}}D^{lm}e^{-i\Omega t}\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow J^{lm}=-{{\Omega^2}\over{2c^2}}D^{lm}\Rightarrow J_{lm}=-{{\Omega^2}\over{2c^2}}D_{lm}\;</MATH>|7.117}} Rozwiązanie {{LinkWzór|7.112}} na podstawie obliczeń {{LinkWzór|7.116}}, wykorzystując fakt {{LinkWzór|7.115}}, który mówi, że jedynymi elementami tensora poprawki do tensora metrycznego Minkowskiego w postaci fal grawitacyjnych {{Formuła|<MaTh>\overline{h}_{\alpha\beta}\;</MaTh>}} są równe zero, gdy zachodzi dla &alpha;=0 lub &beta;=0. Zatem wskaźniki przy naszym tensorze są równe 1,2,3, zatem dochodzimy wtedy do wniosku, że zachodzi ogólne rozwiązanie dla fal grawitacyjnych wytwarzane przez źródła prawie punktowe o niezerowych elementach: {{CentrujWzór|<MATH>\overline{h}_{lm}={{2G\Omega^2}\over{c^6}}D_{lm}{{e^{i\left({{\Omega}\over{c}}r-\Omega t\right)}}\over{r}}\;</MaTH>|7.118}} Tensory poprawki do tensora metrycznego Minkowskiego możemy obliczyć ze wzoru {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, gdy mamy już policzone {{LinkWzór|7.118}}. === Układ dwóch kulek jako układ prostego oscylatora === Widzimy, że na podstawie wzorów {{LinkWzór|7.116}}, że gdy I{{Sup|lm}}(t), to dla t=0 ono jest równe D{{Sup|lm}}, to wtedy mając cechowanie, w której dwuwskaźnikowe tensory krzywizny fali grawitacyjnej {{LinkWzór|7.2}}, w której w pewnym cechowaniu tensor amplitudy jest równy {{LinkWzór|7.25}}, wtedy tensory {{LinkWzór|7.118}} w tym cechowaniu możemy przepisać: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}^{TT}_{zi}=0\;</MATH>|7.119}}|2={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{G\Omega^2}\over{c^6}}\left(\not{I}_{xx}-\not{I}_{yy}\right){{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.120}}|3={{CentrujWzór|<MATH>\overline{I}_{xy}^{TT}=2{{G\Omega^2}\over{c^6}}\not{I}_{xy}{{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.121}}}} Przy powyższych uwagach wprowadziliśmy tensor bezśladowy z definiowany w oparciu o tensor I{{Sup|lm}} {{LinkWzór|7.116}}: {{CentrujWzór|<MATH>\not{I}_{lm}=I_{lm}-{{1}\over{3}}\delta_{lm}{I^l}_l\;</MATH>|7.122}} Rozważmy teraz falę emitowaną przez prosty oscylator fal grawitacyjnych, których wykrywamy, za pomocą detektora pokazywanego w punkcie [[#Detekcja fal grawitacyjnych|Detekcja fal grawitacyjnych]]. Ten detektor też wytwarza fale grawitacyjne, w których obie masy drgają z częstotliwością &omega; i z amplitudą A wokół średniego położenia równowagi. W tym przykładzie detektora fal mamy tylko składową I{{Sub|xx}} nierównej zero, tą składową możemy policzyć mając na uwadze harmoniczne drgania: {{CentrujWzór|<MATH>I_{xx}=mc^2\left[(x_1)^2+(x_2)^2\right]=mc^2\left[\left(-{{1}\over{2}}l_0-A\cos\omega t\right)^2+\left({{1}\over{2}}l_0+A\cos\omega t\right)^2\right]=\;</MATH>{{Br}}<MATH> =mc^2{{1}\over{4}}l_0^2+A^2m\cos^2\omega t+l_0mc^2Acos\omega t+{{1}\over{4}}ml_0^2+A^2mc^2\cos^2\omega t+l_0Amc^2\cos\omega t=\;</math>{{Br}}<math>={{1}\over{2}}mc^2l_0^2+2mA^2\cos^2\omega t+2l_0Amc^2\cos\omega t={{1}\over{2}}mc^2l_0^2+2mA^2+mc^2A^2\cos 2\omega t+2l_0Amc^2\cos\omega t</MATH>|7.123}} Zdefiniujmy teraz elementy tensora {{LinkWzór|7.122}} mając na uwadze element tensora I{{Sub|xx}} {{LinkWzór|7.123}} przy częstotliwości kołowej &omega;, czyli wykorzystując czwarty wyraz powyższych końcowych obliczeń możemy zdefiniować elementy tensora {{LinkWzór|7.122}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=I_{xx}-{{1}\over{3}}{I^l}_{l}={{2}\over{3}}I_{xx}={{4}\over{3}}c^2ml_0Ae^{-i\omega t}\\ \not{i}_{yy}={I}_{zz}-{{1}\over{3}}I_{xx}={{1}\over{3}}I_{xx}=-{{2}\over{3}}ml_0c^2Ae^{-i\omega t} \end{cases}\;</MATH>|7.124}} Zdefiniujmy teraz tensory {{LinkWzór|7.119}}, {{LinkWzór|7.120}} i {{LinkWzór|7.121}} w oparciu o tensor {{LinkWzór|7.124}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}=-\overline{h}_{yy}={{2mG\omega^2l_0A}\over{c^4}}{{e^{i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.125}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}=0\;</MATH>|7.126}}}} Jeśli uwzględnimy człon trzeci w końcowych obliczeniach {{LinkWzór|7.123}}, wtedy wzór na tensor {{Formuła|<MATH>\overline{I}_{xx}\;</MATH>}} i {{Formuła|<MATH>\overline{I}_{yy}\;</MATH>}}, który powstaje z {{LinkWzór|7.120}} po zastąpieniu &Omega; przez 2&omega;, wtedy otrzymujemy: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{4mG\omega^2A^2}\over{c^4}}{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.127}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=0\;</MATH>|7.128}}}} Całkowite promieniowanie wytwarzane przez prosty oscylator jest częścią rzeczywistą sumy składników, tzn. {{LinkWzór|7.125}} i {{LinkWzór|7.127}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}={{2mG\omega^2l_0}\over{c^4}}{{\cos\omega\left({{r}\over{c}}-t\right)}\over{r}}+{{4mG\omega^2A^2}\over{c^4}}{{\cos 2\omega\left({{r}\over{c}}-t\right)}\over{r}}\;</MATH>|7.129}} === Układ podwójny gwiazd o jednakowych masach === Wygodniejszym przykładem jest podwójmy układ gwiezdny dwóch jednakowych gwiazd, które krążą po orbicie o promieniu {{Formuła|<MATH>{{1}\over{2}}l_0\;</MATH>}}, czyli wokół wspólnego środka masy, wtedy równanie ruchu z drugiej zasady dynamiki dynamiki Newtona jest: {{CentrujWzór|<MATH>G{{m^2}\over{l_0^2}}=m\omega^2\left({{l_0}\over{2}}\right)\Rightarrow\omega=\left({{2Gm}\over{l_0^3}}\right)^{{{1}\over{2}}}\;</MATH>|7.130}} Położenia układu dwóch gwiazd opiszemy przy odpowiednich wyborze współrzędnych, przy czym oznaczamy przez jedynkę pierwszą gwiazdę, a przez dwójkę drugą gwiazdę: {{CentrujWzór|<MATH>\begin{cases} x_1(t)={{1}\over{2}}l_0\cos\omega t&y_1(t)={{1}\over{2}}l_0\sin\omega t\\ x_2(t)=-x_1(t)&y_2(t)=-y_1(t) \end{cases}\;</MATH>|7.131}} Wiedząc, ze tensor kwadrupolowy definiujemy sposobem I{{Sub|ik}}=mc{{Sup|2}}x_ix_k według {{LinkWzór|7.116}}, wtedy te elementy tego tensora możemy napisać dla podwójnego układu gwiazd, których ich współrzedne zdefiniowane są sposobem {{LinkWzór|7.131}}: {{CentrujWzór|<MATH>\begin{cases} I_{xx}=m c^2(x^2_1(t)+x^2_2(t))={{1}\over{2}}mc^2l_0^2\cos^2\omega t={{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{yy}=mc^2(y^2_1(t)+y^2_2(t))={{1}\over{2}}mc^2l_0^2\sin^2\omega t=-{{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{xy}=mc^2x_1(t)y_1(y)={{1}\over{8}}c^2ml_0^2\sin2\omega t\\ \end{cases}\;</MATH>|7.132}} Napiszmy teraz czemu są równe tensory {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} dla naszego badanego układu wykorzystując jego definicję {{LinkWzór|7.22}}, do którego wykorzystamy już policzone elementy tensora I{{Sub|lm}}, czyli I{{Sub|xx}}, I{{Sub|yy}} i I{{Sub|xy}}, wiedząc, że I{{Sup|l}}{{Sub|l}}=0 na podstawie definicji elementów I{{Sub|lm}} {{LinkWzór|7.132}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=-\not{I}_{yy}={{1}\over{4}}mc^2l_0^2e^{-2i\omega t}\\ \not{I}_{xy}={{1}\over{4}}imc^2l_0^2e^{-2i\omega t}\\ \end{cases}\;</MATH>|7.133}} Patrząc na wzory {{LinkWzór|7.120}} i {{LinkWzór|7.121}} dla &Omega;=2&omega; i na elementy tensora {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} {{LinkWzór|7.133}}, wtedy można zapisać wzory na promieniowanie rozchodzące się wzdłuż kierunku zetowego: {{CentrujWzór|<MATH>\begin{cases} \overline{h}_{xx}^{TT}=-\overline{h}_{yy}={{2mGl_0^2}\over{c^4}}\omega^2{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\\ \overline{h}_{xy}^{TT}={{2imGl_0^2\omega^2}\over{c^4}}{{e^{2i\omega({{r}\over{c}}-t)}}\over{r}}\end{cases}\;</MATH>|7.134}} === Równanie falowe i jego ścisłe rozwiązanie === Ścisłe rozwiązanie falowe dla fali grawitacyjnej dla źródła punktowego jest {{LinkWzór|7.112}}, weźmy sobie pewne źródło składające się ze źródeł punktowych, i w ten sposób fala grawitacyjna dociera pokolei do kolejnych punktów tego ośrodka w czasie t'=t-R/c, wtedy mamy wzór na elementy tensora {{Formuła|<MATH>\overline{h}_{\mu\nu}\;,</MATH>}} dla tego niepunktowego źródła: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}=-{{4G}\over{c^4}}\int J_{\mu\nu}(\vec{r},t^'){{e^{i\Omega\left({{R}\over{c}}-t\right)}}\over{R}}dV=-{{4G}\over{c^4}}\int {{T_{\mu\nu}(t^',x^i)}\over{R}}e^{i\Omega t^'}e^{i\Omega\left({{R}\over{c}}-t\right)}dV=-{{4G}\over{c^4}}\int{{T_{\mu\nu}\left(t-{{R}\over{c}},x^i\right)}\over{R}}d^3x\;</MATH>|7.135}} Weźmy sobie punkt w którym będziemy obserwować falę grawitacyjną, który jest bardzo daleko od źródła fali grawitacyjnej, wtedy powiemy: {{CentrujWzór|<MATH>\left[\sum_i(y^i)^2\right]^{{{1}\over{2}}}\equiv r>>\left[\sum_i(x^i)^2\right]^{{{1}\over{2}}}\;</MATH>|7.136}} Przy tak zachodzącym warunku {{LinkWzór|7.136}} możemy napisać, pod którą pod całką występuje tensor napięć energii a przed całką jest odwrotność promienia r, która wyszła z całki, która była pod postacią R, bo dla małego źródła r i R praktycznie się nie różnią: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}\simeq-{{4G}\over{c^4r}}\int T_{\mu\nu}d^3x\;</MATH>|7.137}} Do wzoru {{LinkWzór|7.137}} możemy wykorzystać {{LinkWzór|7.89}} i definicję tensora kwadrupolowego {{LinkWzór|7.116}}, wtedy tensor fali grawitacyjnej przyjmuje wtedy kształt: {{CentrujWzór|<MATH>\overline{h}_{lm}=-{{2G}\over{c^4r}}I_{lm,0,0}\left(t-{{r}\over{c}}\right)\;</MATH>|7.138}} Jeśli w prowadzimy cechowanie TT, to wtedy wzór na elementy tensora fali grawitacyjnej są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-{{G}\over{c^4r}}\left[\not{I}_{xx,00}\left(t-{{r}\over{c}}\right)-\not{I}_{yy,00}\left(t-{{r}\over{c}}\right)\right]\;</MATH>|7.139}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=-{{2G}\over{c^4r}}\not{I}_{xy,00}\left(t-{{r}\over{c}}\right)\;</MATH>|7.140}}}} == Energia przenoszona przez fale grawitacyjne wytwarzane przez układ oscylatorów grawitacyjnych == Przy pomocy wcześniejszych rozważań zorientowaliśmy się, że fale grawitacyjne przenoszą energię. Fale grawitacyjne unoszą energię od swych źródeł zabierając im energię. Rozważmy teraz ciało próbne, który nie wpływa na pole fali grawitacyjnej, czyli jego wpływ jest zaniedbywalny, wtedy takie podejście jest niekonsystentne, zatem jeśli przez ciało przechodzi fala grawitacyjna, to po przejściu jego przez układ mas, to fala grawitacyjna powinna być słabsza, tzn. układ ciał przez które przechodzi się fala grawitacyjna, sama staje się jego źródłem. Rozważmy teraz falę padającą o częstotliwości kołowej &omega;, to fala wyemitowana przez ciało jest emitowana z tą samą częstotliwością, więc fale przechodząca przez układ mas jest zatem sumą dwóch fal, tzn. fali padającej i fali wyemitowanej. Zobaczymy, że te dwie fale interferują one ze sobą dekonstruktywnie, obniżając wypadkową fali w tym kierunku. W innych kierunkach nie ma interferencji, i fale przechodzą jedno koło drugiej. === Fala grawitacyjna i jego strumień energii === Załóżmy, że mamy falę grawitacyjną wytwarzaną przez układ oscylatorów, który jest układem mas znajdujących się w pewnej płaszczyźnie, wtedy bardzo wygodnie jest rozważanie nie jako oscylatora harmonicznego wytwarzającego fale grawitacyjne, ale układ oscylatorów znajdujących się w płaszczyźnie dla z=0. Oscylatory w rozważanej płaszczyźnie są bardzo blisko siebie, więc je możemy uważać jako układ ciągły oscylatorów, i wprowadźmy przez &sigma; jako liczbę oscylatorów przez jednostkę powierzchni. Fala padająca na układ oscylatorów znajdujących się na płaszczyźnie przy cechowaniu {{LinkWzór|7.25}} określamy przez wzory: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=A\cos\Omega\left({{z}\over{c}}-t\right)\;</MATH>|7.141}}|2={{CentrujWzór|<MATH>\overline{h}_{yy}^{TT}=-\overline{h}_{xx}^{TT}\;</MATH>|7.142}}}} Przy przejściu fali grawitacyjnej przez naszą rozważaną płaszczyznę układu oscylatorów, wtedy ten układ odpowie stabilną oscylacją: {{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\phi)\;</MATH>|7.143}} Wielkości R i &phi; są to wielkości opisane poprzez wzory na &phi; {{LinkWzór|7.69}} i na R {{LinkWzór|7.76}}. Nasz rozważany ruch jest stabilny ponieważ energia dostarczana przez przechodzącą falę grawitacyjną poprzez sprężynkę jest rozpraszana w wyniku tarcia w oscylatorach w których energia jest kompensowana przez pracę wykonywaną na sprężynkach przez pływowe siły fali grawitacyjnej. Fala grawitacyjna dostarcza energii każdemu oscylatorowi równą: {{CentrujWzór|<MATH>{{dE}\over{dt}}=\nu\left({{\partial\xi}\over{\partial t}}\right)^2=m\gamma \left({{\partial\xi}\over{\partial t}}\right)^2\;</MATH>|7.144}} Uśrednienie energii dostarczanej przez falę w ciągu jednego okresu równej T=2&pi;/&Omega; dla wyrażenia {{LinkWzór|7.138}}, w wyniku tego mamy uśrednioną energię z definicji wartości średniej: {{CentrujWzór|<MATH>\left\langle{{dE}\over{dt}}\right\rangle= {{1}\over{{{2\pi}\over{\Omega}}}}\int_0^{{{2\pi}\over{\Omega}}}m\gamma\Omega^2R^2\sin^2(\Omega t+\phi)dt= {{m\gamma\Omega^3R^2}\over{2\pi}}\int_0^{{{2\pi}\over{\Omega}}}{{1}\over{2}}(1-\cos\left(2\Omega t+2\phi)\right)={{m\gamma\Omega^3R^2}\over{2\pi}}{{1}\over{2}}{{2\pi}\over{\Omega}}={{1}\over{2}}m\gamma\Omega^2R^2\;</MATH>|7.145}} Wzór {{LinkWzór|7.145}} przestawia energię dostarczaną do układu oscylatorów przez falę grawitacyjną, przy &sigma; oscylatorach energia fali zmniejsza się przy przejściu przez płaszczyznę o wartość: {{CentrujWzór|<MATH>\delta F=-{{1}\over{2}}\sigma m\gamma\Omega^2R^2\;</MATH>|7.146}} Każdy oscylator ma tensor kwadrupolowy zapisanej przez wzór {{LinkWzór|7.123}}, w której zastąpimy &omega; t przez &Omega;t+&phi;, a A przez R/2. Ponieważ w naszym przypadku R jest niewielkie, to człon jego trzeci możemy pominąć, i w ten sposób otrzymujemy tensor kwadrupolowy: {{CentrujWzór|<MATH>I_{xx}=mc^2l_0R\cos(\Omega t+\phi)\;</MATH>|7.147}} Według wzoru {{LinkWzór|7.118}} każdy oscylator wytwarza falę grawitacyjną: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}={{2G\Omega^2ml_0R}\over{c^4}}{{\cos\left[\Omega({{r}\over{c}}-t)-\phi\right]}\over{r}}\;</MATH>|7.148}} {{Rysunek|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego.png|bg1|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego|rozmiar=150px}} Ilość oscylatorów na powierzchni {{Formuła|<MATH>\pi\tilde{\omega}^2\;</MATH>}} jest {{Formuła|<MATH>\pi\tilde{\omega}^2\sigma\;</MATH>}}, a ilość oscylatorów znajdujących się na powierzchni pomiędzy {{Formuła|<MATH>\tilde{\omega}\;</MATH>}}, a {{Formuła|<math>\tilde{\omega}+d\tilde{\omega}\;</MATH>}} jest wyrażona przez {{Formuła|<MATH>2\pi\sigma\tilde{\omega}d\tilde{\omega}\;</MATH>}}, wtedy całkowity tensor {{Formuła|<math>\overline{h}_{xx}\;\;</math>}} możemy wyrazić przez: {{CentrujWzór|<math>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_0^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]{{\overline{\omega}d\overline{\omega}}\over{r}}\;</MATH>|7.149}} Z rysunku obok należy zauważyć, że {{Formuła|<math>r^2=z^2+\tilde{\omega}^2\Rightarrow rdr=\tilde{\omega}d\tilde{\omega}\;</MATH>}}, i w ten sposób wykorzystując to do wzoru {{LinkWzór|7.149}}: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_z^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</math>|7.150}} Całka {{LinkWzór|7.150}} jest całką rozbieżną, gdy przyjmować będziemy &sigma; jako stałą, więc &sigma; możemy uczynić jako funkcję &sigma;(z)e{{Sup|&epsilon; r}} i pozwoleniu by przy scałkowaniu dla &epsilon; dążyło do zera, i w ten sposób mamy całkę do policzenia: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{4\pi G\Omega^2ml_0R}\over{c^4}}\lim_{\epsilon\rightarrow 0}\int_z^{\infty}\sigma(z)e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</MATH>|7.151}} Wyznaczmy teraz dokładną całkę występującą we wzorze {{LinkWzór|7.151}} po prawej jego stronie: {{CentrujWzór|<MATH>\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr= -{{1}\over{\epsilon}}e^{-\epsilon r}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Bigg|_{z}^{\infty}-{{\Omega}\over{c\epsilon}}\int_z^{\infty}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr=\;</MATH>{{Br}}<MATH>={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\psi\right]-{{\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow {{c^2\epsilon^2+\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{c^2\epsilon}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{c\Omega}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]</MATH>|7.152}} Całkę policzoną w punkcie {{LinkWzór|7.152}} podstawiamy do wzoru {{LinkWzór|7.151}}, i w ostatecznych rozrachunkach dostajemy: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}=-{{4\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.153}} Aby porównać pole {{LinkWzór|7.153}} z falą padającą {{LinkWzór|7.135}} należy to przedostatnie napisać w cechowaniu TT, bo ono pierwotnie nie było w tym cechowaniu, otrzymujemy: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}^{TT}=-\delta\overline{h}_{yy}^{TT}=-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.154}} Wypdadkowa fala grawitacyjna piszemy jako sumę fali grawitacyjnej padającej {{LinkWzór|7.135}} na układ oscylatorów fali grawitacyjnej wytwarzanej przez układ oscylatorów w płaszczyźnie {{LinkWzór|7.154}} i w rezultacie otrzymujemy: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}=\overline{h}_{xx}^{TT}+\delta \overline{h}^{TT}_{xx}=A\cos \left[\Omega\left({{z}\over{c}}-t\right)\right]-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi\right]-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\cos\psi-A\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\sin\psi-\;</MATH>{{Br}}<MATH>-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\Bigg\{\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\cos(\psi-\phi)}_{\cos\psi\cos \phi+\sin\psi\sin\phi}+\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\sin(\psi-\phi)}_{\sin\psi\cos\phi-\cos\psi\sin\phi}\Bigg\}\;</MATH>|7.155}} Powyższe obliczenia będziemy przeprowadzali dla małych wielkości R, czyli z dokładnością wyrazów pierwszego rzędu względem R, wtedy według powyższych obliczeń przeprowadzonych w punkcie {{LinkWzór|7.155}} możemy napisać : {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\cos\psi\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right]-\psi\right)+\;</MATH>{{Br}}<MATH>+\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\left(A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi\right) </MATH>|7.156}} W powyższych obliczeniach należy przyjąć zachodzący warunek na kąt &psi;: {{CentrujWzór|<MATH>A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi=0\Rightarrow\operatorname{tg}\psi={{2\pi G\Omega \sigma l_0R}\over{Ac^3}}\cos\phi\;</MATH>|7.157}} W ten sposób otrzymujemy zależność na tensor {{Formuła|<MATH>\overline{h}_{xx}^{wypadkowe}\;</MATH>}}, który przepisujemy z {{LinkWzór|7.156}} przy zachodzącej tożsamości {{LinkWzór|7.157}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\;</MATH>|7.158}} Wypadkowym efektem przy przejściu fali grawitacyjnej jest zmniejszenie jego amplitudy patrząc na {{LinkWzór|7.158}} o wartość (R ujemne według {{LinkWzór|7.76}}): {{CentrujWzór|<MATH>\delta A={{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\;</MATH>|7.159}} Zmniejszenie amplitudy o wartość {{LinkWzór|7.159}} towarzyszy temu zmiana strumienia energii opisanej przez {{LinkWzór|7.140}}, po skorzystaniu wzorów {{LinkWzór|7.76}} i z {{LinkWzór|7.74}}, co w rezultacie daje mam zastanawiający wynik: {{CentrujWzór|<MATH>{{\delta F}\over{\delta A}}={{-{{1}\over{2}}\sigma m\gamma\Omega^2R^2}\over{{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi}}=-{{\gamma\Omega Rc^3}\over{4\pi Gl_0\sin\phi}}=-{{\gamma\Omega c^3}\over{4\pi Gl_0}}{{R}\over{\sin\phi}}={{\gamma\Omega c^3}\over{4\pi Gl_0}}{{l_0A\Omega^2}\over{4\gamma\Omega}}={{c^3}\over{16\pi G}}\Omega^2A\;</MATH>|7.160}} Wzór {{LinkWzór|7.160}} możemy przecałkować względem argumentu A, i w ten sposób otrzymujemy całkowity strumień energii F w zależności od amplitudy fali A i częstości &Omega;: {{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2A^2\;</MATH>|7.161}} Średnią po kwadracie dla amplitudy A możemy napisać wzorem poniżej, a także po podstawieniu tego do {{LinkWzór|7.161}} mając na myśli tylko dwie niezależne składowe rozważanego tensora: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\langle{\overline{h}_{xx}^{TT}}^2\rangle={{1}\over{2}}A^2\;</MATH>|7.162}}|2={{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2\langle\overline{h}_{\mu\nu}^{TT}{\overline{h}^{\mu\nu}}^{TT}\rangle\;</MATH>|7.163}}}} <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> ihucghag0xrsrmtby2z08kd37y5tswr 546541 546540 2026-06-12T15:56:37Z Persino 2851 /* Równanie dewiacji a odległość wektorowa pomiędzy obydwa spoczywającymi współrzędnościowo cząstkami */ 546541 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> Tutaj będziemy się zajmować ''falami grawitacyjnymi'', tzn. co to są fale grawitacyjne, czy to jest fala poprzeczna czy podłużna, dlaczego prędkość grupowa jest równa prędkości fazowej, jak można wykryć fale grawitacyjną za pomocą rezonatora grawitacyjnego, jak je wytwarzać. == Propagacja fal grawitacyjnych == Udowodnimy, że dla naszego pola grawitacyjnego niestacjonarnego w dużej odległości od źródła, pole grawitacyjne rozchodzi się na w sposób fali. Tensor Einsteina dla słabych pól grawitacyjnych daleko od źródła grawitacyjnego przedstawia się wedle schematu {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} i daleko od źródła tensor gęstości energii znika T{{Sup|&alpha;&beta;}}=0, bo w rozważanym punkcie gęstość jest już równa zero, a także ciśnienie jest zaniedbywalnie małe. Z równania grawitacji Einsteina, dla zerowego tensora gęstości energii-pędu powyższego równania, oczywiste jest, że tensor Einsteina G{{Sup|&alpha;&beta;}}=0. Z zerowania się tensora gęstości energii i równanie grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}} po pomnożeniu jego przez dwa i korzystając z definicji operatora d'Alemberta mamy z oczywistych powodów: {{CentrujWzór|<MATH>0=\square \overline{h}_{\alpha\beta}\Rightarrow\left(-{{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}^{\alpha\beta}=0</MATH>|7.1}} Końcowe równanie {{LinkWzór|7.1}} jest równaniem falowym, a poniżej podamy jego rozwiązanie w postaci poniżej, którego to zapis zależy od czterowektora kontrawariantnego położenia x{{Sup|&mu;}}i czterowektora kowariantnego liczby falowej k{{Sup|&mu;}}: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{ik_{\mu}x^{\mu}}</MATH>|7.2}} Końcowe równanie falowe {{LinkWzór|7.1}} po podstawieniu do niego rozwiązania falowego {{LinkWzór|7.2}} i zakładając przy tym, że stała tensorowa A{{Sup|&alpha;&beta;}} występująca w naszym wspomnianym rozwiązaniu jest stałą dowolną: {{CentrujWzór|<MATH>\eta^{\mu\nu}{\overline{h}^{\mu\nu}}_{,\mu,\nu}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}\overline{h}^{\alpha\beta}=0\Rightarrow\eta^{\mu\nu}k_{\mu}k_{\nu}=0\Rightarrow k_{\mu}k^{\mu}=0\;</MATH>|7.3}} Wielkość występująca w {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}} pod eksponensem zapisanej w punkcie {{LinkWzór|7.2}} można rozpisać w zależności od czasu i wektora {{Formuła|<MATH>\vec{r}\;</math>}} wedle sposobów w zależności wprost proporcjonalnej od częstotliwości kołowej i zwykłej liczby falowej k. {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_0 ct+\mathbf{k}\vec{r}</MATH>|7.4}} Jeśli weżniemy, że zachodzi dla fotonu podróżującego wzdłuż wektora przestrzennego {{Formuła|<MATH>\vec{k}\;</MATH>}}, którego elementy są to składowe czterowektora k{{Sup|&mu;}} bez jej współrzędnej czasowej: {{CentrujWzór|<MATH>x^{\alpha}(\lambda)=k^{\alpha}\lambda+l^{\alpha}\;</MATH>|7.5}} Ależ wiadomo jednak, że l{{Sup|&lambda;}} jest stałym tensorem (wektorem). Możemy podstawić {{LinkWzór|7.5}} do {{LinkWzór|7.4}} i się przekonamy, że względem rozwiązania {{LinkWzór|7.5}} wyrażenie {{LinkWzór|7.4}} jest wielkością stałą na podstawie końcowego wyrażenia {{LinkWzór|7.3}}, że długość czterowektora {{Formuła|<MATH>k^{\mu}\;</MATH>}} w czasoprzestrzeni jest wielkością stałą: {{CentrujWzór|<MATH>k_{\alpha}x^{\alpha}=k_{\alpha}k^{\alpha}\lambda+k_{\alpha}l^{\alpha}=\operatorname{const}\Rightarrow k_{\alpha}x^{\alpha}=k_{\alpha}l^{\alpha}</MATH>|7.6}} Znając definicję częstotliwości kołowej i liczby falowej poprzez długość fali grawitacyjnej, które można zapisać te wielkości fizyczne wedle: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>k_0={{\omega}\over{c}}\;</MATH>|7.7}}|2={{CentrujWzór|<MATH>k=|\vec{k}|={{2\pi}\over{\lambda}}\;</Math>|7.8}}}} Możemy wykorzystać z równości końcowej {{LinkWzór|7.3}} i wykorzystując dwie tożsamości {{LinkWzór|7.7}} oraz {{LinkWzór|7.8}}, wtedy to nasze wyrażenie rozpiszmy na część czasową i przestrzenną , wtedy możemy powiedzieć, że fala grawitacyjna rozchodzi się z prędkością fazową równą prędkości światła c: {{CentrujWzór|<MATH>k_{\mu}k^{\mu}=0\Rightarrow k_0k_0-k_ik_i=0\Rightarrow k_0^2=\sum^3_{i=1}k_i^2\Rightarrow {{\omega^2}\over{c^2}}=\vec{k}^2\Rightarrow\omega=\left|\vec{k}\right|c\Rightarrow \omega=kc\;</math>|7.9}} Dla {{LinkWzór|7.7}} (współrzędna czasowa liczby falowej) i {{LinkWzór|7.8}} (długość liczby falowej w przestrzeni) przy k{{Sup|&mu;}}, na którą składa się na jej część czasową i przestrzenną, wtedy równanie {{LinkWzór|7.2}} piszemy: {{CentrujWzór|<MATH>\overline{h}^{\alpha\beta}=A^{\alpha\beta} e^{i\left({{\omega}\over{c}}ct+\vec{k}\vec{r}\right)}\Rightarrow \overline{h}^{\alpha\beta}=A^{\alpha\beta}e^{i\left(\omega t+\vec{k}\vec{r}\right)}\;</MATH>|7.10}} Wykorzystując definicję prędkości fazowej i grupowej znanej z fizyki ogólnej i zależności końcowej {{LinkWzór|7.9}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>v_f={{\omega}\over{k}}={{kc}\over{k}}=c\;</Math>|7.11}}|2={{CentrujWzór|<MATH>v_g={{d\omega}\over{dk}}={{dkc}\over{dk}}=c\;</Math>|7.12}}}} Na podstawie obliczeń {{LinkWzór|7.11}} i {{LinkWzór|7.12}} udowodniliśmy, że prędkość grupowa i fazowa fal grawitacyjnych są sobie równe, ze względu na właściwości czterowektora falowego w czasoprzestrzeni. Do naszego rozwiązania {{LinkWzór|7.2}} należy dodać cechowanie pola grawitacyjnego {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}, czyli wielkości {{Formuła|<MATH>\overline{h}^{\alpha\beta}</MATH>}}, czyli z tego cechowania wynika końcowa tożsamość: {{CentrujWzór|<MATH>{\overline{h}^{\alpha\beta}}_{,\beta}=0\Rightarrow A^{\alpha\beta}k_{\beta}e^{ik_{\alpha}x^{\alpha}}=0\Rightarrow A^{\alpha\beta}k_{\beta}=0</MATH>|7.13}} Wedle powyższych rozważań udowodniliśmy, że fale grawitacyjne są falami poprzecznymi, bo iloczyn skalarny między czterowektorem liczby falowej i tensorem amplitudy fali grawitacyjnej {{LinkWzór|7.2}} jest równy zero. == Bezśladowe cechowanie poprzeczne Lorentza == Mamy sobie nowy układ współrzędnych względem starego układu, w obu układach panuje cechowanie Lorentza {{LinkWzór|5.29|Słabe_pola_grawitacyjne}}, dla równości różniczkowej {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} znajdźmy sobie taki tensor &xi;{{Sup|&alpha;}} przy tych cechowaniach w starym i w nowym układzie współrzędnych, który spełnia równanie różniczkowe {{LinkWzór|5.28|Słabe_pola_grawitacyjne}} tożsamościowo, zatem nasz wspomniany tensor musi zatem spełniać w takim przypadku równanie różniczkowe: {{CentrujWzór|<MATH>\square \xi^{\alpha}=0\;</MATH>|7.14}} Rozwiązaniem równania {{LinkWzór|7.14}} jest rozwiązaniem w postaci funkcji zależnej od czterowektora falowego k{{Sub|&mu;}} wedle: {{CentrujWzór|<math>\xi^{\alpha}=B^{\alpha}e^{ik_{\mu}x^{\mu}}\;</MaTH>|7.15}} Mając rozwiązaniem równania falowego {{LinkWzór|7.2}} i rozwiązanie w postaci funkcji &xi; {{LinkWzór|7.15}} równania {{LinkWzór|7.14}}, wtedy równość końcową {{LinkWzór|5.25|Słabe_pola_grawitacyjne}} możemy zapisać na podstawie: {{CentrujWzór|<MATH>{A'}_{\alpha\beta}=A_{\alpha\beta}-iB_{\alpha}k_{\beta}-iB_{\beta}k_{\alpha}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}\;</MaTh>|7.16}} Obierzmy sobie dodatkowe cechowania obowiązujące w nowym układzie współrzędnych wedle sposobów: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{A'}^{\alpha}}_{\alpha}=0\;</MATH>|7.17}}|2={{CentrujWzór|<MATH>{A^{'}}_{\alpha\beta}U^{\beta}=0\;</MATH>|7.18}}}} Przedstawmy teraz tożsamości wynikające z {{LinkWzór|7.17}} oraz z {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, wtedy na podstawie tego otrzymujemy dwa poniższe warunki: {{ElastycznyWiersz|1={{CentrujWzór|<math>\overline{h}={\overline{h}^{\alpha}}_{\alpha}=0\;</MATH>|7.19}}|2={{CentrujWzór|<MATH>h_{\alpha\beta}=\overline{h}_{\alpha\beta}\;</Math>|7.20}}}} Równość tensorową {{LinkWzór|7.16}} na podstawie pierwszego cechowania {{LinkWzór|7.17}} możemy napisać w postaci: {{CentrujWzór|<MATH>0={A^{\alpha}}_{\alpha}-iB^{\alpha}k_{\alpha}-iB_{\alpha}k^{\alpha}+i{\delta^{\alpha}}_{\alpha}B^{\mu}k_{\mu}\Rightarrow 0={A^{\alpha}}_{\alpha}+2iB^{\alpha}k_{\alpha}\;</MaTH>|7.21}} Mamy cztery wartości tensora B{{Sup|&alpha;}} przy jakiś wartościach A{{Sub|&alpha;&beta;}}, czyli mamy jedno tensorowe równanie więzów z czterema niewiadomymi. Weźmy sobie pod lupę cechowanie {{LinkWzór|7.17}} na podstawie obrania nowego układu spełniającego to cechowanie, wtedy na podstawie {{LinkWzór|7.16}} dostajemy znów inną tożsamość: {{CentrujWzór|<MATH>0=A_{\alpha\beta}U^{\beta}-iB_{\alpha}k_{\beta}U^{\beta}-iB_{\beta}k_{\alpha}U^{\beta}+i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\Rightarrow A_{\alpha\beta}U^{\beta}=iB_{\alpha}k_{\beta}U^{\beta}+iB_{\beta}k_{\alpha}U^{\beta}-i\eta_{\alpha\beta}B^{\mu}k_{\mu}U^{\beta}\;</MATH>|7.22}} Jeśli pomnożyć końcowe równanie {{LinkWzór|7.22}} przez k{{Sup|&alpha;}}, to lewa strona tejże wspomnianej równości wedle warunku na poprzeczność fal grawitacyjnych wynikające z warunku cechowania Lorentza {{LinkWzór|7.13}} co stąd wynika, że ta strona naszego równania jest zawsze równa zero, ale przy jakich B{{Sub|&alpha;}}, zatem z {{LinkWzór|7.22}} mamy: {{CentrujWzór|<math>0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}+k^{\alpha}iB_{\beta}U^{\beta}k_{\alpha}-ik^{\alpha}\eta_{\alpha\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=k^{\alpha}iB_{\alpha}k_{\beta}U^{\beta}-ik_{\beta}U^{\beta}B^{\mu}k_{\mu}\Rightarrow 0=0\;</MATH>|7.23}} Na podstawie {{LinkWzór|7.23}} jest ona spełniona bez względu jakie wartości przyjmuje B{{Sub|&alpha;}}, zatem dostajemy na podstawie wiadomości z algebry, że równość tensorowa {{LinkWzór|7.22}} ma w sobie trzy niezależne równania z czterema niewiadomymi B{{Sub|&alpha;}}. Jeśli połączymy równanie {{LinkWzór|7.22}} z {{LinkWzór|7.21}} dostajemy cztery niezależne równania z czteroma niewiadomymi, którymi są elementy tensora B{{Sub|&alpha;}}, których jest cztery, zatem na podstawie znanych A{{Sub|&alpha;&beta;}} możemy wyznaczyć właśnie elementy tensora B{{Sub|&alpha;}} jednoznacznie. Dochodzimy do wniosku, że cechowania {{LinkWzór|7.17}} i {{LinkWzór|7.18}} są spełnione w jakimś tam układach odniesienia, których jest nieskończenie wiele jak przy cechowaniu Lorentza {{LinkWzór|5.33|Słabe_pola_grawitacyjne}}. Jeśli założymy, że cząstka spoczywa, to wtedy mamy U{{Sup|&beta;}}=&delta;{{Sup|&beta;}}{{Sub|0}}, wtedy na podstawie równania {{LinkWzór|7.18}} mamy 0=A{{Sub|&alpha;&beta;}}&delta;{{Sup|&beta;}}{{Sub|0}}=A{{Sub|&alpha; 0}}, zatem na podstawie symetryczności A{{Sub|&alpha;&beta;}} pierwsza kolumna i wiersz są zerowymi wielkościami. Jeśli przyjąć, że cząstka porusza się w kierunku osi zetowej, czyli jego czterowektor liczby falowej jest: {{CentrujWzór|<MATH>k^{\mu}=(k^1={{\omega}\over{c}},0,0,k)\;</math>|7.24}} wtedy warunek {{LinkWzór|7.13}} implikuje 0=A{{Sub|&alpha;&beta;}}k{{Sup|&beta;}}=k{{Sup|3}}A{{Sub|&alpha;3}}, zatem na podstawie tego rozważania i symetryczności A{{Sub|&alpha;&beta;}} dostajemy, że trzecia kolumna i wiersz są wielkościami zerowymi. Jeśli weźmiemy dodatkowo warunek {{LinkWzór|7.18}}, z poprzednimi rozważaniami: 0=A{{Sup|&alpha;}}{{Sub|&alpha;}}=A{{Sub|xx}}+A{{Sub|yy}}&rArr;A{{Sub|yy}}=-A{{Sub|xx}}, zatem naszą macierz A{{Sub|&alpha;&beta;}} możemy zapisać: {{CentrujWzór|<MATH>A^{TT}_{\alpha\beta}=\begin{pmatrix} 0&0&0&0\\ 0&A_{xx}&A_{xy}&0\\ 0&A_{xy}&-A_{xx}&0\\ 0&0&0&0\\ \end{pmatrix}</MATH>|7.25}} == Wpływ fal grawitacyjnych na swobodną cząstkę == Cząstka spoczywająca nie ma elementów przestrzennych czterowektora prędkości, wtedy wzór na linię geodezyjną {{LinkWzór|1.74|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, gdy parametr {{Formuła|<MATH>\lambda\;</MATH>}} jest interwałem czasoprzestrzennym, możemy zapisać: {{CentrujWzór|<MATH>{{du^{\alpha}}\over{ds}}=-{\Gamma^{\alpha}}_{00}\;</MaTH>|7.26}} Do wzoru {{LinkWzór|7.26}} bardzo nam są potrzebne elementy tensora Christoffela na podstawie {{LinkWzór|7.2}} i na podstawie elementów amplitudy tensorowej A{{Sup|&alpha;&beta;}}{{LinkWzór|7.25}}, które to &Gamma;{{Sup|&alpha;}}{{Sub|00}} następnie wyznaczymy, zatem do dzieła: {{CentrujWzór|<math>{\Gamma^{\alpha}}_{00}={{1}\over{2}}\eta^{\alpha\beta}\left(h_{\beta 0,0}+h_{0\beta,0}-h_{00,\beta}\right)\;</MAtH>|7.27}} Zatem na podstawie równania na fale grawitacyjne przy obranym cechowaniu {{LinkWzór|7.17}} i {{LinkWzór|7.18}} oraz macierzy tensora amplitud {{LinkWzór|7.25}}, a także względem równania fali {{LinkWzór|7.2}}, przy obranym cechowaniu zachodziłoby {{LinkWzór|7.20}} oraz że te amplitudy nie mają wierszy oraz kolumn o numerze zerowym oraz jego elementy nie zależą od czasu, zatem elementy tensora Christoffela {{LinkWzór|7.27}} są wielkościami zerowymi, czyli znikają, zatem na podstawie {{LinkWzór|7.26}} cząstka spoczywająca współrzędnościowo pozostanie nadal cząstką spoczywającą, ponieważ cząstka która ma czteroprędkość a właściwie jej część przestrzenną, która równa jest nadal zero, dalej będzie miała ten sam czteroprędkość, którego zmiana jest równa zero wedle naszej metryki przy przyjętych cechowaniu. Zatem dochodzimy do wniosku, że fala grawitacyjna wcale nie wpływa na ruch punktowej masy wedle współrzędnych czteropołożenia położenia, ale to nic nie znaczy. Fala grawitacyjna może zmieniać odległość właściwą między dwoma punktami w sposób wedle {{LinkWzór|1.13|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>\Delta l=\int \left|ds^2\right|^{{{1}\over{2}}}=\int \left|g_{\alpha\beta}dx^{\alpha}dx^{\beta}\right|^{{{1}\over{2}}}=\int^{x_2}_{x_1}\left|g_{xx}\right|^{{{1}\over{2}}}dx=\int^{x_2}_{x_1} \left|\eta_{xx}+h_{xx}\right|^{{{1}\over{2}}}dx\simeq x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;</MATH>|7.28}} Również jak się przekonamy, że za pomocą zmiany długości właściwej &Delta;l można wykryć budując pewne układu fizyczne, mimo że fala grawitacyjna nie działa na punktowe masy. === Równanie dewiacji a odległość wektorowa pomiędzy obydwa spoczywającymi współrzędnościowo cząstkami === Równanie dewiacji z którego będziemy korzystać jest to {{LinkWzór|1.95|Nadmiarowe równania elementarne teorii grawitacji Einsteina z siłami niegrawitacyjnymi}}, i w nim zakładamy, że cząstka spoczywa współrzędnościowo, bo prędkości współrzędnościowe przestrzenne jako są równe zero, i będziemy badali odległość przestrzenną iksową odległości pomiędzy dwoma cząstkami, wtedy czterowektor prędkości i odległość początkowa pomiędzy dwoma cząstkami przestawiamy jako U{{Sup|&mu;}}=(1,0,0,0),&xi;{{Sup|&mu;}}=(0,&epsilon;,0,0). W takim wypadku równanie dewiacyjne możemy napisać poniżej wykorzystując przy tym twierdzenie {{LinkWzór|2.106|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}}: {{CentrujWzór|<MATH>{{d^2\xi^{\lambda}}\over{d\lambda^2}}={{1}\over{c^2}}{{d^2\xi^{\lambda}}\over{d t^2}}=\epsilon {R^{\alpha}}_{00x}=-\epsilon {R^{\alpha}}_{0x0}\;</MATH>|7.29}} Dla słabego pola grawitacyjnego mamy {{LinkWzór|5.1|Słabe_pola_grawitacyjne}}, wtedy czterowskaźnikowy tensor krzywizny R{{Sup|&alpha;}}{{Sub|0x0}} {{LinkWzór|2.101|Rachunek_tensorowy|Metody_matematyczne_fizyki|MMF}} możemy napisać z definicji tensora fali grawitacyjnego {{LinkWzór|7.2}} i definicji tensora amplitudy {{LinkWzór|7.25}}: {{CentrujWzór|<MATH> \begin{cases}{R^x}_{0x0}=R_{x0x0}=-{{1}\over{2}}h_{xx,0,0}\\ {R^y}_{0x0}=R_{y0x0}=-{{1}\over{2}}h_{xy,0,0}\\ {R^y}_{0y0}=R_{y0y0}=-{{1}\over{2}}h_{yy,0,0}=-{R^x}_{0x0} \end{cases}\;</MATH>|7.30}} Wszystkie pozostałe elementy tensora krzywizny inne niż policzone powyżej są równe zero, i ich nie podaliśmy, bo dowód zerowania się ich jest trywialny. Równania dewiacyjne w kierunku osi iksowej piszemy jako: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.30a}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^{y}={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.31}}}} Jeśli tensor &xi;{{Sup|&alpha;}} jest zdefiniowany w kierunku osi igrekowej, wtedy otrzymujemy dwa równania dewiacyjne: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^y={{1}\over{2}}{{\partial^2}\over{\partial t^2}}h_{yy}=-{{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xx}\;</MATH>|7.32}}|2={{CentrujWzór|<MATH>{{\partial^2}\over{\partial t^2}}\xi^x={{1}\over{2}}\epsilon{{\partial^2}\over{\partial t^2}}h_{xy}\;</MATH>|7.33}}}} === Ścisła fala grawitacyjna wynikająca z praw grawitacji Einsteina === Wszystkie fale grawitacyjne, których chcemy zaobserwować na Ziemi są to fale, które są opisywane przy pomocy teorii zlinearyzowanej, ale chcemy opisać fale grawitacyjne przy pomocy teorii dokładnej, czyli opisywanej przy pomocy dokładnego równania grawitacji Einsteina. Obierzmy teraz dwie zmienne nowe zdefiniowane przy pomocy zmiennych t i z, których definicje są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>u=ct-z\;</MATH>|7.34}}|2={{CentrujWzór|<MATH>v=ct+z\;</MATH>|7.35}}}} Mamy sobie zdefiniowany interwał czasoprzestrzenny w przestrzeni Minkowskiego {{LinkWzór|1.6|Wprowadzenie_do_ogólnej_teorii_względności}} i wykorzystując równania na zmienne u {{LinkWzór|7.34}} i {{LinkWzór|7.35}}, z których wyznaczmy wzory na zmienne "u" i "ct", co w ten sposób możemy napisać ten nasz interwał czasoprzestrzenny w tychże zmiennych: {{CentrujWzór|<MATH>ds^2={{1}\over{4}}d(u+v)^2-dx^2-dy^2-{{1}\over{4}}d(v-u)^2={{1}\over{4}}\left(du^2+dv^2+2dudv\right)-dx^2-dy^2-{{1}\over{4}}\left(du^2+dv^2-2dudv\right)=\;</MATH>{{Br}}<MATH>=dvdu-dx^2-dy^2\;</MATH>|7.36}} Zobaczymy, że fale grawitacyjne wpływają na odległości prostopadłe w stosunku do biegu fali grawitacyjnej przy jej opisie, która wynika z jej teorii dokładnej, czyli z równań grawitacji Einsteina. W tym celu napiszmy interwał czasoprzestrzenny, w których wprowadzimy funkcje f(u) i g(u), które są zależne od zmiennej "u": {{CentrujWzór|<MATH>ds^2=dudv-f^2(u)dx^2-g^2(u)dy^2\;</MATH>|7.37}} Napiszemy teraz wszystkie niezerowe elementy tensora Christoffela i niezerowe elementy tensory czterowskaźnikowego tensora krzywizny: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{\Gamma^x}_{xu}={{\dot{f}}\over{f}}\;</MATH>|7.38}}|2={{CentrujWzór|<MATH>{\Gamma^y}_{yu}={{\dot{g}}\over{g}}\;</MATH>|7.39}}|3={{CentrujWzór|<MATH>{\Gamma^v}_{xx}={{1}\over{2}}\dot{f}f\;</MATH>|7.40}}|4={{CentrujWzór|<MATH>{\Gamma^v}_{yy}={{1}\over{2}}\dot{g}g\;</MATH>|7.41}}}} {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{R^x}_{uxu}=-{{\ddot{f}}\over{f}}\;</MATH>|7.42}}|2={{CentrujWzór|<MATH>{R^y}_{uyu}=-{{\ddot{g}}\over{g}}\;</MATH>|7.43}}|3={{CentrujWzór|<MATH>R=R_{uu}=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.44}}}} Z powyższych wnioskach możemy napisać tensory Einsteina i dowiemy się, że tensor Einsteina G{{Sub|&mu;&nu;}} posiada również elementy niediagonalne oprócz jej elementów diagonalnych: {{CentrujWzór|<math> G_{uu}=R_{uu}-{{1}\over{2}}g_{uu}R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}-{{1}\over{2}}\cdot 0\cdot R=-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\;</MATH>|7.45}} {{CentrujWzór|<MATH>G_{uv}=R_{uv}=R_{vu}-{{1}\over{2}}g_{uv}R=-{{1}\over{2}}(-1)R=-{{1}\over{2}}{{1}\over{2}}\left(-{{\ddot{f}}\over{f}}-{{\ddot{g}}\over{g}}\right)={{1}\over{4}}\left({{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}\right)\;</math>|7.46}} Będziemy badać fale rozprzestrzeniające tam gdzie nie ma masy, wtedy z równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie_do_ogólnej_teorii_względności}}, gdy tensor napięć-energii jest równy zero, mamy: {{CentrujWzór|<MATH>{{\ddot{f}}\over{f}}+{{\ddot{g}}\over{g}}=0\;</MATH>|7.47}} Jako funkcję f(u) możemy przyjąć jako dowolną funkcję i rozwiązać równanie dla g(u). Możemy funkcję f(u) w taki sposób napisać jako funkcję opisującą pewnego rodzaju falę podobną do {{LinkWzór|7.2}} i zapytać siebie jaka jest funkcja przy tak postawionych warunkach, czyli g(u). Dla przypadku prawie liniowego funkcja f(u) jest bliska jedności: {{CentrujWzór|<MATH>f\simeq 1+\epsilon(u)\;</MATH>|7.48}} wtedy funkcja g(u) jest prawie liniowa i w zależności od funkcji prawie liniowej f(u) {{LinkWzór|7.46}} możemy napisać jej rozwiązanie: {{CentrujWzór|<MATH>g\simeq 1-\epsilon(u)\;</MATH>|7.49}} == Detekcja fal grawitacyjnych == {{Rysunek|Fale grawitacyjne.jpg|sjp|Detektor rezonansowy dla wykrycia fal grawitacyjnych.}} Załóżmy, że mamy układ o współczynnik tłumienia &nu; i sprężyny o stałej sprężystości k, który jest oscylatorem harmonicznym tłumionym. Dla pierwszej i drugiej kulki rozważanego układu, równanie ruchu ma się: {{CentrujWzór| <MATH>\begin{cases} mx_{1,0,0}=k(x_2-x_1-l_0)-\nu(x_1-x_2)_{,0}\\ mx_{2,0,0}=-k(x_2-x_1-l_0)-\nu(x_2-x_1)_{,0} \end{cases}\;\;</MATH>|7.50}} Możemy odejmować dwa równania {{LinkWzór|7.50}} od siebie w naszym układzie równań otrzymując wynikowe równanie, które należy rozwiązać: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(x_2-x_1-l_0)-2\nu(\dot{x_2}-\dot{x_1})\;\;</MATH>|7.51}} Wprowadźmy nowe oznaczenia (parametry), które wykorzystamy do równania różniczkowego {{LinkWzór|7.51}}, tzn. parametr &xi; (która jest zależna od położenia obu kulek i długości własnej użytej sprężynki), częstotliwości własnej układu &omega;{{Sub|0}} (zależna od stałej sprężystości sprężynki i masy tej sprężynki), a także od stałej &gamma; (która jest zależna od stałej tłumienia &gamma; i masy sprężynki), zatem te podstawienia: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\xi=x_2-x_1-l_0\;\;</MATH>|7.52}}|2={{CentrujWzór|<MATH>\omega_0^2={{2k}\over{m}}\;\;</MATH>|7.53}}|3={{CentrujWzór|<MATH>\gamma={{\nu}\over{m}}\;\;</MATH>|7.54}}}} Na podstawie oznaczeń &xi; {{LinkWzór|7.52}}, &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, wtedy równanie {{LinkWzór|7.51}} przechodzi przy tych nowych oznaczeniach w równoważną postać: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=0\;\;</MATH>|7.55}} W równaniach ruchu dla dwóch kulek {{LinkWzór|7.50}} zastosowaliśmy równania ruchu Newtona, bo mamy do czynienia z prędkościami bardzo małymi (o wiele mniejszymi od prędkości światła). Ponieważ mamy do czynienia z ogólną teorią względności, czyli mamy do czynienia z teorią grawitacją Einsteina, to powyższe wywody nie są w ogólności spełnione i chwilową długość sprężyny jest inna niż zakładana, bo sprężyna jest w układzie dwóch kulek, których fala grawitacyjna zakłóca prawdziwą długość sprężyny, długość sprężyny według rozważanej metryki jest inna niż metryce Minkowskiego (czasoprzestrzeń płaska), jeśli sprężyna jest położona wzdłuż osi iksowej w przestrzeni, ma długość na podstawie {{LinkWzór|7.28}} wyrażonej według: {{CentrujWzór|<MATH>l(t)=x_2-x_1-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.56}} Należy pamiętać, że długość l{{Sub|0}} jest bardzo mała w porównaniu z długością jakim światło może przebyć w ciągu jednej sekundy. Równania {{LinkWzór|7.50}} możemy zapisać w bardziej ogólny sposób uwzględniając jako sprężynę w ruchu, który ma w tej chwili długość l i zapisać je nie jako różnica położeń dwóch kul z dokładnością do znaku, ale jako różnica aktualnej długości kulki l i jej długości początkowej, bo tutaj nie mamy przestrzeni płaskiej tylko przestrzeń zakrzywioną i uwzględniając jakoby fala grawitacyjna nie oddziaływuje współrzędnościowo z punktowymi masami jako osobno, co tutaj jest ważne, ale kulki oddziałują ze sobą tylko za pomocą sprężynki przez promieniowanie grawitacyjne, które to kulki były początkowo w spoczynku przed dotarciem do nich tej rozważanej fali: {{CentrujWzór|<MATH>\begin{cases} mx_{1,0,0}=k(l-l_0)+\nu(l-l_0)_{,0}\\ mx_{2,0,0}=-k(l-l_0)-\nu(l-l_0)_{,0} \end{cases}\;</MaTh>|7.57}} Wprowadźmy nowe oznaczenia, która jest funkcją iksowych położeń kul, i poprawki do tensora metrycznego Minkowskiego i długości początkowej sprężyny nierozciągniętej i jest oznaczona ona przez tożsamość: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}(x_2-x_1)\;\;</MATH>|7.58}} Na podstawie powyższej tożsamości możemy napisać przekształcenia wyznaczając różnicę współrzędnych iksowych dwóch rozważanych kulek: {{CentrujWzór|<MATH>x_2-x_1\simeq\xi+l_0+{{1}\over{2}}h_{xx}l_0\;\;</MATH>|7.59}} Powyżej przyjęliśmy, że zmiana długości własnej sprężynki stojąca przy h{{Sub|xx}} dla słabego pola grawitacyjnego jest bardzo mała, zatem różnica położeń kulek jest w przybliżeniu równa długości sprężynki. Równość {{LinkWzór|7.50}} z poprawką na chwilową długość sprężyny, która jest nie równa różnicy współrzędnych iksowych kulek w zakrzywionej czasoprzestrzeni: {{CentrujWzór|<MATH>m(x_2-x_1)_{,0,0}=-2k(l-l_0)-2\nu(l-l_0)_{,0}\;\;</MATH>|7.60}} Wykorzystując oznaczenia na parametry &xi; {{LinkWzór|7.58}}, oraz na &omega;{{Sub|0}}{{Sup|2}} {{LinkWzór|7.53}} i &gamma; {{LinkWzór|7.54}}, to równanie różniczkowe {{LinkWzór|7.60}} zapisujemy poniżej, który również zawiera poprawkę do tensora metrycznego Minkowskiego dla tychże rozważanych kulek, a także zawiera zmianę długości sprężyny l-l{{Sub|0}} zapisanej według {{LinkWzór|7.59}}: {{CentrujWzór|<MATH>\xi_{,0,0}+\omega_0^2\xi+2\gamma\xi_{,0}=-{{1}\over{2}}h_{xx,0,0}l_0\;\;</MATH>|7.61}} Powyższe równanie jest równaniem oscylatora harmonicznego tłumionego z przyłożoną siłą, która zmienia się w sposób harmoniczny (w tym przypadku promieniowanie grawitacyjne, które działa na kule poprzez sprężynkę). Fala kulista w dużej odległości od źródła jest falą w przybliżeniu płaską, a zatem jeśli {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;\;</MATH>}} opisuje falę płaską wedle definicji tensora Einsteina {{LinkWzór|5.35|Słabe_pola_grawitacyjne}} dla tensora gęstości energii równej zero, wtedy równania grawitacji Einsteina opisują {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATh>}} wedle {{LinkWzór|7.2}}, jeśli częstotliwość tej fali jest jakaś tam, to częstotliwość fali {{Formuła|<MATH>h_{xx}\;</MATH>}}, wedle równości {{LinkWzór|5.20|Słabe_pola_grawitacyjne}} jest taka sama, zatem jeśli pierwsza zmienia się względem funkcji kosinus (dla {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}), to druga też, zatem niech będą funkcje {{Formuła|<math>h_{xx}\;</MaTH>}} i {{Formuła|<MATH>\xi\;</Math>}}, która zmieniają się względem czasu z częstotliwością &Omega;: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>h_{xx}=A\cos(\Omega t)\;\;</MATH>|7.62}}|2={{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\varphi)\;\;</MATH>|7.63}}}} Powyższe dwa równania są prawdziwe, bo można tak wybrać przesunięcie fazowe oraz &Omega;, by były spełnione równania ruchu dwóch kulek w polu grawitacyjnym, których drgania kulek maja się jak promieniowanie grawitacyjne. Podstawiamy za h{{Sub|xx}} równania fali grawitacyjnej {{LinkWzór|7.62}} i przemieszczenia harmonicznego kulek {{LinkWzór|7.63}}, którego zmianę powoduje fala grawitacyjna (promieniowanie grawitacyjne) o takiej samej częstotliwości co fala grawitacyjna, do równości {{LinkWzór|7.61}}, co w rezultacie ono przyjmuje postać: {{CentrujWzór|<MATH>-\Omega^2 R\cos(\Omega t+\varphi)+\omega_0^2 R\cos(\Omega t+\varphi)-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.64}} Co po krótkich przestawianiach wyrazów w tożsamości {{LinkWzór|7.64}}, czyli grupując wyrazy stojące przy funkcji sinus i kosinus: {{CentrujWzór|<MATH>\cos(\Omega t+\varphi)R\left[-\Omega^2+\omega_0^2\right]-2\gamma R\Omega\sin(\Omega t+\varphi)={{1}\over{2}}l_0 A\Omega^2 \cos(\Omega t)\;\;</MATH>|7.65}} Wykorzystując z własności kosinusów i sinusów sumy składników pod tymi funkcjami trygonometrycznymi możemy zapisać {{LinkWzór|7.65}} rozwijając w odjemnej naszej tożsamości funkcji kosinus i odjemniku funkcję sinus: {{CentrujWzór|<MATH>\left(\cos(\Omega t)\cos\varphi-\sin(\Omega t)\sin\varphi\right)R(\omega_0^2-\Omega^2)-2\gamma R\Omega\left(\cos(\Omega t)\sin\varphi+\sin(\Omega t)\cos\varphi\right)=\;</MATH>{{Br}} <MATH>={{1}\over{2}}l_0A\Omega^2\cos(\Omega t)\;</MATH>|7.66}} Grupujemy wyrazy z kosinusami i sinusami, których argumentem jest &Omega; t we wzorze {{LinkWzór|7.66}} i aby ona zachodziła dla dowolnych chwili czasu t, to nasze wspomniane równanie przechodzi w dwa równania równoważne pierwotnemu. {{ElastycznyWiersz|1={{CentrujWzór|<MaTH>(\omega_0^2-\Omega^2)R\cos\varphi-2\gamma R\Omega\sin\varphi={{1}\over{2}}l_0 A\Omega^2\;</MATH>|7.67}}|2={{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)R\sin\varphi-2\gamma R\Omega\cos\varphi=0\;</MATH>|7.68}}}} Z tożsamości uzyskanej w punkcie {{LinkWzór|7.68}} możemy wyznaczyć tanges przesunięcia fazowego kulek względem fali promieniowania grawitacyjnego, który jak udowodnimy zależy tylko od częstotliwości fali grawitacyjnej &Omega; i częstotliwości własnej detektora fali grawitacyjnej: {{CentrujWzór|<MATH>\operatorname{tg}(\varphi)={{2\gamma\Omega}\over{\Omega^2-\omega_0^2}}\;\;</MATH>|7.69}} Pomnóżmy równanie {{LinkWzór|7.67}} przez wyrażenie {{Formuła|<MATH>2\gamma\Omega\;\;</MATH>}}, czyli podwojony iloczyn stałej tłumienia &gamma; i częstotliwości drgań fali grawitacyjnej, wtedy dostajemy tożsamość: {{CentrujWzór|<MATH>(\omega_0-\Omega^2)2\gamma\Omega R\cos\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\;\;</MATH>|7.70}} a także wykorzystując również tożsamość {{LinkWzór|7.68}}, którą podstawiamy do tożsamości {{LinkWzór|7.70}}, wtedy oczywiście dostajemy wniosek: {{CentrujWzór|<MATH>-(\omega_0^2-\Omega^2)(\omega_0^2-\Omega^2)R\sin\varphi-4R\gamma^2\Omega^2\sin\varphi=l_0A\gamma\Omega^3\Rightarrow \left[(\omega_0^2-\Omega^2)^2+4\gamma^2\Omega^2\right]R\sin\varphi=-l_0A\gamma\Omega^3\;</MATH>|7.71}} Policzmy teraz czemu jest równa funkcja sin&phi; wyrażając kwadrat kotangensa względem kwadratu funkcji sinus &phi;, korzystając z definicji tangensa kąta, który jest ilorazem sinusa kąta &phi; przez jego kosinus tego samego kąta, i jeszcze korzystając z definicji jedynki trygonometrycznej, możemy napisać: {{CentrujWzór|<math>\operatorname{ctg}^2\varphi={{\cos^2\varphi}\over{\sin^2\varphi}}= {{1-\sin^2\varphi}\over{\sin^2\varphi}}=\sin^{-2}\varphi-1\Rightarrow \sin^{-2}\varphi=\operatorname{ctg}^{2}\varphi+1\Rightarrow \sin^2\varphi={{1}\over{\operatorname{ctg}^2\varphi+1}}\;</MATH>|7.72}} Ze wzoru na <MATH>\sin^2\varphi\;</MATH> w ostatnim rozważanym wyrażeniu {{LinkWzór|7.72}} przechodzimy do wzoru na funkcję trygonometryczną dla naszego zadania: {{CentrujWzór|<MATH>\sin^2\varphi={{1}\over{1+({{\Omega^2-\omega_0^2)}\over{2\gamma\Omega}})^2}}= {{1}\over{{{4\gamma^2\Omega^2+(\Omega^2-\omega_0^2)^2}\over{4\gamma^2\Omega^2}}}}= {{4\gamma^2\Omega^2}\over{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}\;</MAth>|7.73}} Równość {{LinkWzór|7.73}} możemy spierwiastkować obustronnie, tak by po lewej stronie wspomnianego równania otrzymać sam sinus kata &phi;, wtedy otrzymujemy wyrażenie: {{CentrujWzór|<MATH>\sin\varphi={{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.74}} Wyznaczony wzór na funkcję sin&phi; zapisanej i udowodnionej w punkcie {{LinkWzór|7.74}} podstawiamy do wzoru uzyskanego wcześniej w punkcie {{LinkWzór|7.71}}, wtedy można otrzymać tożsamość, którą poddamy dalszej obróbce: {{CentrujWzór|<MATH>\left[(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2\right]R{{2\gamma\Omega}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}=-l_0A\gamma\Omega^3\Rightarrow 2\gamma\Omega R\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}=-l_0A\gamma\Omega^3\;</MATH>|7.75}} Zatem amplituda drgań dla oscylatora harmonicznego tłumionego jest napisana wedle wzoru poniżej, która jest zależna od częstotliwości kołowej drgań fali grawitacyjnej &Omega;, częstotliwości własnej układu własnego &omega;{{Sub|0}} i współczynnika tłumienia &gamma;: {{CentrujWzór|<MATH>R=-{{{{1}\over{2}}l_0A\Omega^2}\over{\sqrt{(\Omega^2-\omega_0^2)^2+4\gamma^2\Omega^2}}}\;</MATH>|7.76}} Jest ona zależna od częstotliwości rezonansowej &omega;{{Sub|0}} i współczynnika pełniącego rolę współczynnika tłumienia &gamma;. Energia układu (oscylatora harmonicznego tłumionego) jest zdefiniowana jako energia kinetyczna obu kulek i energii potencjalnej sprężyny w polu grawitacyjnym, bo tutaj sprężynka znajduje się w polu promieniowania grawitacyjne oddziałujące ze sprężynką. {{CentrujWzór|<MATH>E={{1}\over{2}}m(x_{1,0})^2+{{1}\over{2}}m(x_{2,0})^2+{{1}\over{2}}k\xi^2\;</MATH>|7.77}} Jeśli dodamy do siebie dwa równania układu równań {{LinkWzór|7.57}} do siebie, wtedy otrzymamy równanie różniczkowe poniżej i założymy że nasz układ był w spoczynku, zanim dodarła do naszego badanego układu fala grawitacyjna, czyli przyjmujemy, że C=0, który jest warunkiem brzegowym: {{CentrujWzór|<MATH>(x_2+x_1)_{,0,0}=0\Rightarrow x_{2,0}+x_{1,0}=C\Rightarrow x_{2,0}=-x_{1,0}+C\;</MATH>|7.78}} Parametr {{LinkWzór|7.58}} można zapisać, jeśli przyjmiemy założenie, że mamy do czynienia z słabym polem grawitacyjnym w postaci fal grawitacyjnym, wtedy czwarty człon w nim możemy pominąć: {{CentrujWzór|<MATH>\xi=l-l_0=x_2-x_1-l_0-{{1}\over{2}}h_{xx}l_0\simeq \xi=x_2-x_1-l_0\Rightarrow \xi_{,0}\simeq x_{2,0}-x_{1,0}=2x_{2,0}</MATH>|7.79}} zatem wedle obliczeń {{LinkWzór|7.79}}, które dokonaliśmy w tymże punkcie i dla naszych warunków brzegowych możemy napisać tożsamość między prędkościami dwóch kulek. {{CentrujWzór|<MATH>x_{1,0}=-x_{2,0}=-{{1}\over{2}}\xi_{,0}\;</MATH>|7.80}} Energia układu {{LinkWzór|7.77}} po wykorzystaniu dwóch podstawień do którego będziemy wykorzystywali obliczenia {{LinkWzór|7.80}}, które wynika z punktu przestawionego wzorem {{LinkWzór|7.79}}, wtedy ową energię chwilową zapisujemy wedle schematu poniżej, która jest zależna od pochodnej zmiennej &xi; względem czasu i samego przesunięcia &xi;, którego to &xi; jest to przesunięcie od położenia równowagi obu rozważanych w tym zadaniu kulek układu fizycznego: {{CentrujWzór|<MATH>E={{1}\over{2}}m(-{{1}\over{2}}\xi_{,0})^2+{{1}\over{2}}m({{1}\over{2}}\xi_{,0})^2+ {{1}\over{2}}\omega_0^2({{1}\over{2}}\xi)^2\Rightarrow E={{1}\over{4}}m\left(\xi^2_{,0}+\omega_0^2\xi^2\right)\;</MATH>|7.81}} Wykorzystujemy definicję parametru &xi; napisanej w punkcie {{LinkWzór|7.63}}, które to podstawiamy do równości {{LinkWzór|7.81}} na energię układu, wtedy owe równanie ma wygląd: {{CentrujWzór|<MATH>E={{1}\over{4}}m\left(R^2\Omega^2\sin^2(\Omega t+\varphi)+\omega_0^2R^2\cos^2(\Omega t+\varphi)\right)\;</MATH>|7.82}} Wiemy jednak, że średnia wartość kwadratu kosinusa z definicji wartości średniej jest równa połowie jedynki względem czasu t, zatem co zapisujemy wzorem poniżej. Widzimy, że powyższa równość jest zależna od częstotliwości fali grawitacyjnej &Omega; i przesunięcia fazowego &phi;. {{CentrujWzór|<MATH>\langle \cos^2(\Omega t+\varphi)\rangle=\langle\sin^2(\Omega t+\varphi)\rangle={{1}\over{2}}\;</MATH>|7.83}} Średnia wartość energii oscylatora wedle wartości chwilowej {{LinkWzór|7.81}}, korzystając już z obliczonej wartości średniej kwadratu kosinusa, to średnią energię drgań układu dwóch kulek i sprężyny zapisujemy wedle: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8}}mR^2(\Omega^2+\omega_0^2)\;</MATH>|7.84}} Amplituda rezonansowa nazywamy takie R w tożsamości {{LinkWzór|7.76}}, dla które zachodzi, gdy &omega;{{Sub|0}}=&Omega;, wtedy dochodzimy do wniosku, że mamy amplitudę rezonansową drgań przy udziale fal grawitacyjnych: {{CentrujWzór|<MATH>R={{{{1}\over{2}}l_0\Omega^2 A}\over{\sqrt{4\Omega^2\gamma^2}}}= {{{{1}\over{2}}l_0\Omega^2 A}\over{2\Omega\gamma}}={{1}\over{4}}l_0 A{{\Omega}\over{\gamma}}\;</MATH>|7.85}} Energia rezonansowa średnia {{LinkWzór|7.84}} na podstawie amplitudy rezonansowej układu dwóch kulek połączonej sprężynką policzonej w punkcie {{LinkWzór|7.85}}, do której to podstawimy do wzoru na średnią energię: {{CentrujWzór|<MATH>\langle E\rangle={{1}\over{8\cdot 16}}ml_0^2A^2\left({{\Omega}\over{\gamma}}\right)^2 2\Omega^2= {{1}\over{8\cdot 8}}ml_0^2A^2\Omega^2\left({{\Omega}\over{\gamma}}\right)^2= {{1}\over{64}}ml_0^2\Omega^2A^2\left({{\Omega}\over{\gamma}}\right)^2 \;</MATH>|7.86}} Dobrocią oscylatora harmonicznego tłumionego nazywamy wielkość zdefiniowanej wedle sposobu poniżej, z której ją wyznaczymy dla częstotliwości rezonansowej, tzn. gdy <MATH>\Omega=\omega_0\;</Math> {{CentrujWzór|<MATH>Q={{\omega_0}\over{2\gamma}}\Rightarrow 2Q={{\Omega}\over{\gamma}}\;</MATH>|7.87}} Energia średnia rezonansowa {{LinkWzór|7.86}} w której podstawimy za stosunek {{Formuła|<MaTH>{{\Omega}\over{\gamma}}\;</MATH>}} podwojoną dobroć Q, czyli z korzystamy ze wzoru {{LinkWzór|7.87}}, zatem tą pierwszą wielkość fizyczną możemy napisać sposobem: {{CentrujWzór|<MATH>{\langle E\rangle}_{rezonas}={{1}\over{16}}ml_0\Omega^2A^2Q^2\;</MATH>|7.88}} I co kończy nasze rozważania na temat detekcji fal grawitacyjnych. == Tensorowe twierdzenie wirialne a lokalna zasada zachowania energii == Naszym wzorem, które zechcemy udowodnić jest twierdzenie łączący tensor gęstości energii o wskaźnikach zerowych górnych (lewa strona) po przez wyrażenie z tensorem gęstości energii o wskaźnikach górnych o wartościach przestrzennych: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV=2\int T^{lm}dV\;</MATH>|7.89|Obramuj}} Powyższy wzór jest wzorem, w której jest dokonane całkowanie po pewnej objętości, której ogranicza pewna powierzchnia zamknięta, na której powierzchni tensor gęstości energii jest równa zero, bo tak zamknięta powierzchnia jest poza obszarem, w której tensor gęstości energii jest różny od zera. Dowód powyższego lematu opiera się na zasadzie zachowawczości tensora napięć-energii dla słabego pola grawitacyjnego {{LinkWzór|1.49|Wprowadzenie do ogólnej teorii względności}}: {{CentrujWzór|<MATH>{T^{\mu\nu}}_{,\nu}=0\Rightarrow {T^{\mu 0}}_{,0}+{T^{\mu k}}_{,k}=0\Rightarrow {T^{\mu 0}}_{,0}=-{T^{\mu k}}_{,k}\;</MATH>}} Zatem przejdźmy do głównego nurtu dowodu wiedząc, że T{{Sup|&mu;&nu;}} jest równe zero na zewnątrz źródła i będziemy korzystać z symetryczności tensora gęstości energii. {{CentrujWzór|<mATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= {{1}\over{c}}{{d}\over{dt}}\int {T^{00}}_{,0}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int {T^{0k}}_{,k}x^lx^mdV \;</MATH>|7.90}} Rozwińmy tożsamość występująca we wzorze {{LinkWzór|7.90}}, zatem korzystając z twierdzenia o pochodnej iloczynu trzech składników można napisać tożsamość: {{CentrujWzór|<MaTH>(T^{0k}x^lx^m)_{,k}={T^{0k}}_{,k}x^lx^m+T^{0k} {x^l}_{,k}x^m+T^{0k}x^l{x^m}_{,k}= {T^{0k}}_{,k}x^lx^m+T^{0k}{\delta^l}_{k}x^m+T^{0k}x^l{\delta^m}_{k} ={T^{0k}}_{,k}x^lx^m+T^{0l}x^m+\;</MATH>{{Br}}<MATH>+T^{0m}x^l\Rightarrow {T^{0k}}_{,k}x^lx^m=(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\;</MaTH>|7.91}} Wyrażenie końcowe zapisane w rozważanej powyżej w punkcie {{LinkWzór|7.91}} możemy podstawić do tożsamości fizycznej {{LinkWzór|7.90}} wynikającej z zachowalności energii i pędu, wtedy dostajemy równanie: {{CentrujWzór|<MaTH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -{{1}\over{c}}{{d}\over{dt}}\int\left[(T^{0k}x^lx^m)_{,k}-T^{0l}x^m-T^{0m}x^l\right]dV=-{{1}\over{c}}{{d}\over{dt}}\int T^{0k}x^lx^mdS_k+\int {T^{0l}}_{,0}x^mdV+\;</MATH>{{Br}}<MATH>+\int {T^{0m}}_{,0}x^ldV=-\int {T^{kl}}_{,k}x^mdV-\int {T^{km}}_{,k}x^ldV \;</MATH>|7.92}} W powyższym rozpisaniu korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa zamiany całek objętościowych, w której jest całkowanej po ściśle określonej nam objętości, na całkę powierzchniową, w której jest całkowanie po powierzchni zamkniętej ograniczającą wcześniej wprowadzoną objętość. Następnym krokiem jest udowodnienie poniżej tożsamości korzystając z twierdzenia z pochodnej iloczynu znanej z analizy: {{CentrujWzór|<MATH>(T^{kl}x^m)_{,k}dV={T^{kl}}_{,k}x^m+T^{kl}{\delta^m}_{k}={T^{kl}}_{,k}x^m+T^{ml}\;</math>|7.93}} Możemy wykorzystać tożsamość {{LinkWzór|7.93}} do dalszej części dowodu {{LinkWzór|7.92}}, wiedząc jednocześnie że pierwsza i trzecia ciałka jest równa zero przy wykorzystaniu twierdzenia Ostrogradzkiego-Gauusa, która jest całką po powierzchni zamkniętej, którego to T{{Sub|&alpha;&beta;}} jest równa zero na tej powierzchni, wtedy dochodzimy do wniosku: {{CentrujWzór|<MATH>{{1}\over{c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV= -\int (T^{kl}x^m)_{,k}dV+\int T^{ml}dV-\int (T^{km}x^l)_{,k}dV+\int T^{lm}dV=\int T^{ml}dV+T^{lm}dV=2\int T^{ml}dV\;</MaTH>|7.94}} W powyższym dowodzie znów korzystaliśmy z twierdzenia Ostrogradskiego-Gaussa, w której na jej powierzchni całkowanej panuje zerowa wartość tensora gęstości energii. Co kończy dowód twierdzenia {{LinkWzór|7.89}}. == Wytwarzanie fal grawitacyjnych == Fala grawitacyjna rozchodząca się od niezerowego źródła, w której gęstość materii poza źródłem jest równa zero, a także ciśnienie jest zaniedbywalnie małe, zatem tensor gęstości energii dla punktu poza źródłem zapisujemy wedle: {{CentrujWzór|<MATH>T^{\alpha\beta}=0\;</Math>|7.95}} Zatem biorąc to do równania grawitacji Einsteina {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}} i z przybliżeniem słabości pola grawitacyjnego tensor Einsteina wedle końcowego przedstawienia {{LinkWzór|5.17|Słabe_pola_grawitacyjne}}, jeśli będziemy wykorzystywać {{LinkWzór|7.95}}, zapisujemy wtedy go łącząc to z prawem grawitacji Einsteina: {{CentrujWzór|<MATH>G^{\alpha\beta}=\kappa T^{\alpha\beta}\Rightarrow G^{\alpha\beta}=0\Rightarrow {{1}\over{2}}\square\overline{h}_{\alpha\beta}=0\;</MATH>|7.96}} Rozwiązaniem równań grawitacji Einsteina dla słabego pola grawitacji {{LinkWzór|7.96}} jest wyrażenie {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, która jest zależna od stałej częstotliwości kołowej &Omega; i czasu t: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=B_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.97}} Aby sprawdzić jakie B{{Sub|&alpha;&beta;}} spełnia równanie {{LinkWzór|7.96}} dla odpowiedzi {{LinkWzór|7.97}}, to po podstawieniu naszego rozwiązania do rozważanego równania różniczkowego, mamy: {{CentrujWzór|<MATH>\square B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}e^{-i\Omega t}=0\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=0\;</MATH>|7.98}} Można udowodnić, że rozwiązanie w {{Formuła|<MATH>B_{\alpha\beta}\;</MATH>}} równania różniczkowego {{LinkWzór|7.98}} jest rozwiązanie w postaciach zależnych od dwóch niezależnych stałych występujące w dwóch składnikach osobno: {{CentrujWzór|<MaTH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\;</MATH>|7.99}} Sprawdźmy czy {{LinkWzór|7.99}} jest rzeczywiście jest rozwiązaniem równania {{LinkWzór|7.98}}, zatem jeśli obierzemy definicję kwadratu &Delta;=&nabla;{{Sup|2}} we współrzędnych kulistych, zatem operator &Delta; zapisujemy w postaci: {{CentrujWzór|<MATH>\Delta=\nabla^2={{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda</MATH>}} to policzmy, czy rozwiązanie {{LinkWzór|7.99}} jest poprawnym rozwiązaniem dla równania różniczkowego {{LinkWzór|7.98}} dla promienia od źródła, który się znajduje dla r=0, wtedy przejdźmy do właściwej idei dowodu: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)+{{1}\over{r^2}}\Lambda\right) \left({{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}\right)=\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+\;</MATH>{{Br}}<MATH>+\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}(r)\right){{Z_{\alpha\beta}}\over{r}}e^{-i{{\Omega}\over{c}}r}</MATH>|7.100}} Wyznaczmy pierwszy składnik w {{LinkWzór|7.100}}, czyli ile jest on równy: {{CentrujWzór|<MATH>\left({{\Omega^2}\over{c^2}}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}(r)}\right){{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}={{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}+{{1}\over{r}}{{\partial^2}\over{\partial r^2}}\left(r{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\right)= {{\Omega^2}\over{c^2}}{{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}-{{\Omega^2}\over{c^2}}{{1}\over{r}}A_{\alpha\beta}e^{i{{\Omega}\over{c}}r}=0</MATH>|7.101}} zatem ten nasz pierwszy składnik w {{LinkWzór|7.100}} wedle {{LinkWzór|7.101}} jest równy zero, dla drugiego wyrazu mamy podobnie, a dowód przebiega analogicznie jak dla {{LinkWzór|7.101}}, zatem dochodzimy do wniosku, że rozwiązanie {{LinkWzór|7.99}} jest rozwiązaniem {{LinkWzór|7.98}} poprawnym. W rozwiązaniu w {{LinkWzór|7.99}} wybierzmy tylko pierwszy wyraz, a w przypadku drugiego wyrazu stałą w nim występującą wyzerujmy, bo to równanie ma dwie niezależne stałe w dwóch niezależnych składnikach, bo tak robimy, że interesuje nasz rozwiązania rozchodzące się od źródła: {{CentrujWzór|<MATH>B_{\alpha\beta}={{A_{\alpha\beta}}\over{r}}e^{i{{\Omega}\over{c}}r}\;</MATH>|7.102}} Wyznaczmy wyrażenia pomocnicze, które będą w przyszłości nam potrzebne. Obierzmy kulę, która ma promień &epsilon;, którego promień jest zaniedbywalnie mały. Zakładamy, że źródło jest niezerowe tylko wewnątrz sfery o promieniu podanym wyżej, zatem przejdźmy do dzieła. {{CentrujWzór|<MATH>\lim_{\epsilon\rightarrow 0}\oint {{\Omega^2}\over{c^2}}B_{\alpha\beta}d^3x\leq{{\Omega^2}\over{c^2}}(B_{\mu\nu})_{max}d^3x=\lim_{\epsilon\rightarrow 0}{{\Omega^2}\over{c^2}}(B_{\alpha\beta})_{max}{{4}\over{3}}\pi\epsilon^3=0</MATH>|7.103}} Pozostało nam jeszcze do obliczenia całkę z działania operatora &nabla; względem infinitezymalnej objętości, którego to B{{Sub|&alpha;&beta;}} jest zależna od trzech współrzędnych i czasu w kartezjańskim układzie współrzędnych, która jest przestrzenią zanurzoną w czasoprzestrzeni czterowymniarowej: {{CentrujWzór|<MATH>\int \nabla^2B_{\alpha\beta}d^3x=\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}\oint\nabla B_{\alpha\beta} d\vec{S}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}B_{\alpha\beta}=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2{{d}\over{dr}}{{1}\over{r}}A_{\alpha\beta}e^{-i{{\Omega}\over{c}}r}=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}4\pi\epsilon^2A_{\alpha\beta}\left[ |-{{1}\over{r^2}}e^{-i{{\Omega}\over{c}}r}-{{1}\over{r}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c}}r}|_{r=\epsilon} \right]= \lim_{\epsilon\rightarrow 0}\left[\left(-4\pi\epsilon^2A_{\alpha\beta}\right){{1}\over{\epsilon^2}} e^{-i{{\Omega}\over{c}}\epsilon}-4\pi\epsilon^2{{1}\over{\epsilon}}i{{\Omega}\over{c}}e^{-i{{\Omega}\over{c }}\epsilon}\right]=\;</MATH>{{Br}}<MATH>=\lim_{\epsilon\rightarrow 0}\left(-4\pi-4\pi\epsilon i {{\Omega}\over{c}}\right)A_{\alpha\beta}e^{-i{{\Omega}\over{c}}\epsilon}=-4\pi A_{\alpha\beta}</MATH>|7.104}} Następnym wyrażeniem pomocniczym, która korzysta z udowodnionych tożsamości, którego to pierwsza jest równa zero, a druga jest równa stałej tożsamości, czyli za pomocą tożsamości {{LinkWzór|7.103}} i {{LinkWzór|7.104}} możemy wyznaczyć wyrażenie: {{CentrujWzór|<MATH>\int\left({{\Omega^2}\over{c^2}}+\nabla^2\right)B_{\alpha\beta}dV=-4\pi A_{\alpha\beta}\;</MATH>|7.105}} Równaniem grawitacji, którego to równanie jest zapisywane w punkcie {{LinkWzór|1.51|Wprowadzenie do ogólnej teorii względności}}, wewnątrz źródła jest opisane wedle wzoru ze stałą {{Formuła|<MATH>\kappa\;</MATH>}}, która jest równa {{LinkWzór|5.46|Słabe_pola_grawitacyjne}}, którego to zapis jest za pomocą tensora napięć-energii i tensora {{Formuła|<MATH>\overline{h}_{\alpha\beta}\;</MATH>}}, dla słabego pola grawitacyjnego jest wyrażona: {{CentrujWzór|<MATH>{{1}\over{2}}\square\overline{h}_{\alpha\beta}={{8\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{1}\over{c^2}}{{\partial^2}\over{\partial t^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\Rightarrow \left({{\Omega^2}\over{c^2}}+\nabla^2\right)\overline{h}_{\alpha\beta}={{16\pi G}\over{c^4}}T_{\alpha\beta}\;</MATH>|7.106}} Przecałkujmy wyrażenie {{LinkWzór|7.106}} obustronnie i wiedząc, że mamy definicję rozwiązania {{LinkWzór|7.97}} i w nim stałej {{LinkWzór|7.102}} dla rozmiarów kuli dążącej do prawie do zera, bo nasze źródło jest prawie punktowe: {{CentrujWzór|<MATH>(-4\pi A_{\alpha\beta})e^{-i\Omega t}={{16\pi G}\over{c^4}}\int T_{\alpha\beta}dV\;</MaTH>|7.107}} zatem możemy powiedzieć, że tensor A{{Sub|&alpha;&beta;}} jest zapisany jako całka z iloczynu tensora energii i napięć przez funkcję eksponencjalną , którego argumentem jest funkcja zależna od częstotliwości fali grawitacyjnej, a przed tą naszą rozważaną całką występują stałe mówiące o stałej grawitacji i prędkości światła c: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}\int T_{\alpha\beta}e^{i\Omega t}dV\;</MATH>|7.108}} Jeśli oznaczymy definicję gęstości tensora energii poprzez amplitudę drgań tensora gęstości energii i częstotliwość kołowa tych drgań i całkę występującą po prawej stronie {{LinkWzór|7.108}} poprzez definicję {{LinkWzór|7.109}}, to możemy zdefiniować wyrażenie na J{{Sub|&alpha;&beta;}} jako całkę po pewnej objętości zamkniętej po amplitudzie drgać omawianego tensora gęstości energii: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>T_{\alpha\beta}=S_{\alpha\beta}e^{-i\Omega t}\;</MATH>|7.109}}|2={{CentrujWzór|<MATH>J_{\alpha\beta}=\int T_{\alpha\beta}e^{i\Omega t}\Rightarrow J_{\alpha\beta}=\int S_{\alpha\beta}dV\;</maTH>|7.110}}}} Wtedy stałą A{{Sub|&alpha;&beta;}} (po lewej stronie w {{LinkWzór|7.108}}) i wedle definicji tensora gęstości energii poprzez stałą amplitudy {{LinkWzór|7.109}} i wykorzystując przy tym fakt, że w definicji tensora J{{Sub|&alpha;&beta;}} zapisanej w punkcie {{LinkWzór|7.110}}, zatem tensor A{{Sub|&alpha;&beta;}} jest zapisany na podstawie tychże danych w zależności od tensora J{{Sub|&alpha;&beta;}} w postaci: {{CentrujWzór|<MATH>A_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}\;</MATH>|7.111}} Jest to amplituda fal grawitacyjnych występująca we wyrażeniu {{LinkWzór|7.102}} i wyrażona jest przez całkę z amplitudy drgań tensora gęstości energii. Rozwiązanie dla słabych pól grawitacyjnych wykorzystując wzór {{LinkWzór|7.111}}, przyjmuje postać: {{CentrujWzór|<MATH>\overline{h}_{\alpha\beta}=-{{4G}\over{c^4}}J_{\alpha\beta}{{e^{i({{\Omega}\over{c}}r-\Omega t)}}\over{r}}\;</MATH>|7.112}} Jest to rozwiązanie dla fal grawitacyjnych wytwarzanych przez źródła prawie punktowe i nierelatywistyczne, które wytwarzają te właśnie fale zwane promieniowaniem grawitacyjnym. === Właściwości fali grawitacyjnej dla jednego wskaźnika zerowego górnego === Jeśli wykorzystamy równanie {{LinkWzór|7.110}}, którego wielkość jest całką amplitudy po infinitezymalnej objętości tensora gęstości energii oraz korzystając z definicji tensora gęstości energii dla źródła fal grawitacyjnych {{LinkWzór|7.109}}, co można wykorzystać mnożąc {{LinkWzór|7.110}} przez niezerowe wyrażenie {{Formuła|<MATH>e^{-i\Omega t}\;</MATH>}}: {{CentrujWzór|<MATH>J_{\mu\nu}e^{-i\Omega t}=\int T_{\alpha\beta}dV\;</MATH>|7.113}} I jeśli zróżniczkujemy obie strony wyrażenia {{LinkWzór|7.113}} względem czasu w sekundach, ale przedtem podnosząc wszystkie wskaźniki do góry i biorąc jednocześnie drugi wskaźnik jako zerowy, wtedy mamy: {{CentrujWzór|<MaTH>-i\Omega J^{\mu 0}e^{-i\Omega t}=\int {T^{\mu 0}}_{,0}dV=\int {T^{\mu k}}_{,k}dV=\oint T^{\mu k}n_kdS=0\;</MaTH>|7.114}} Powyższe równanie zachodzi, bo tensor gęstości energii po za źródłem fal grawitacyjnych jest równy zero, a my całkujemy po powierzchni, która otacza nasze źródło naszego promieniowania. W powyższych obliczeniach przyjęliśmy, że tensor gęstości energii na zewnątrz źródła jest równy zero na zewnątrz badanego źródła, bo wytwarzać fal grawitacyjnych jest bardzo mały, otrzymujemy: {{CentrujWzór|<maTH>J^{\mu 0}=0\Rightarrow \overline{h}^{\mu 0}=0\;</MATH>|7.115}} Dalsze zerowania się tensora metrycznego {{Formuła|<MATH>\overline{h}^{\mu \nu}\;</MATH>}} wynika stąd, gdy skorzystamy z symetryczności tensora {{LinkWzór|7.94}}, a także wynikającego z symetryczności tensora J{{Sup|&mu;&nu;}} {{LinkWzór|7.110}}, wynika poprzez to {{LinkWzór|7.112}} symetryczność tensora {{Formuła|<MATH>\overline{h}^{\mu\nu}\;</MATH>}}. === Tensor momentu kwadrupolowego rozkładu masy === Tensor momentu kwadrupolowego rozkładu masy definiujemy poprzez tensor gęstości energii o wskaźnikach dwóch górnych i zerowych i wyrazimy ją poprzez funkcję fali o częstotliwości kołowej &Omega; (eksponens z argumentu i&Omega;t) i przez tensor D{{Sup|lm}}: {{CentrujWzór|<MATH>I^{lm}=\int T^{00}x^lx^mdV=D^{lm}e^{-i\Omega t}\;</MATH>|7.116}} Jeśli zachodzi tożsamość {{LinkWzór|7.113}}, to na podstawie tożsamości zdefiniowanej w {{LinkWzór|7.89}}, możemy napisać, dokonując pewnych przekształceń i wykorzystania wzoru {{LinkWzór|7.116}} dla wskażników l,m=1,2,3 w sposób: {{CentrujWzór|<MATH>J^{lm}e^{-i\Omega t}=\int T^{lm}dV\Rightarrow J^{lm}e^{-i\Omega t}={{1}\over{2c^2}}{{d^2}\over{dt^2}}\int T^{00}x^lx^mdV\Rightarrow J^{lm}e^{-i\Omega t}=-{{\Omega^2}\over{2c^2}}D^{lm}e^{-i\Omega t}\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow J^{lm}=-{{\Omega^2}\over{2c^2}}D^{lm}\Rightarrow J_{lm}=-{{\Omega^2}\over{2c^2}}D_{lm}\;</MATH>|7.117}} Rozwiązanie {{LinkWzór|7.112}} na podstawie obliczeń {{LinkWzór|7.116}}, wykorzystując fakt {{LinkWzór|7.115}}, który mówi, że jedynymi elementami tensora poprawki do tensora metrycznego Minkowskiego w postaci fal grawitacyjnych {{Formuła|<MaTh>\overline{h}_{\alpha\beta}\;</MaTh>}} są równe zero, gdy zachodzi dla &alpha;=0 lub &beta;=0. Zatem wskaźniki przy naszym tensorze są równe 1,2,3, zatem dochodzimy wtedy do wniosku, że zachodzi ogólne rozwiązanie dla fal grawitacyjnych wytwarzane przez źródła prawie punktowe o niezerowych elementach: {{CentrujWzór|<MATH>\overline{h}_{lm}={{2G\Omega^2}\over{c^6}}D_{lm}{{e^{i\left({{\Omega}\over{c}}r-\Omega t\right)}}\over{r}}\;</MaTH>|7.118}} Tensory poprawki do tensora metrycznego Minkowskiego możemy obliczyć ze wzoru {{LinkWzór|5.21|Słabe_pola_grawitacyjne}}, gdy mamy już policzone {{LinkWzór|7.118}}. === Układ dwóch kulek jako układ prostego oscylatora === Widzimy, że na podstawie wzorów {{LinkWzór|7.116}}, że gdy I{{Sup|lm}}(t), to dla t=0 ono jest równe D{{Sup|lm}}, to wtedy mając cechowanie, w której dwuwskaźnikowe tensory krzywizny fali grawitacyjnej {{LinkWzór|7.2}}, w której w pewnym cechowaniu tensor amplitudy jest równy {{LinkWzór|7.25}}, wtedy tensory {{LinkWzór|7.118}} w tym cechowaniu możemy przepisać: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}^{TT}_{zi}=0\;</MATH>|7.119}}|2={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{G\Omega^2}\over{c^6}}\left(\not{I}_{xx}-\not{I}_{yy}\right){{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.120}}|3={{CentrujWzór|<MATH>\overline{I}_{xy}^{TT}=2{{G\Omega^2}\over{c^6}}\not{I}_{xy}{{e^{\Omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.121}}}} Przy powyższych uwagach wprowadziliśmy tensor bezśladowy z definiowany w oparciu o tensor I{{Sup|lm}} {{LinkWzór|7.116}}: {{CentrujWzór|<MATH>\not{I}_{lm}=I_{lm}-{{1}\over{3}}\delta_{lm}{I^l}_l\;</MATH>|7.122}} Rozważmy teraz falę emitowaną przez prosty oscylator fal grawitacyjnych, których wykrywamy, za pomocą detektora pokazywanego w punkcie [[#Detekcja fal grawitacyjnych|Detekcja fal grawitacyjnych]]. Ten detektor też wytwarza fale grawitacyjne, w których obie masy drgają z częstotliwością &omega; i z amplitudą A wokół średniego położenia równowagi. W tym przykładzie detektora fal mamy tylko składową I{{Sub|xx}} nierównej zero, tą składową możemy policzyć mając na uwadze harmoniczne drgania: {{CentrujWzór|<MATH>I_{xx}=mc^2\left[(x_1)^2+(x_2)^2\right]=mc^2\left[\left(-{{1}\over{2}}l_0-A\cos\omega t\right)^2+\left({{1}\over{2}}l_0+A\cos\omega t\right)^2\right]=\;</MATH>{{Br}}<MATH> =mc^2{{1}\over{4}}l_0^2+A^2m\cos^2\omega t+l_0mc^2Acos\omega t+{{1}\over{4}}ml_0^2+A^2mc^2\cos^2\omega t+l_0Amc^2\cos\omega t=\;</math>{{Br}}<math>={{1}\over{2}}mc^2l_0^2+2mA^2\cos^2\omega t+2l_0Amc^2\cos\omega t={{1}\over{2}}mc^2l_0^2+2mA^2+mc^2A^2\cos 2\omega t+2l_0Amc^2\cos\omega t</MATH>|7.123}} Zdefiniujmy teraz elementy tensora {{LinkWzór|7.122}} mając na uwadze element tensora I{{Sub|xx}} {{LinkWzór|7.123}} przy częstotliwości kołowej &omega;, czyli wykorzystując czwarty wyraz powyższych końcowych obliczeń możemy zdefiniować elementy tensora {{LinkWzór|7.122}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=I_{xx}-{{1}\over{3}}{I^l}_{l}={{2}\over{3}}I_{xx}={{4}\over{3}}c^2ml_0Ae^{-i\omega t}\\ \not{i}_{yy}={I}_{zz}-{{1}\over{3}}I_{xx}={{1}\over{3}}I_{xx}=-{{2}\over{3}}ml_0c^2Ae^{-i\omega t} \end{cases}\;</MATH>|7.124}} Zdefiniujmy teraz tensory {{LinkWzór|7.119}}, {{LinkWzór|7.120}} i {{LinkWzór|7.121}} w oparciu o tensor {{LinkWzór|7.124}}: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}=-\overline{h}_{yy}={{2mG\omega^2l_0A}\over{c^4}}{{e^{i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.125}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}=0\;</MATH>|7.126}}}} Jeśli uwzględnimy człon trzeci w końcowych obliczeniach {{LinkWzór|7.123}}, wtedy wzór na tensor {{Formuła|<MATH>\overline{I}_{xx}\;</MATH>}} i {{Formuła|<MATH>\overline{I}_{yy}\;</MATH>}}, który powstaje z {{LinkWzór|7.120}} po zastąpieniu &Omega; przez 2&omega;, wtedy otrzymujemy: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-\overline{h}_{yy}^{TT}={{4mG\omega^2A^2}\over{c^4}}{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\;</MATH>|7.127}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=0\;</MATH>|7.128}}}} Całkowite promieniowanie wytwarzane przez prosty oscylator jest częścią rzeczywistą sumy składników, tzn. {{LinkWzór|7.125}} i {{LinkWzór|7.127}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}={{2mG\omega^2l_0}\over{c^4}}{{\cos\omega\left({{r}\over{c}}-t\right)}\over{r}}+{{4mG\omega^2A^2}\over{c^4}}{{\cos 2\omega\left({{r}\over{c}}-t\right)}\over{r}}\;</MATH>|7.129}} === Układ podwójny gwiazd o jednakowych masach === Wygodniejszym przykładem jest podwójmy układ gwiezdny dwóch jednakowych gwiazd, które krążą po orbicie o promieniu {{Formuła|<MATH>{{1}\over{2}}l_0\;</MATH>}}, czyli wokół wspólnego środka masy, wtedy równanie ruchu z drugiej zasady dynamiki dynamiki Newtona jest: {{CentrujWzór|<MATH>G{{m^2}\over{l_0^2}}=m\omega^2\left({{l_0}\over{2}}\right)\Rightarrow\omega=\left({{2Gm}\over{l_0^3}}\right)^{{{1}\over{2}}}\;</MATH>|7.130}} Położenia układu dwóch gwiazd opiszemy przy odpowiednich wyborze współrzędnych, przy czym oznaczamy przez jedynkę pierwszą gwiazdę, a przez dwójkę drugą gwiazdę: {{CentrujWzór|<MATH>\begin{cases} x_1(t)={{1}\over{2}}l_0\cos\omega t&y_1(t)={{1}\over{2}}l_0\sin\omega t\\ x_2(t)=-x_1(t)&y_2(t)=-y_1(t) \end{cases}\;</MATH>|7.131}} Wiedząc, ze tensor kwadrupolowy definiujemy sposobem I{{Sub|ik}}=mc{{Sup|2}}x_ix_k według {{LinkWzór|7.116}}, wtedy te elementy tego tensora możemy napisać dla podwójnego układu gwiazd, których ich współrzedne zdefiniowane są sposobem {{LinkWzór|7.131}}: {{CentrujWzór|<MATH>\begin{cases} I_{xx}=m c^2(x^2_1(t)+x^2_2(t))={{1}\over{2}}mc^2l_0^2\cos^2\omega t={{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{yy}=mc^2(y^2_1(t)+y^2_2(t))={{1}\over{2}}mc^2l_0^2\sin^2\omega t=-{{1}\over{4}}mc^2l_0^2\cos2\omega t+\operatorname{const}\\ I_{xy}=mc^2x_1(t)y_1(y)={{1}\over{8}}c^2ml_0^2\sin2\omega t\\ \end{cases}\;</MATH>|7.132}} Napiszmy teraz czemu są równe tensory {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} dla naszego badanego układu wykorzystując jego definicję {{LinkWzór|7.22}}, do którego wykorzystamy już policzone elementy tensora I{{Sub|lm}}, czyli I{{Sub|xx}}, I{{Sub|yy}} i I{{Sub|xy}}, wiedząc, że I{{Sup|l}}{{Sub|l}}=0 na podstawie definicji elementów I{{Sub|lm}} {{LinkWzór|7.132}}: {{CentrujWzór|<MATH>\begin{cases} \not{I}_{xx}=-\not{I}_{yy}={{1}\over{4}}mc^2l_0^2e^{-2i\omega t}\\ \not{I}_{xy}={{1}\over{4}}imc^2l_0^2e^{-2i\omega t}\\ \end{cases}\;</MATH>|7.133}} Patrząc na wzory {{LinkWzór|7.120}} i {{LinkWzór|7.121}} dla &Omega;=2&omega; i na elementy tensora {{Formuła|<MATH>\not{I}_{lm}\;</MATH>}} {{LinkWzór|7.133}}, wtedy można zapisać wzory na promieniowanie rozchodzące się wzdłuż kierunku zetowego: {{CentrujWzór|<MATH>\begin{cases} \overline{h}_{xx}^{TT}=-\overline{h}_{yy}={{2mGl_0^2}\over{c^4}}\omega^2{{e^{2i\omega\left({{r}\over{c}}-t\right)}}\over{r}}\\ \overline{h}_{xy}^{TT}={{2imGl_0^2\omega^2}\over{c^4}}{{e^{2i\omega({{r}\over{c}}-t)}}\over{r}}\end{cases}\;</MATH>|7.134}} === Równanie falowe i jego ścisłe rozwiązanie === Ścisłe rozwiązanie falowe dla fali grawitacyjnej dla źródła punktowego jest {{LinkWzór|7.112}}, weźmy sobie pewne źródło składające się ze źródeł punktowych, i w ten sposób fala grawitacyjna dociera pokolei do kolejnych punktów tego ośrodka w czasie t'=t-R/c, wtedy mamy wzór na elementy tensora {{Formuła|<MATH>\overline{h}_{\mu\nu}\;,</MATH>}} dla tego niepunktowego źródła: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}=-{{4G}\over{c^4}}\int J_{\mu\nu}(\vec{r},t^'){{e^{i\Omega\left({{R}\over{c}}-t\right)}}\over{R}}dV=-{{4G}\over{c^4}}\int {{T_{\mu\nu}(t^',x^i)}\over{R}}e^{i\Omega t^'}e^{i\Omega\left({{R}\over{c}}-t\right)}dV=-{{4G}\over{c^4}}\int{{T_{\mu\nu}\left(t-{{R}\over{c}},x^i\right)}\over{R}}d^3x\;</MATH>|7.135}} Weźmy sobie punkt w którym będziemy obserwować falę grawitacyjną, który jest bardzo daleko od źródła fali grawitacyjnej, wtedy powiemy: {{CentrujWzór|<MATH>\left[\sum_i(y^i)^2\right]^{{{1}\over{2}}}\equiv r>>\left[\sum_i(x^i)^2\right]^{{{1}\over{2}}}\;</MATH>|7.136}} Przy tak zachodzącym warunku {{LinkWzór|7.136}} możemy napisać, pod którą pod całką występuje tensor napięć energii a przed całką jest odwrotność promienia r, która wyszła z całki, która była pod postacią R, bo dla małego źródła r i R praktycznie się nie różnią: {{CentrujWzór|<MATH>\overline{h}_{\mu\nu}\simeq-{{4G}\over{c^4r}}\int T_{\mu\nu}d^3x\;</MATH>|7.137}} Do wzoru {{LinkWzór|7.137}} możemy wykorzystać {{LinkWzór|7.89}} i definicję tensora kwadrupolowego {{LinkWzór|7.116}}, wtedy tensor fali grawitacyjnej przyjmuje wtedy kształt: {{CentrujWzór|<MATH>\overline{h}_{lm}=-{{2G}\over{c^4r}}I_{lm,0,0}\left(t-{{r}\over{c}}\right)\;</MATH>|7.138}} Jeśli w prowadzimy cechowanie TT, to wtedy wzór na elementy tensora fali grawitacyjnej są: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=-{{G}\over{c^4r}}\left[\not{I}_{xx,00}\left(t-{{r}\over{c}}\right)-\not{I}_{yy,00}\left(t-{{r}\over{c}}\right)\right]\;</MATH>|7.139}}|2={{CentrujWzór|<MATH>\overline{h}_{xy}^{TT}=-{{2G}\over{c^4r}}\not{I}_{xy,00}\left(t-{{r}\over{c}}\right)\;</MATH>|7.140}}}} == Energia przenoszona przez fale grawitacyjne wytwarzane przez układ oscylatorów grawitacyjnych == Przy pomocy wcześniejszych rozważań zorientowaliśmy się, że fale grawitacyjne przenoszą energię. Fale grawitacyjne unoszą energię od swych źródeł zabierając im energię. Rozważmy teraz ciało próbne, który nie wpływa na pole fali grawitacyjnej, czyli jego wpływ jest zaniedbywalny, wtedy takie podejście jest niekonsystentne, zatem jeśli przez ciało przechodzi fala grawitacyjna, to po przejściu jego przez układ mas, to fala grawitacyjna powinna być słabsza, tzn. układ ciał przez które przechodzi się fala grawitacyjna, sama staje się jego źródłem. Rozważmy teraz falę padającą o częstotliwości kołowej &omega;, to fala wyemitowana przez ciało jest emitowana z tą samą częstotliwością, więc fale przechodząca przez układ mas jest zatem sumą dwóch fal, tzn. fali padającej i fali wyemitowanej. Zobaczymy, że te dwie fale interferują one ze sobą dekonstruktywnie, obniżając wypadkową fali w tym kierunku. W innych kierunkach nie ma interferencji, i fale przechodzą jedno koło drugiej. === Fala grawitacyjna i jego strumień energii === Załóżmy, że mamy falę grawitacyjną wytwarzaną przez układ oscylatorów, który jest układem mas znajdujących się w pewnej płaszczyźnie, wtedy bardzo wygodnie jest rozważanie nie jako oscylatora harmonicznego wytwarzającego fale grawitacyjne, ale układ oscylatorów znajdujących się w płaszczyźnie dla z=0. Oscylatory w rozważanej płaszczyźnie są bardzo blisko siebie, więc je możemy uważać jako układ ciągły oscylatorów, i wprowadźmy przez &sigma; jako liczbę oscylatorów przez jednostkę powierzchni. Fala padająca na układ oscylatorów znajdujących się na płaszczyźnie przy cechowaniu {{LinkWzór|7.25}} określamy przez wzory: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\overline{h}_{xx}^{TT}=A\cos\Omega\left({{z}\over{c}}-t\right)\;</MATH>|7.141}}|2={{CentrujWzór|<MATH>\overline{h}_{yy}^{TT}=-\overline{h}_{xx}^{TT}\;</MATH>|7.142}}}} Przy przejściu fali grawitacyjnej przez naszą rozważaną płaszczyznę układu oscylatorów, wtedy ten układ odpowie stabilną oscylacją: {{CentrujWzór|<MATH>\xi=R\cos(\Omega t+\phi)\;</MATH>|7.143}} Wielkości R i &phi; są to wielkości opisane poprzez wzory na &phi; {{LinkWzór|7.69}} i na R {{LinkWzór|7.76}}. Nasz rozważany ruch jest stabilny ponieważ energia dostarczana przez przechodzącą falę grawitacyjną poprzez sprężynkę jest rozpraszana w wyniku tarcia w oscylatorach w których energia jest kompensowana przez pracę wykonywaną na sprężynkach przez pływowe siły fali grawitacyjnej. Fala grawitacyjna dostarcza energii każdemu oscylatorowi równą: {{CentrujWzór|<MATH>{{dE}\over{dt}}=\nu\left({{\partial\xi}\over{\partial t}}\right)^2=m\gamma \left({{\partial\xi}\over{\partial t}}\right)^2\;</MATH>|7.144}} Uśrednienie energii dostarczanej przez falę w ciągu jednego okresu równej T=2&pi;/&Omega; dla wyrażenia {{LinkWzór|7.138}}, w wyniku tego mamy uśrednioną energię z definicji wartości średniej: {{CentrujWzór|<MATH>\left\langle{{dE}\over{dt}}\right\rangle= {{1}\over{{{2\pi}\over{\Omega}}}}\int_0^{{{2\pi}\over{\Omega}}}m\gamma\Omega^2R^2\sin^2(\Omega t+\phi)dt= {{m\gamma\Omega^3R^2}\over{2\pi}}\int_0^{{{2\pi}\over{\Omega}}}{{1}\over{2}}(1-\cos\left(2\Omega t+2\phi)\right)={{m\gamma\Omega^3R^2}\over{2\pi}}{{1}\over{2}}{{2\pi}\over{\Omega}}={{1}\over{2}}m\gamma\Omega^2R^2\;</MATH>|7.145}} Wzór {{LinkWzór|7.145}} przestawia energię dostarczaną do układu oscylatorów przez falę grawitacyjną, przy &sigma; oscylatorach energia fali zmniejsza się przy przejściu przez płaszczyznę o wartość: {{CentrujWzór|<MATH>\delta F=-{{1}\over{2}}\sigma m\gamma\Omega^2R^2\;</MATH>|7.146}} Każdy oscylator ma tensor kwadrupolowy zapisanej przez wzór {{LinkWzór|7.123}}, w której zastąpimy &omega; t przez &Omega;t+&phi;, a A przez R/2. Ponieważ w naszym przypadku R jest niewielkie, to człon jego trzeci możemy pominąć, i w ten sposób otrzymujemy tensor kwadrupolowy: {{CentrujWzór|<MATH>I_{xx}=mc^2l_0R\cos(\Omega t+\phi)\;</MATH>|7.147}} Według wzoru {{LinkWzór|7.118}} każdy oscylator wytwarza falę grawitacyjną: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}={{2G\Omega^2ml_0R}\over{c^4}}{{\cos\left[\Omega({{r}\over{c}}-t)-\phi\right]}\over{r}}\;</MATH>|7.148}} {{Rysunek|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego.png|bg1|Geometria płaszczyzny potrzebna do obliczenia poprawki dla fali grawitacyjnego|rozmiar=150px}} Ilość oscylatorów na powierzchni {{Formuła|<MATH>\pi\tilde{\omega}^2\;</MATH>}} jest {{Formuła|<MATH>\pi\tilde{\omega}^2\sigma\;</MATH>}}, a ilość oscylatorów znajdujących się na powierzchni pomiędzy {{Formuła|<MATH>\tilde{\omega}\;</MATH>}}, a {{Formuła|<math>\tilde{\omega}+d\tilde{\omega}\;</MATH>}} jest wyrażona przez {{Formuła|<MATH>2\pi\sigma\tilde{\omega}d\tilde{\omega}\;</MATH>}}, wtedy całkowity tensor {{Formuła|<math>\overline{h}_{xx}\;\;</math>}} możemy wyrazić przez: {{CentrujWzór|<math>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_0^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]{{\overline{\omega}d\overline{\omega}}\over{r}}\;</MATH>|7.149}} Z rysunku obok należy zauważyć, że {{Formuła|<math>r^2=z^2+\tilde{\omega}^2\Rightarrow rdr=\tilde{\omega}d\tilde{\omega}\;</MATH>}}, i w ten sposób wykorzystując to do wzoru {{LinkWzór|7.149}}: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{2G\Omega^2ml_0R}\over{c^4}}2\pi\int_z^{\infty}\sigma\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</math>|7.150}} Całka {{LinkWzór|7.150}} jest całką rozbieżną, gdy przyjmować będziemy &sigma; jako stałą, więc &sigma; możemy uczynić jako funkcję &sigma;(z)e{{Sup|&epsilon; r}} i pozwoleniu by przy scałkowaniu dla &epsilon; dążyło do zera, i w ten sposób mamy całkę do policzenia: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}={{4\pi G\Omega^2ml_0R}\over{c^4}}\lim_{\epsilon\rightarrow 0}\int_z^{\infty}\sigma(z)e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\;</MATH>|7.151}} Wyznaczmy teraz dokładną całkę występującą we wzorze {{LinkWzór|7.151}} po prawej jego stronie: {{CentrujWzór|<MATH>\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr= -{{1}\over{\epsilon}}e^{-\epsilon r}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Bigg|_{z}^{\infty}-{{\Omega}\over{c\epsilon}}\int_z^{\infty}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr=\;</MATH>{{Br}}<MATH>={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon r}\sin\left[\Omega\left({{r}\over{c}}-t\right)-\psi\right]-{{\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow {{c^2\epsilon^2+\Omega^2}\over{c^2\epsilon^2}}\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{1}\over{\epsilon}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{\Omega}\over{c\epsilon^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\Rightarrow\;</MATH>{{Br}}<MATH>\Rightarrow\int_z^{\infty}e^{-\epsilon r}\cos\left[\Omega\left({{r}\over{c}}-t\right)-\phi\right]dr={{c^2\epsilon}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\cos\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]-{{c\Omega}\over{c^2\epsilon^2+\Omega^2}}e^{-\epsilon z}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]</MATH>|7.152}} Całkę policzoną w punkcie {{LinkWzór|7.152}} podstawiamy do wzoru {{LinkWzór|7.151}}, i w ostatecznych rozrachunkach dostajemy: {{CentrujWzór|<MATH>\delta \overline{h}_{xx}^{all}=-{{4\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.153}} Aby porównać pole {{LinkWzór|7.153}} z falą padającą {{LinkWzór|7.135}} należy to przedostatnie napisać w cechowaniu TT, bo ono pierwotnie nie było w tym cechowaniu, otrzymujemy: {{CentrujWzór|<MATH>\delta\overline{h}_{xx}^{TT}=-\delta\overline{h}_{yy}^{TT}=-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]\;</MATH>|7.154}} Wypdadkowa fala grawitacyjna piszemy jako sumę fali grawitacyjnej padającej {{LinkWzór|7.135}} na układ oscylatorów fali grawitacyjnej wytwarzanej przez układ oscylatorów w płaszczyźnie {{LinkWzór|7.154}} i w rezultacie otrzymujemy: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}=\overline{h}_{xx}^{TT}+\delta \overline{h}^{TT}_{xx}=A\cos \left[\Omega\left({{z}\over{c}}-t\right)\right]-{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi\right]-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi+\psi-\phi\right]=\;</MATH>{{Br}}<MATH>= A\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\cos\psi-A\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\sin\psi-\;</MATH>{{Br}}<MATH>-{{2\pi G\Omega\sigma m l_0 R}\over{c^3}}\Bigg\{\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\cos(\psi-\phi)}_{\cos\psi\cos \phi+\sin\psi\sin\phi}+\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\underbrace{\sin(\psi-\phi)}_{\sin\psi\cos\phi-\cos\psi\sin\phi}\Bigg\}\;</MATH>|7.155}} Powyższe obliczenia będziemy przeprowadzali dla małych wielkości R, czyli z dokładnością wyrazów pierwszego rzędu względem R, wtedy według powyższych obliczeń przeprowadzonych w punkcie {{LinkWzór|7.155}} możemy napisać : {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\cos\psi\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right]-\psi\right)+\;</MATH>{{Br}}<MATH>+\sin\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\left(A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi\right) </MATH>|7.156}} W powyższych obliczeniach należy przyjąć zachodzący warunek na kąt &psi;: {{CentrujWzór|<MATH>A\sin\psi-{{2\pi G\Omega\sigma l_0R }\over{c^3}}\cos\psi\cos\phi=0\Rightarrow\operatorname{tg}\psi={{2\pi G\Omega \sigma l_0R}\over{Ac^3}}\cos\phi\;</MATH>|7.157}} W ten sposób otrzymujemy zależność na tensor {{Formuła|<MATH>\overline{h}_{xx}^{wypadkowe}\;</MATH>}}, który przepisujemy z {{LinkWzór|7.156}} przy zachodzącej tożsamości {{LinkWzór|7.157}}: {{CentrujWzór|<MATH>\overline{h}_{xx}^{wypadkowe}\simeq A\left(1+{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\right)\cos\left[\Omega\left({{z}\over{c}}-t\right)-\psi\right]\;</MATH>|7.158}} Wypadkowym efektem przy przejściu fali grawitacyjnej jest zmniejszenie jego amplitudy patrząc na {{LinkWzór|7.158}} o wartość (R ujemne według {{LinkWzór|7.76}}): {{CentrujWzór|<MATH>\delta A={{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi\;</MATH>|7.159}} Zmniejszenie amplitudy o wartość {{LinkWzór|7.159}} towarzyszy temu zmiana strumienia energii opisanej przez {{LinkWzór|7.140}}, po skorzystaniu wzorów {{LinkWzór|7.76}} i z {{LinkWzór|7.74}}, co w rezultacie daje mam zastanawiający wynik: {{CentrujWzór|<MATH>{{\delta F}\over{\delta A}}={{-{{1}\over{2}}\sigma m\gamma\Omega^2R^2}\over{{{2\pi G\Omega \sigma ml_0R}\over{c^3}}\sin\phi}}=-{{\gamma\Omega Rc^3}\over{4\pi Gl_0\sin\phi}}=-{{\gamma\Omega c^3}\over{4\pi Gl_0}}{{R}\over{\sin\phi}}={{\gamma\Omega c^3}\over{4\pi Gl_0}}{{l_0A\Omega^2}\over{4\gamma\Omega}}={{c^3}\over{16\pi G}}\Omega^2A\;</MATH>|7.160}} Wzór {{LinkWzór|7.160}} możemy przecałkować względem argumentu A, i w ten sposób otrzymujemy całkowity strumień energii F w zależności od amplitudy fali A i częstości &Omega;: {{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2A^2\;</MATH>|7.161}} Średnią po kwadracie dla amplitudy A możemy napisać wzorem poniżej, a także po podstawieniu tego do {{LinkWzór|7.161}} mając na myśli tylko dwie niezależne składowe rozważanego tensora: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>\langle{\overline{h}_{xx}^{TT}}^2\rangle={{1}\over{2}}A^2\;</MATH>|7.162}}|2={{CentrujWzór|<MATH>F={{c^3}\over{32\pi G}}\Omega^2\langle\overline{h}_{\mu\nu}^{TT}{\overline{h}^{\mu\nu}}^{TT}\rangle\;</MATH>|7.163}}}} <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> d163pkafizyynoskrcvxctmom1nhjom Książka kucharska/Szaszłyki z indyka i kukurydzy 0 18080 546576 507115 2026-06-12T21:55:19Z Igor123121 34732 drobne techniczne 546576 wikitext text/x-wiki == Składniki == * ''20 dag filetów z indyka'' * ''12 pieczarek'' * ''4 czerwone cebulki'' * ''10 dag boczku'' * ''12 małych kolb kukurydzy'' * ''papryka czerwona'' * ''6 łyżek oleju'' * ''2 łyżki octu winnego'' * ''łyżka tymianku'' * ''sól'' * ''pieprz'' == Przygotowanie == Indyka pokroić w kostkę. Przygotować marynatę: ocet wymieszać z solą, pieprzem, olejem i tymiankiem i zalać mięso. Pieczarki oczyścić, cebulki obrać i pokroić wzdłuż. Kolby kukurydzy przekroić na pół, boczek i paprykę pokroić na kawałki. Na szpadki nabijać na przemian mięso, paprykę, boczek, cebulę, pieczarki i kukurydzę. Oprószyć solą i pieprzem i piec około 20 minut, od czasu do czasu obracając. {{SORTUJ:Szaszłyki z indyka i kukurydzy}} [[Kategoria:Drób]] [[Kategoria:Książka kucharska/Spis alfabetyczny/S]] [[Kategoria:Książka kucharska/Wszystkie przepisy]] nt7mtq3co7lr2odzdvtqgx1tedomq4u Aptosid - czyli Debian sid krok po kroku dla każdego/Programy użytkowe/Tworzenie albumów fotograficznych 0 19907 546579 176667 2026-06-12T21:55:55Z Igor123121 34732 drobne techniczne 546579 wikitext text/x-wiki : Zastosowanie programu, który chcę tu opisać nie pasuje ani do przeglądarek ani też do<br /> : edytorów grafiki, chociaż posiada podstawowe funkcje edycji. : Jego głównym zadaniem jest tworzenie albumów zdjęciowych - w tym pokazu slajdów.<br /> : Tym programem jest Jalbum. == Instalacja == : 1. Program pobieramy ze strony producenta w formie paczki "deb": http://jalbum.net/software/download/current :: a. Do uruchomienia programu wymagana jest Wirtualna Maszyna Java w wersji minimum 1.5.<br /> :: b. Możesz również zainstalować Jalbum pobierając paczkę "bin".<br /> : 2. Instalacja standardowa (w katalogu /usr/share/jalbum): dpkg -i jalbum_wersja_all.deb == Instalacja skórek == : Można rozszerzyć bazę skórek pobierając je ze strony: http://jalbum.net/skins : Skórki nie można zainstalować bezpośrednio ze strony producenta tak jak w systemie Windows.<br /> : 1. Po kliknięciu na ikonę "Install skin" trzeba ją pobrać na dysk i rozpakować za pomocą archiwizatora.<br /> : 2. Następnie nowo utworzony katalog ze skórką przenosimy za pomocą, np. "mc" jako root do katalogu<br /> : programu Jalbum ze skórkami, tj.: /usr/share/jalbum/skins/ == Tworzenie albumu == : Uruchomienie programu: Menu-> Grafika-> Jalbum.<br /> [[Plik:Jalbum1.png|center|600px]] : 1. Dodajemy folder ze zdjęciami do projektu:<br /> [[Plik:Jalbum2.png|center|600px]] :: a. Przeciągamy folder i upuszczamy w oknie programu.<br /> :: b. Lub klikając "Dodaj obrazy"<br /> : 2. W opcji "Szablon i wygląd" wybieramy rodzaj szablonu i jego wersję.<br /> : 3. Następnie wchodzimy w Konfigurację albumu klikając, np. na ikonę kół zębatych.<br /> :: a. W pierwszej zakładce "Album" wskazujemy (można utworzyć nowy) folder do zapisu albumu.<br /> [[Plik:Jalbum3.png|center|600px]] :: b. W zakładce "Strony" można zmienić ilość kolumn i wierszy miniatur albumu oraz ich kolejność.<br /> [[Plik:Jalbum4.png|center|600px]] :: c. W zakładce "Obrazy" ustalamy jakość obrazów (im wyższa tym album będzie objętościowo większy)<br /> :: oraz wielkość miniatur i obrazów.<br /> [[Plik:Jalbum5.png|center|600px]] :: d. Zakładka "Zaawansowane"-> Nazwy można nadać stronie głównej albumu swoją nazwę.<br /> [[Plik:Jalbum6.png|center|600px]] :: e. Zakładka "Chameleon" - tu można, np. podać link zwrotny na inną stronę, zmienić ustawienia<br /> :: pokazu slajdów lub dodać znak wodny, itp.<br /> [[Plik:Jalbum7.png|center|600px]] :: f. Jeśli wszystkie ustawienia są właściwe zamykamy okno klawiszem OK.<br /> : 4. Wciskamy "Utwórz album" aby album został wygenerowany.<br /> [[Plik:Jalbum8.png|center|600px]] : 5. Aby zapisać projekt w celu późniejszej edycji wybieramy: Plik-> Zapisz projekt albumu.<br /> [[Plik:Jalbum9.png|center|600px]] == Publikowanie == : Kolejnym krokiem może być wysłanie gotowego albumu na serwer hostingowy.<br /> : 1. Po zakończeniu tworzenia albumu klikamy na: Publikowanie.<br /> [[Plik:Jalbum10.png|center|600px]] : 2. Można użyć konta na serwerze Jalbum lub każdego innego podając adres serwera ftp, <br /> :: nazwę użytkownika i hasło, następnie: Połącz.<br /> [[Plik:Jalbum11.png|center|600px]] : 3. Innym sposobem na wysłanie albumu na serwer jest skorzystanie z alternatywnego klienta ftp.<br /> :: Opis kilku z nich znajduje się w rozdziale: [http://pl.wikibooks.org/wiki/Sidux_-_czyli_Debian_sid_krok_po_kroku_dla_ka%C5%BCdego/Programy_u%C5%BCytkowe/Klienty_ftp Sidux/Programy użytkowe/Klienty ftp] == Edycja == : Dodając kolejne zdjęcia do tego samego projektu (folderu ze zdjęciami źródłowymi albumu)<br /> : nie musimy tworzyć albumu od początku. : Wystarczy wybrać "Utwórz zmienione" aby program dopisał nowe zdjęcia do istniejącego już albumu. : Oczywiście zmieniony album trzeba także nadpisać na serwerze hostingowym. : Strona projektu: http://jalbum.net/ : Jalbum na Wikipedia-en: http://en.wikipedia.org/wiki/Jalbum [[en:Sidux/Useable applications/Photos album maker]] o4yyvrpcwvick5k1k7mfz3xvus440tc Kangur - międzynarodowy test z matematyki/Kangur2008Jzad25rozw1 0 23332 546574 155402 2026-06-12T21:55:09Z Igor123121 34732 drobne techniczne 546574 wikitext text/x-wiki {| border="1" |- | bgcolor="chartreuse" | <br /> <br /> [[Plik:2008zad25rozwrys1.jpeg|200.px]] <br /> |} <br /> {| border="1" |- | bgcolor="yellow" |[[Kangur - międzynarodowy test z matematyki/Kangur2008Jzad25tresc|'''Już wiem. Wracaj do zadania.''']] | bgcolor="deepskyblue" |[[Kangur - międzynarodowy test z matematyki|'''Wracaj do spisu treści.''']] | bgcolor="gold" |[[Kangur - międzynarodowy test z matematyki/Kangur2008Jzad25rozw1|'''Poprzednia strona...''']] | bgcolor="pink" |[[Kangur - międzynarodowy test z matematyki/Kangur2008Jzad25rozw2|'''Podpowiadaj dalej … ''']] |} iw8fbbstfsy1gfsso74sy9nvv93sys3 Kangur - międzynarodowy test z matematyki/Kangur2007Jzad9rozw4 0 23883 546578 157908 2026-06-12T21:55:29Z Igor123121 34732 drobne techniczne 546578 wikitext text/x-wiki {| border="1" |- | bgcolor="chartreuse" | <br /> [[Plik:2007zad9rozwrys2.jpg|200.px]] <br /> |} <br /> {| border="1" |- | bgcolor="yellow" |[[Kangur - międzynarodowy test z matematyki/Kangur2007Jzad9tresc|'''Wracaj do zadania.''']] | bgcolor="deepskyblue" |[[Kangur - międzynarodowy test z matematyki|'''Wracaj do spisu treści.''']] | bgcolor="gold" |[[Kangur - międzynarodowy test z matematyki/Kangur2007Jzad9rozw3|'''Poprzednia strona...''']] | bgcolor="pink" |[[Kangur - międzynarodowy test z matematyki/Kangur2007zad9rozw3|'''Podpowiadaj dalej … ''']] |} kl69mc5uqzimmv66od9upwxyuceb62n Geografia dla gimnazjum/Polska w Europie 0 27059 546575 300913 2026-06-12T21:55:17Z Igor123121 34732 drobne techniczne 546575 wikitext text/x-wiki == Polska w Europie == <noinclude>---- <center>'''[[Geografia dla gimnazjum|Powrót do spisu treści]]'''</center></noinclude> 04yx7ivnvdvz5pkcis7zccolpu1i7uu Wikipedysta:Senvido 2 27383 546570 470133 2026-06-12T19:54:13Z Malarz pl 9827 Malarz pl przeniósł stronę [[Wikipedysta:AllDragonsAreDead]] do [[Wikipedysta:Senvido]]: Automatycznie przeniesiono stronę podczas zmiany nazwy użytkownika z "[[Special:CentralAuth/AllDragonsAreDead|AllDragonsAreDead]]" na "[[Special:CentralAuth/Senvido|Senvido]]" 204605 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 Szablon:LinkObiekt 10 44981 546523 475616 2026-06-12T12:12:57Z Persino 2851 546523 wikitext text/x-wiki <includeonly><!-- -->{{#if:{{#invoke:StronicowyParser|formatowanie}}|<!-- --><templatestyles src="Szablon:StronaStart/styles.css" /><!-- -->}}<!-- --><templatestyles src="Szablon:Link_wewnętrzny/styles.css" /><!-- -->{{#invoke:StronicowyParser|Numer{{LinkObiekt/typ|cecha=funkcja|typ={{{typ|obiekt}}}}} | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | id = {{LinkObiekt/typ|cecha=id|typ={{{typ|obiekt}}}}} | przedrostek = {{LinkObiekt/typ|cecha=skrót|typ={{{typ|obiekt}}}}}{{#switch:{{{typ|obiekt}}}|wzór=|#default=&nbsp;}}{{#if:{{{skrót|{{{4|}}}}}}|{{{skrót|{{{4}}}}}}{{{łącznik|{{{5|-}}}}}}}} | obiekt = link | bez automatu = {{{bez automatu|}}} | klasa = {{#if:{{#invoke:StronicowyParser|formatowanie}}|fonty_rodzina_sans fonty_link{{LinkObiekt/typ|cecha=id|typ={{{typ|obiekt}}}}}}} | styl = {{Jeśli niepuste|{{{czcionka|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozmiar czcionki|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wysokość linii czcionki|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rodzina czcionki|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wariant czcionki|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{waga czcionki|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{styl czcionki|}}}|przed lewy=font-style:|po lewy=;}}}} }}{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|Link{{LinkObiekt/typ|cecha=nazwa|typ={{{typ|obiekt}}}}}}}}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | typ = txt | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | 4 = ;skrót | skrót = ;4 | 5 = łącznik | łącznik = ;5 | czcionka = | rozmiar czcionki = | wysokość linii czcionki = | rodzina czcionki = | wariant czcionki = | rozciągnięcie czcionki = | waga czcionki = | styl czcionki = | bez automatu = | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> r56ird4twedrrcq4iz9rm7xfmi5c13l 546535 546523 2026-06-12T14:51:17Z Persino 2851 546535 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:StronicowyParser|formatowanie}}|<templatestyles src="Szablon:StronaStart/styles.css" />}}{{#invoke:StronicowyParser|Numer{{LinkObiekt/typ|cecha=funkcja|typ={{{typ|obiekt}}}}} | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | id = {{LinkObiekt/typ|cecha=id|typ={{{typ|obiekt}}}}} | przedrostek = {{LinkObiekt/typ|cecha=skrót|typ={{{typ|obiekt}}}}}{{#switch:{{{typ|obiekt}}}|wzór=|#default=&nbsp;}}{{#if:{{{skrót|{{{4|}}}}}}|{{{skrót|{{{4}}}}}}{{{łącznik|{{{5|-}}}}}}}} | obiekt = link | bez automatu = {{{bez automatu|}}} | klasa = {{#if:{{#invoke:StronicowyParser|formatowanie}}|fonty_rodzina_sans fonty_link{{LinkObiekt/typ|cecha=id|typ={{{typ|obiekt}}}}}}} | styl = {{Jeśli niepuste|{{{czcionka|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozmiar czcionki|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wysokość linii czcionki|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rodzina czcionki|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wariant czcionki|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{waga czcionki|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{styl czcionki|}}}|przed lewy=font-style:|po lewy=;}}}} }}{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|Link{{LinkObiekt/typ|cecha=nazwa|typ={{{typ|obiekt}}}}}}}}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | typ = txt | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | 4 = ;skrót | skrót = ;4 | 5 = łącznik | łącznik = ;5 | czcionka = | rozmiar czcionki = | wysokość linii czcionki = | rodzina czcionki = | wariant czcionki = | rozciągnięcie czcionki = | waga czcionki = | styl czcionki = | bez automatu = | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> a0sykd5z6w9jxbi3zejwupx0dajexj7 546536 546535 2026-06-12T15:31:33Z Persino 2851 546536 wikitext text/x-wiki <includeonly>{{#invoke:StronicowyParser|Numer{{LinkObiekt/typ|cecha=funkcja|typ={{{typ|obiekt}}}}} | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | id = {{LinkObiekt/typ|cecha=id|typ={{{typ|obiekt}}}}} | przedrostek = {{LinkObiekt/typ|cecha=skrót|typ={{{typ|obiekt}}}}}{{#switch:{{{typ|obiekt}}}|wzór=|#default=&nbsp;}}{{#if:{{{skrót|{{{4|}}}}}}|{{{skrót|{{{4}}}}}}{{{łącznik|{{{5|-}}}}}}}} | obiekt = link | bez automatu = {{{bez automatu|}}} | klasa = {{#if:{{#invoke:StronicowyParser|formatowanie}}|fonty_rodzina_sans fonty_link{{LinkObiekt/typ|cecha=id|typ={{{typ|obiekt}}}}}}} | styl = {{Jeśli niepuste|{{{czcionka|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozmiar czcionki|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wysokość linii czcionki|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rodzina czcionki|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wariant czcionki|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{waga czcionki|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{styl czcionki|}}}|przed lewy=font-style:|po lewy=;}}}} }}{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|Link{{LinkObiekt/typ|cecha=nazwa|typ={{{typ|obiekt}}}}}}}}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | typ = txt | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | 4 = ;skrót | skrót = ;4 | 5 = łącznik | łącznik = ;5 | czcionka = | rozmiar czcionki = | wysokość linii czcionki = | rodzina czcionki = | wariant czcionki = | rozciągnięcie czcionki = | waga czcionki = | styl czcionki = | bez automatu = | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> d6y2kmlcmh2yb3dufb1aojhkfmb5f8x Moduł:StronicowyParser/ZbieranieDanychStron 828 55009 546524 546521 2026-06-12T12:25:09Z Persino 2851 546524 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); kod_uchwytu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(kod_uchwytu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(kod_uchwytu,true); if(kod_uchwytu~="")then KtorySzablonMaZwracacKategorie(kod_uchwytu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; if(tab_numer)then tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1; local numer=tab_numer[nazwa_obiektu]; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa); else table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local kod_uchwytu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(kod_uchwytu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tab_numer,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,((not czy_inna_wartosc_tekst)and true or false)); --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_aktualna,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_aktualna,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); end; end; function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz); else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA)then __FUNKCJA(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); else stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych2={}; tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2); if(tabela_listy_danych_analizy_ksiazki0)then if((not czy_inna)or(not tablica_zmiennych2))then return;end; local JuzPoliczone=function() if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end; local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; if(not tab_nazwa_obiektu)then tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={}; tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; end; local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu]; if(tab_uchwyt)then return true; end; tab_nazwa_obiektu[uchwyt_obiektu]=true; return false; end; if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then local czy_policzone=JuzPoliczone(); if(czy_policzone)then return; end; else JuzPoliczone(); end; if(czy_pobierz)then stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false); end; if(tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; for _,pozycja in ipairs(tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych)do table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,pozycja); end; end; p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local function __FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local dane_zebrane_ze_stron=tabela_artykul.dane_zebrane_ze_stron; return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,czy_inna=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; end; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==4))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==2)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==3)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nil); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if(tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==4))then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku==1)then nazwa_artykulu=artykul; local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); elseif(kod_wyniku==2)then local nazwa_artykulu=artykul; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if((not kod_wyniku_przekierowan)or(kod_wyniku_bazowy==4))then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tabela_elementow_strony_kodow={}; -- for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,true); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local tekst=tabela_parametrow_szablonu["tekst"] or tabela_parametrow_szablonu["treść"] or tabela_parametrow_szablonu[1]; local bez_preprocess=parametry_modul.CzyTak(tabela_parametrow_szablonu["bez preprocess"]); if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(bez_preprocess)then return nil;end; if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if((czy_szablon_wszystko)and(not bez_preprocess))then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; --local __metatabelka=getmetatable(tabela_parametrow_szablonu); --if(__metatabelka)then setmetatable(tabela_parametrow_szablonu,nil);end; if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa[1],}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa[1],}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; ---- local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego); end; local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer); end; end; IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu); ---- local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; ---- local wiki_modul=require("Module:Wiki"); tablica_danych_nazwy_artykulu.link_wikidane={wiki_modul.KodyKlasStronyNaDanejWiki{["strona"]=nazwa_modulu_aktualna_czy_biezaca,["nagłówek"]=true,["aktywny"]=true,},}; ---- if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; ---- if(czy_artykul_korzystany)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); stronicowyparser_szablonytekstu_modul.UstawPobierzKorzystanie(tablica_zmiennych); tekst_rozwiniety_calego_artykulu=stronicowyparser_szablonytekstu_modul.AktualizowanieSzablonowychTekstowychKompletowaniaTOC(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu) or tekst_rozwiniety_calego_artykulu; end; ---- local toc; if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicy() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicy},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.link_wikidane=tablica_danych_nazwy_artykulu.link_wikidane; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; --self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron=tablica_zmiennych; end; if(not czy_artykul_korzystany)then tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=tablica_zmiennych; if(not self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista)then self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista={};end; table.insert(self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista,tablica_danych_nazwy_artykulu); else local dane_zebrane_ze_stron_lista=self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista; if(dane_zebrane_ze_stron_lista)then for _,tablica_danych_nazwy_artykulu in ipairs(dane_zebrane_ze_stron_lista)do tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=nil; end; end; tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane=nil; end; return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true; end; return p; 57jit27w1ra6kugwuzalucig09ihqii Śpiewnik/Szynkareczko, szafareczko 0 56086 546577 403006 2026-06-12T21:55:24Z Igor123121 34732 drobne techniczne 546577 wikitext text/x-wiki <!-- {| cellpadding="10px" | <span style="color:#0645AD; border: #0645AD solid; border-width: 0 0 3px 0; border-radius: 2px | border: transparent solid; border-width: 0 0 3px 0; border-radius: 2px;> Opis </span> | <span style="color:#0645AD> [[{{PAGENAME}}/Muzyka|Muzyka]] </span> | <span style="color:#0645AD> [[{{PAGENAME}}/Tekst|Tekst]] </span> |} --> == Muzyka == '''kompozytor''': [[w:Fryderyk Chopin|Fryderyk Chopin]] (1810–1849)<br /> '''aranżacja''': Franciszek Barański [[Plik:Hulanka by F. Chopin arrangement by F. Barański.svg]] [[Plik:Hulanka by F. Chopin arrangement by F. Barański.midi]] '''Źródło''': {{Cytuj | autor= Franciszek Barański | tytuł= Jeszcze Polska nie zginęła : pieśni patryotyczne i narodowe | miejsce= Lwów | wydawca= nakładem Księgarni Polskiej B. Połonieckiego | data= ok. 1918 | url = https://rcin.org.pl/dlibra/show-content/publication/edition/33975?id=33975 | s= 102}} == Tekst == '''Autor''': [[w:Stefan Witwicki|Stefan Witwicki]] (1801–1847) {{Kolumny|3| <poem> :: Szynkareczko, :: Szafareczko, Bój się Boga, stój! :: Tam się śmiejesz, :: A tu lejesz Miód za kaftan mój. :: Nie daruję, :: Wycałuję, Czarne oczko, brew! :: Nóżki małe, :: Ząbki białe, Hej, spali mnie krew! :: Cóż tak bracie, :: Wciąż dumacie, Bierz tam smutki czart! :: Pełno nędzy, :: Ot, pij prędzej, Świat ten dyabła wart! :: Pjane nogi :: Zbłądzą z drogi, Cóż za wielki srom? :: Krzykiem żony :: Rozbudzony Trafisz, gdzie twój dom. :: Pij lub kijem :: Się pobijem! Biegnij, dziewczę, w czas, :: By pogodzić, :: Nie zaszkodzić, Oblej miodem nas. </poem> }} '''Źródło''': {{Cytuj | autor= Franciszek Barański | tytuł= Jeszcze Polska nie zginęła : pieśni patryotyczne i narodowe | miejsce= Lwów | wydawca= nakładem Księgarni Polskiej B. Połonieckiego | data= ok. 1918 | url = https://rcin.org.pl/dlibra/show-content/publication/edition/33975?id=33975 | s= 77–78}} == Zobacz też == {{Wikiźródła|Hulanka (Witwicki)}} {{Wikiźródła|Szynkareczko, szafareczko}} {{Wikipedia|Pieśni op. 74 (Chopin)}} * ''[https://bibliotekapiosenki.pl/utwory/Hulanka Hulanka]'' w serwisie [https://bibliotekapiosenki.pl/cbpp Cyfrowa Biblioteka Polskiej Piosenki] * ''Hulanka'' na [https://pl.chopin.nifc.pl/chopin/composition/detail/name/HULANKA/id/37 dawnej] i [https://chopin.nifc.pl/pl/chopin/kompozycja/37 nowej] stronie [https://nifc.pl/pl/ Narodowego Instytutu Fryderyka Chopina] f3m8u0vzmwgvdj5ssoqz43nlh8mvx75 Moduł:Linki 828 56416 546526 546519 2026-06-12T14:00:23Z Persino 2851 546526 Scribunto text/plain local p={}; p["PrzetłumaczZnakZastępczyNaStronę"]=function(nazwa_przestrzeni_nazw,nazwa_strony,kod_jezyka,kod_projektu,hash) local czy_pusta_nazwa_przestrzeni_nazw=mw.ustring.match(nazwa_przestrzeni_nazw,"^([%s_:]*)$"); local czy_pusta_nazwa_strony=mw.ustring.match(nazwa_strony,"^([%s_:]*)#.*$") or mw.ustring.match(nazwa_strony,"^([%s_:]*)$"); if(not czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony)then local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp; local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(not czy_biezaca)then local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} local nazwa_bazowa_strony=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_bazowa_strony)then local nazwa_strony_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=nazwa_bazowa_strony, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, ["kod języka bazy"]="pl", ["kod projektu bazy"]=(nazwa_kanoniczna_nazwy_przestrzeni_nazw~="Project")and "w" or "b", } if(nazwa_strony_na_innym_projekcie)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_na_innym_projekcie,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; else return nazwa_bazowa_strony,false; end; end; else local nazwy_modul=require("Module:Nazwy"); if(hash)then local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazw); local nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,}; if(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then return nazwy_modul["PEŁNANAZWASTRONY"](nil,tabela_nazw),true; end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"} local nazwa_strony_glownych_stron_projektu=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_strony_glownych_stron_projektu)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_glownych_stron_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; end; elseif czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} if((czy_biezaca)and(hash))then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"](),true; end; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablokalnesiostrzane=wiki_interwiki_modul.tablica_lokalne_siostrzane; if(tablokalnesiostrzane[kod_projektu])then local wiki_modul=require("Module:Wiki"); local pudelko_modul=require("Module:Pudełko"); local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"](); if(not czy_biezaca)then local nazwa_strony_glownej_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=strona_glowna_tego_projektu, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, } if(nazwa_strony_glownej_na_innym_projekcie)then return nazwa_strony_glownej_na_innym_projekcie,false; end; else return strona_glowna_tego_projektu,false; end; end; end; return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; p["PoprawLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem); local function pojedynczy_link(link) local strona=mw.ustring.match(link,"^%[%[:?([^%[%]|]*)"); local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$") or strona; local z_kodowaniem_temp=(mw.ustring.match(strona,"%%%x%x")and true or false) or z_kodowaniem; link=p.TworzenieWikiLinku(nil,nil,nil,strona,nil,nazwa,nil,nil,false,nil,nil,nil,nil,nil,nil,nil,z_kodowaniem_temp); return link; end; return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end); end; p["WydobądźLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local wartosc,_=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); local specjalne_modul=require("Module:Specjalne"); wartosc=specjalne_modul["UsuńKomentarze"](wartosc); wartosc=specjalne_modul["UsuńSzablonyStylów"](wartosc); wartosc=specjalne_modul["UsuńZnaczniki"](wartosc); wartosc=specjalne_modul["UsuńKategorie"](wartosc); wartosc=specjalne_modul["UsuńWywołaniaPlików"](wartosc); wartosc=specjalne_modul["UsuńInterwiki"](wartosc); local linki_modul=require("Module:Linki"); wartosc=linki_modul["PoprawLinki"]{wartosc,z_kodowaniem}; return wartosc; end; function p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem) if(not czy_url)then local parametry_modul=require("Module:Parametry"); local czy_klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku); local czy_kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku); local czy_kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku); local czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); local czy_po=parametry_modul.CzyTak(po); if(not czy_naglowek_strony)then if(czy_nazwa_strony_linku)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; local strona_zmienna_tymczasowa=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu) local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); if(strona_zmienna_tymczasowa and naglowek_zmienna_tymczasowa)then nazwa_strony_linku=strona_zmienna_tymczasowa; naglowek_zmienna_tymczasowa=parametry_modul["Odstępy"]{[1]=naglowek_zmienna_tymczasowa,[2]="tak",[3]="tak",}; if(parametry_modul.CzyTak(naglowek_zmienna_tymczasowa))then naglowek_strony=naglowek_zmienna_tymczasowa; czy_naglowek_strony=true; end; end; end; else naglowek_strony=parametry_modul["Odstępy"]{[1]=naglowek_strony,[2]="tak",[3]="tak",}; if(not parametry_modul.CzyTak(naglowek_strony))then czy_naglowek_strony=false; naglowek_strony=nil; end; end; --- local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local interwikimap=wiki_interwiki_modul.interwikimap; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local wiki_modul=require("Module:Wiki"); local kod_jezyka_uzyskany_poczatkowy,kod_projektu_uzyskany_poczatkowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_uzyskany_poczatkowy or kod_jezyka_tego_projektu; kod_projektu_uzyskany_poczatkowy=kod_projektu_uzyskany_poczatkowy or kod_projektu_tego_projektu; end; local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; local tablica_kodow={}; local kod_jezyka_koncowy;local kod_projektu_koncowy; --------------------------------------------------------------------- kod_jezyka_koncowy=kod_jezyka_uzyskany_poczatkowy; kod_projektu_koncowy=kod_projektu_uzyskany_poczatkowy; --------------------------------------------------------------------- local kod_jezyka_poczatkowy,kod_projektu_poczatkowy; if(czy_pelna_nazwa_strony_prawidlowa)then nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,bez_przetwarzania_kodow and tablica_kodow or nil); czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; end; ---- if(not nazwa)then nazwa=nazwa_strony_linku..(czy_naglowek_strony and ("#"..naglowek_strony) or ""); nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); czy_nazwa=parametry_modul.CzyTak(nazwa); end local ciag_tablica_kodow=""; if(bez_przetwarzania_kodow)then if(kod_jezyka_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_poczatkowy; else ciag_tablica_kodow=kod_jezyka_poczatkowy; end; elseif(kod_projektu_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_projektu_uzyskany_poczatkowy=kod_projektu_poczatkowy; else ciag_tablica_kodow=kod_projektu_poczatkowy; end; end; local ciag_tablica_kodow_zmienna_tymczasowa=table.concat(tablica_kodow,":"); ciag_tablica_kodow=ciag_tablica_kodow..(((ciag_tablica_kodow~="")and(ciag_tablica_kodow_zmienna_tymczasowa~=""))and ":" or "")..ciag_tablica_kodow_zmienna_tymczasowa; else kod_jezyka_uzyskany_poczatkowy=kod_jezyka_koncowy; kod_projektu_uzyskany_poczatkowy=kod_projektu_koncowy; end; local nazwy_modul=require("Module:Nazwy"); local czy_dyskusja=parametry_modul.CzyTak(dyskusja); local pierwsza_litera=((czy_pelna_nazwa_strony_prawidlowa)and(not czy_dyskusja)) and mw.ustring.match(nazwa_strony_linku,"^(%a)") or nil; local tabela_nazw={}; local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy},tabela_nazw) or nazwy_modul["PRZESTRZEŃDYSKUSJI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw)) or ""; local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) or ""; local linki_modul=require("Module:Linki"); local strona_inna_zmienna_tymczasowa,czy_strona_lokalna=linki_modul["PrzetłumaczZnakZastępczyNaStronę"](nazwaprzestrzeni,nazwastrony,kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); local czy_pelna_nazwa_strony_prawidlowa=((czy_pelna_nazwa_strony_prawidlowa)and(parametry_modul["CzyTakCiąg"](strona_inna_zmienna_tymczasowa) and not mw.ustring.match(strona_inna_zmienna_tymczasowa,"^[%s_:]+$")) or strona_inna_zmienna_tymczasowa); local function TabelaNazw()tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki;return tabela_nazw_temp;end; if(nazwastrony=="")then local tabela_nazw=TabelaNazw(); local nazwa_strony=nazwy_modul["NAZWASTRONY"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) local techniczne_modul=require("Module:Techniczne"); local nowa_nazwa_strony=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony); if(nazwa)then local f,ile=mw.ustring.gsub(nazwa,"%%s",function()return nil;end); if(ile==1)then nazwa=mw.ustring.format(nazwa,nowa_nazwa_strony) or nil; elseif(ile==2)then local nowa_nazwa_przestrzeni=nazwy_modul[(czy_dyskusja) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw); if(tabela_nazw.czy_aktualna_wiki)then nowa_nazwa_przestrzeni=nazwy_modul.Np{nazwa=nowa_nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nowa_nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nowa_nazwa_przestrzeni,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or nowa_nazwa_przestrzeni; end; nazwa=mw.ustring.format(nazwa,nowa_nazwa_przestrzeni,nowa_nazwa_strony) or nil; end; end; end; strona_inna_zmienna_tymczasowa=strona_inna_zmienna_tymczasowa or nazwa_strony_linku; local function NazwaStronyDyskusji(strona) if(czy_dyskusja and czy_pelna_nazwa_strony_prawidlowa)then return nazwy_modul["NAZWASTRONYDYSKUSJI"]({[1]=strona,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()); end; return strona; end; local strona_zmienna_tymczasowa=NazwaStronyDyskusji(strona_inna_zmienna_tymczasowa); nazwa_strony_linku=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw())~=nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()))))and strona_zmienna_tymczasowa or ""); nazwa_strony_linku=pierwsza_litera and mw.ustring.gsub(nazwa_strony_linku,"^["..mw.getContentLanguage():ucfirst(pierwsza_litera)..mw.getContentLanguage():lcfirst(pierwsza_litera).."]",pierwsza_litera) or nazwa_strony_linku; czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local function BiezacaWikiDwukropek() local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; local czy_wstawiac_dwukropek; if(czy_biezace_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then czy_wstawiac_dwukropek=true; end; end; return czy_wstawiac_dwukropek; end; local pudelko_modul=require("Module:Pudełko"); local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane; local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy]; local czy_kod_jezyka_uzyskany_poczatkowy=(kod_jezyka_uzyskany_poczatkowy~=kod_jezyka_tego_projektu); local czy_kod_projektu_uzyskany_poczatkowy=(kod_projektu_uzyskany_poczatkowy~=kod_projektu_tego_projektu); local html_modul=require("Module:Html"); local function AdresLinku() local kody_poczatkowe=(not projekty_nie_en and (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or(czy_kod_jezyka_uzyskany_poczatkowy and kod_jezyka_uzyskany_poczatkowy..":"..(czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or ""))); local tablica_kodow=kody_poczatkowe..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or ""); local czy_wstawiac_dwukropek=((tablica_kodow~="")and (projekty_nie_en and (czy_kod_jezyka_uzyskany_poczatkowy and ":" or "") or "") or (BiezacaWikiDwukropek() and ":" or "")); local strona;local parametry;local naglowek; if(czy_nazwa_strony_linku)then strona=html_modul.EncodeElementyAdresuStrony(nazwa_strony_linku,nil,z_kodowaniem); end; if(czy_parametry_strony)then parametry=html_modul.EncodeElementyAdresuStrony(parametry_strony,true,z_kodowaniem); parametry="?"..parametry; end; if(czy_naglowek_strony)then naglowek=html_modul.EncodeElementyAdresuStrony(naglowek_strony,nil,z_kodowaniem); naglowek="#"..naglowek; end; local zmienna_linkowa=tablica_kodow..(strona or "") ..(parametry or "")..(naglowek or ""); return zmienna_linkowa, czy_wstawiac_dwukropek; end; nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil; nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil; --nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil; if(czy_ogolne and not czy_nazwa)then if(parametry_modul.CzyTak(wyswietl))then nazwa=strona_zmienna_tymczasowa; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); else if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then nazwa=nazwastrony; else nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_uzyskany_poczatkowy,["kod projektu"]=kod_projektu_uzyskany_poczatkowy,}; end; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); end end; local zmienna_linkowa; local aktywny; if(not czy_wewnetrzny_z_fullurl)then local czy_wstawiac_dwukropek; zmienna_linkowa,czy_wstawiac_dwukropek=AdresLinku(); zmienna_linkowa=mw.ustring.gsub(zmienna_linkowa,"[%s_]+"," "); local czy_za=parametry_modul.CzyTak(za); if(czy_za or(nazwa and (nazwa~=zmienna_linkowa)))then zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa..(czy_nazwa and "|"..nazwa..(czy_za and za or "") or (czy_za and ("|"..zmienna_linkowa..za) or "")).."]]"..(czy_po and po or ""); else zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa.."]]"..(czy_po and po or ""); end aktywny=false; else aktywny=true; local serwer; local projekt; if(projekty_nie_en)then for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie)do if(kod_projektu_uzyskany_poczatkowy==kod_projektu_interwiki)then projekt=kod_specjalny_projektu; end; end; end; local function Protocol(kod_projektu) local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; if(not url)then return "";end; return mw.ustring.match(url,"^([^/]*)//"); end; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local nazwy_np_modul=require("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special); local ciag_tablica_kodow_zmienna_tymczasowa=mw.ustring.gsub(strona_zmienna_tymczasowa,"[%s_]+","_"); if(((projekt)and(czy_parametry_strony)and(czy_specjalna))or((projekt)and(wersja_linku=="w")))then local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony)and(czy_specjalna))or((not projekty_nie_en)and(wersja_linku=="w")))then local techniczne_modul=require("Module:Techniczne"); local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)") local adres=serwer.."/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((projekt)and(czy_parametry_strony))or((projekt)and(wersja_linku=="wiki")))then local strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[_%s]+","_"); local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/wiki/"..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and " "..nazwa..(parametry_modul.CzyTak(za) and za or "") or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony))or((not projekty_nie_en)and(wersja_linku=="wiki")))then local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local strona_zmienna_tymczasowa,_=mw.ustring.gsub(ciag_tablica_kodow_zmienna_tymczasowa,"[_%s]+","_"); strona_zmienna_tymczasowa=((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; strona_zmienna_tymczasowa=html_modul.EncodeHtml(strona_zmienna_tymczasowa); strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"([%%])(%d+)","%%%%%2"); strona_zmienna_tymczasowa,_=mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_zmienna_tymczasowa); local adres=strona_zmienna_tymczasowa..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); else local pudelko_modul=require("Module:Pudełko"); zmienna_linkowa=(parametry_modul.CzyTak(klucz_projektu)and ((not(klucz_projektu==pudelko_modul["Klucz projektu tego projektu"]()))and (klucz_projektu..":")or "" ) or ((parametry_modul.CzyTak(kod_jezyka_uzyskany_poczatkowy)and ((not(kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]()))and(kod_jezyka_uzyskany_poczatkowy..":")or "") or "")..(parametry_modul.CzyTak(kod_projektu_uzyskany_poczatkowy)and ((not(kod_projektu_uzyskany_poczatkowy==pudelko_modul["Kod projektu tego projektu"]()))and(kod_projektu_uzyskany_poczatkowy..":")or "") or ""))) ..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; local strona=(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); local adres=tostring(mw.uri.fullUrl(zmienna_linkowa))..strona; zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); end; end; return zmienna_linkowa,kod_jezyka_koncowy,kod_projektu_koncowy,strona_zmienna_tymczasowa,czy_naglowek_strony,aktywny; else local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local czy_nazwa; if(not nazwa)then nazwa=mw.ustring.match(nazwa_strony_linku,"//[^/]*/(.*)$"); nazwa=html_modul.DecodeHtml(nazwa); czy_nazwa=parametry_modul.CzyTak(nazwa); else czy_nazwa=parametry_modul.CzyTak(nazwa); end; local czy_po=parametry_modul.CzyTak(po); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"[%s_]+","_"); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"//([^/]*)/(.*)$", function(s1,s2)return "//"..s1.."/"..html_modul.EncodeHtml(s2);end) local adres=nazwa_strony_linku..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "") ..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony)) or ""); local zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); return zmienna_linkowa,nil,nil,nazwa_strony_linku,czy_naglowek_strony,false; end; end; function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,za,po,z_kodowaniem) local parametry_modul=require("Module:Parametry"); local adres=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or ""))) ..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or ""); local html_modul=require("Module:Html"); adres=html_modul.AdresProjektuEncodeHtml(adres,z_kodowaniem); local wartosc="[[:"..adres..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..(po and po or ""); return wartosc; end; function p.LinkOgromne(spanramka,link) local max_len_link=0; local iter=mw.ustring.gmatch(link,"(%a+)"); for value in iter do max_len_link=math.max(max_len_link,#value);end; if(max_len_link>=20)then spanramka:addClass("link-ogromne");end; end; function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,czy_naglowek,czy_url,czy_parametry,aktywny) local wiki_modul=require("Module:Wiki"); local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=czy_naglowek,["url"]=czy_url,["parametry"]=czy_parametry,["aktywny"]=aktywny,}; local nazwy_modul=require("Module:Nazwy"); local spanramka=mw.html.create('span'); spanramka:addClass(klasa); spanramka:addClass("link"); ---- --p.LinkOgromne(spanramka,link); ---- spanramka:wikitext(link); return tostring(spanramka:allDone()); end; function p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem) local parametry_modul=require("Module:Parametry"); parametry_strony=czy_wewnetrzny_z_fullurl and parametry_strony or nil; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local html_modul=require("Module:Html"); nazwa_strony_linku=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony_linku); local wartosc_parent,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,aktywny=p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem); if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end; return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony,aktywny); end; function p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,naglowek,czy_link_url,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,__FUNKCJA) local nowa_nazwa_strony_linku; local czy_kreska_dolna;local hash;local prze_nie_main; local czy_strona_lokalna; if(not czy_analiza)then czy_kreska_dolna=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$") or mw.ustring.match(nazwa_strony_linku,":[%s_]*$"); hash=(not czy_kreska_dolna)and ((not czy_link_url) and mw.ustring.match(nazwa_strony_linku,"^[_%s]*#(.*)$") or nil) or (((czy_kreska_dolna)and(czy_link_url) and require("Module:Parametry").CzyTak(naglowek)) and naglowek or nil); if((czy_kreska_dolna)or(hash))then local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local miano_przestrzeni_nazw_maly=((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))and mw.ustring.lower(miano_przestrzeni_nazw) or miano_przestrzeni_nazw; if((not miano_przestrzeni_nazw_maly)or((miano_przestrzeni_nazw_maly=="")or(miano_przestrzeni_nazw_maly=="(main)")or(miano_przestrzeni_nazw_maly=="(główna)")))then miano_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); end; local nazwa_strony=nazwy_modul["NAZWASTRONY"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); if(nazwa_strony=="")then nowa_nazwa_strony_linku,czy_strona_lokalna=p["PrzetłumaczZnakZastępczyNaStronę"](miano_przestrzeni_nazw or "","",kod_jezyka,kod_projektu,hash); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; nowa_nazwa_strony_linku=__FUNKCJA(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main); return nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; end; p["GanerujSkładoweURL"] = function(args) local klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku; local miano_przestrzeni_nazw; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local html_modul=require("Module:Html"); nazwa_strony_linku=nazwa_strony_linku and html_modul.DecodeHtml(nazwa_strony_linku) or nil; local parametry_modul=require("Module:Parametry"); local w=args["wersja linku"] or args["w"]; local tab_w={ ["w"]=true, ["wiki"]=true, }; local wersja_linku=parametry_modul.CzyTak(w) and (tab_w[w] and w or nil) or ""; local _; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_strony_linku); local parametry_strony;local naglowek_strony;local nazwa;local po;local po;local za; nazwa=args["nazwa"] or args["n"]; po=args["po"] or args["p"]; za=args["za"] or args["z"]; local function DaneStrony(nazwa_strony_linku_parametr,adres) if(parametry_modul.CzyTak(nazwa_strony_linku_parametr))then if(mw.ustring.match(nazwa_strony_linku_parametr,"^/wiki/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/wiki/",""); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); elseif(mw.ustring.match(nazwa_strony_linku_parametr,"^/w/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/w/",""); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony,true); parametry_strony=parametry_strony_jednostki or parametry_strony; nazwa_strony_linku_parametr=nazwa_strony_jednostki or nazwa_strony_linku_parametr; else nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/(.*)$","%1"); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); end; else if((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku))or(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)))then if((not adres)or(mw.ustring.match(adres,"/$1$")))then local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku_parametr=pudelko_modul["Nazwa strony głównej projektu 2"]{[1]=kod_jezyka_do_projektu_linku,[2]=kod_projektu_do_projektu_linku,} or ""; end; end; end; parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); local biezaca=args["bieżąca"] or args["b"]; local czy_biezaca=parametry_modul.CzyTak(biezaca); nazwa=nazwa or (czy_biezaca and naglowek_strony or nil); --nazwa=args["nazwa"] or args["n"]; local klucz_projektu_do_projektu_linku_temp=args["klucz projektu"] or args["k"]; klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku_temp) and (klucz_projektu_do_projektu_linku_temp) or klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku_temp=args["kod języka"] or args["kj"]; kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku_temp) and (kod_jezyka_do_projektu_linku_temp) or kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku_temp=args["kod projektu"] or args["kp"]; kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku_temp) and (kod_projektu_do_projektu_linku_temp) or kod_projektu_do_projektu_linku; nazwa_strony_linku=nazwa_strony_linku_parametr; czy_url=false; end; if(not czy_url)then local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; nazwa_strony_linku=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw) and miano_przestrzeni_nazw..":"..nazwa_strony_linku or nazwa_strony_linku; DaneStrony(nazwa_strony_linku); else local html_modul=require("Module:Html"); local nazwa_strony_bez_protokolu=html_modul["UrlBezProtokołu"](nazwa_strony_linku); local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_bez_protokolu); local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local function SerwerWiki(serwer) local kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org"); if((not kod_jezyka_zmienna_tymczasowa)or(not kod_specjalny_projektu))then kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.[mM]%.(%w+)%.org"); end; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu]; local kod_jezyka=kod_jezyka_zmienna_tymczasowa and (mw.language.isKnownLanguageTag(kod_jezyka_zmienna_tymczasowa) and kod_jezyka_zmienna_tymczasowa or nil) or nil; return kod_jezyka,kod_projektu; end; local function JezykoweLubAngielskieProjekty(serwer_portalu) local kod_jezyka,kod_projektu=SerwerWiki(serwer_portalu); if(kod_jezyka and kod_projektu)then kod_jezyka_do_projektu_linku=kod_jezyka; kod_projektu_do_projektu_linku=kod_projektu; klucz_projektu_do_projektu_linku=nil; DaneStrony(nazwa_strony); return true; else local pozajezykoweprojektysiostrzane=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane; local techniczne_modul=require("Module:Techniczne"); for kod, url in pairs(pozajezykoweprojektysiostrzane)do local adres=html_modul["UrlBezProtokołu"](url); local serwer_portalu,nazwa_strony_portalu=html_modul["URLStrona"](adres); if(serwer_portalu)then if((serwer_portalu==serwer)and((mw.ustring.match(nazwa_strony_portalu,"%$1"))or(nazwa_strony==nazwa_strony_portalu)))then kod_jezyka_do_projektu_linku=kod_jezyka or "en"; kod_projektu_do_projektu_linku=--[[kod_projektu or]] kod; local nazwa_strony_spreparowana=nil; if(not mw.ustring.match(adres,"/wiki/%$1$"))then if(mw.ustring.match(url,"[:/]$1$"))then local url_wzor=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](adres); url_wzor=mw.ustring.gsub(url_wzor,"(%%$1)$","(.-)"); nazwa_strony_spreparowana=mw.ustring.match(nazwa_strony_bez_protokolu,"^"..url_wzor.."$"); if(not nazwa_strony_spreparowana)then return false; end; end; end; DaneStrony(nazwa_strony_spreparowana or nazwa_strony,adres); return true; end; end; end; end; end; local function __FUNKCJA() if(mw.ustring.match(serwer,"^upload%.wikimedia%.org$"))then DaneStrony(nazwa_strony); nazwa_strony=nazwa_strony_linku; nazwa_strony_linku="Media:"..mw.ustring.match(nazwa_strony,"([^/]*)$"); local kod_projektu_do_projektu_linku2,kod_jezyka_do_projektu_linku2=mw.ustring.match(nazwa_strony,"^([^/]*)/([^/]*)/.*$"); kod_jezyka_do_projektu_linku=kod_jezyka_do_projektu_linku or kod_jezyka_do_projektu_linku2; kod_projektu_do_projektu_linku=kod_projektu_do_projektu_linku or kod_projektu_do_projektu_linku2; czy_url=false; else local juz_tak=JezykoweLubAngielskieProjekty(serwer); if(not juz_tak)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); local biezaca=args["bieżąca"] or args["b"]; local czy_biezaca=parametry_modul.CzyTak(biezaca); nazwa=nazwa or (czy_biezaca and naglowek_strony or nil); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); end; end; end; __FUNKCJA(); end; local czy_wewnetrzny_z_fullurl; if(not parametry_modul.CzyTak(parametry_strony))then if(wersja_linku=="")then if((klucz_projektu_do_projektu_linku)or(kod_jezyka_do_projektu_linku)or(kod_projektu_do_projektu_linku))then czy_wewnetrzny_z_fullurl=false; elseif(not czy_url)then czy_wewnetrzny_z_fullurl=false; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; return klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url; end; p["Link wewnętrzny"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local nazwa=args["nazwa"] or args["n"]; local czy_nazwa=parametry_modul.CzyTak(nazwa); nazwa=czy_nazwa and nazwa or nil; local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; local naglowek_strony=args["nagłówek"] or args["g"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"] or args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"] or args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]or args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"] or args["u"]); local czy_analiza=parametry_modul.CzyTak(args["analiza"] or args["a"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if(not czy_analiza)then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=czy_nazwa and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((not czy_naglowek)and(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$")))) or nil); if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek and naglowek_strony or hash,nazwa,za,po,nil,nil,nil,nil,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),czy_naglowek and naglowek_strony or hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony or hash or mw.ustring.match(nazwa_strony_linku,"#"),nil,nil); else return link; end; end; end; p["LinkURL"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if((not czy_analiza)and(not czy_url))then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=parametry_modul.CzyTak(nazwa) and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$"))) or nil); local function Bez_przetwarzania_lub_bez_znaczkow() if(parametry_modul.CzyTak(bez_przetwarzania))then local bez_znacznikow=parametry_modul.CzyTak(bez_znacznikow); local czy_parametry=parametry_modul.CzyTak(parametry_strony); local wartosc=((not czy_url)and((parametry_modul.CzyTak(klucz_projektu_do_projektu_linku)and (klucz_projektu_do_projektu_linku..":") or ((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku)and (kod_jezyka_do_projektu_linku..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nowa_nazwa_strony_linku) or nil); local link; local po_linku=parametry_modul.CzyTak(po) and po or ""; if((not czy_url)and((czy_parametry)or(parametry_modul.CzyTak(wersja_linku))))then local adres=tostring(mw.uri.fullUrl(wartosc,"")); adres=((not parametry_modul.CzyTak(wersja_linku))or(wersja_linku=="wiki")) and adres or mw.ustring.gsub(adres,"/wiki/","/w/index.php?title=",1); local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ((((wersja_linku=="w")) and "&" or "?")..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") adres=adres..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; elseif(czy_url)then local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") local adres=nowa_nazwa_strony_linku..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; else local naglowek=(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or ""); local adres=wartosc..naglowek; link="[[:"..adres..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..po_linku; end; if not bez_znacznikow then local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony); else return link; end; end; end; local wynik=Bez_przetwarzania_lub_bez_znaczkow();if(wynik)then return wynik;end; return linki_modul.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); end; function p.UzyskajKodWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); kod_jezyka_koncowy=parametry_modul.CzyTak(kod_jezyka_koncowy) and kod_jezyka_koncowy or pudelko_modul["Kod języka tego projektu"](); kod_projektu_koncowy=parametry_modul.CzyTak(kod_projektu_koncowy) and kod_projektu_koncowy or pudelko_modul["Kod projektu tego projektu"](); local aktywny; local czy_nazwa=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_nazwa or not mw.ustring.match(nazwa_strony_linku,"_+"))then if((not czy_nazwa)and((not kod_jezyka_koncowy)or(kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]()))and((not kod_projektu_koncowy)or(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())))then if((parametry_modul.CzyTak(naglowek_strony)) or (not args["strona"] or args["strona"]=="") or ((args["strona"])and(mw.ustring.match(args["strona"],"^[_%s]*#[_%s]*$"))or(nil)))then aktywny=false; local nazwy_modul=require("Module:Nazwy"); nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"](); end; else aktywny=true; end; else aktywny=true; local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku=pudelko_modul["Strona główna tego projektu"](); end; local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy); --- local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_pusta_nazwa_strony_linku)then local linki_modul=require("Module:Linki"); nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); end; ---- local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=nil,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["strona"]=nazwa_strony_linku,["nagłówek"]=czy_naglowek_strony,["url"]=czy_url,["parametry"]=czy_parametry_strony,["aktywny"]=aktywny,}; return klasa; end; p["LinkOgólne"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; local czy_dyskusja=parametry_modul.CzyTak(args["dyskusja"] or args["d"]); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"]; local nazwa_strony_linku=args[1] or "_"; local czy_nazwa=parametry_modul.CzyTak(args[2]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; local czy_niepusta_nazwa_przestrzeni_nazw; local nazwy_modul=require("Module:Nazwy"); local czy_aktualna_wiki; if(not czy_analiza)then local tabela_nazw={}; miano_przestrzeni_nazw=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or ""; nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,nil,nil,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) if(czy_dyskusja)then local tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; nowa_nazwa_strony_linku=nazwy_modul["NAZWASTRONYDYSKUSJI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["bez zmiany adresu"]="tak",},tabela_nazw_temp); end; return nowa_nazwa_strony_linku; end); czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; local tabela_nazw={};tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; local czy_biezaca; local czy_nazwa_strony_pusta; local wiki_modul=require("Module:Wiki"); if((czy_dyskusja)or(czy_analiza))then czy_nazwa_strony_pusta=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"); if((not czy_nazwa_strony_pusta)or((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~="")))then if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local nazwy_modul=require("Module:Nazwy"); if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"](nowa_nazwa_strony_linku,tabela_nazw); else miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); end; czy_niepusta_nazwa_przestrzeni_nazw=parametry_modul.CzyTak(miano_przestrzeni_nazw); end; elseif(hash or czy_kreska_dolna)then czy_niepusta_nazwa_przestrzeni_nazw=true; elseif(not prze_nie_main)then miano_przestrzeni_nazw=""; czy_niepusta_nazwa_przestrzeni_nazw=false; else miano_przestrzeni_nazw=prze_nie_main; czy_niepusta_nazwa_przestrzeni_nazw=true; end; local techniczne_modul=require("Module:Techniczne"); local czy_wyswietl_miano_przestrzeni_nazw=parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw); local function NazwaLinkuDoStrony() local function CzyPrzestrzen(miano_przestrzeni_nazw) local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local miano_przestrzeni_nazw; if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else miano_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; end; return miano_przestrzeni_nazw; end; local function Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw) if(czy_wyswietl_miano_przestrzeni_nazw)then return nazwa; else nazwa=nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); if(tabela_nazw.m)then nazwa=mw.getContentLanguage():lcfirst(nazwa); end; return nazwa; end; end; local function Nazwa(nazwa) local ile;local ile2=0; if((czy_analiza) and (not bez_przetwarzania))then nazwa=techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nazwa_przestrzeni..":".."%s"; end; ile2=ile+1; end); else nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nowa_nazwa_strony_linku; end; ile2=ile2+1; end); end; if(ile-ile2==0)then return Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw); else return nazwa; end; end; local function NazwaFormat(wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta) if((not czy_analiza)or(bez_przetwarzania))then return nil;end; if(czy_wyswietl_miano_przestrzeni_nazw)then if(czy_nazwa_strony_pusta)then if(not miano_przestrzeni_nazw)then return "%s:%s"; else return miano_przestrzeni_nazw..((miano_przestrzeni_nazw~="") and ":" or "").."%s"; end; end; else if(czy_nazwa_strony_pusta)then return "%s"; end; end; end; if(czy_niepusta_nazwa_przestrzeni_nazw)then if(czy_wyswietl_miano_przestrzeni_nazw)then if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then nazwa_strony_linku=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa_strony_linku) or nazwa_strony_linku; if((czy_nazwa_strony_pusta)and(czy_analiza)and(not bez_przetwarzania))then nazwa_strony_linku="%s";end; ---- local aliases; local alias=args["alias miana przestrzeni nazw"] or args["alias"] or args["i"]; local czy_alias=parametry_modul.CzyTak(alias); if(czy_alias)then if((not czy_dyskusja)and(not czy_analiza))then local wiki_modul=require("Module:Wiki"); if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; end; if(czy_biezaca)then local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak"} if(uchwyt)then aliases=uchwyt.aliases; --miano_przestrzeni_nazw=uchwyt.name; end; else local uchwyt=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(uchwyt)then if(parametry_modul.TypeTable(uchwyt))then aliases=uchwyt.aliasy; --miano_przestrzeni_nazw=uchwyt[1]; else --miano_przestrzeni_nazw=uchwyt; aliases={}; end; end; end; end; ---- if((czy_alias)and(parametry_modul.CzyTak(aliases)))then if(parametry_modul["CzySąElementyNumerowaneTablicy"](aliases))then alias=mw.getContentLanguage():uc(alias); for _,value in pairs(aliases)do if((mw.getContentLanguage():uc(value))==alias)then return alias..":"..nazwa_strony_linku; end; end; end; end; if(not miano_przestrzeni_nazw)then return nil;end; local miano_przestrzeni_nazw_zmienna_tymczasowa; if(czy_biezaca)then miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"](nowa_nazwa_strony_linku,tabela_nazw) or nazwa_strony_linku; else miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"]{nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,tabela_nazw} or nazwa_strony_linku; end; if(not miano_przestrzeni_nazw_zmienna_tymczasowa)then return nil;end; return ((miano_przestrzeni_nazw_zmienna_tymczasowa~="") and (miano_przestrzeni_nazw_zmienna_tymczasowa..":") or "")..((((czy_analiza)and(not bez_przetwarzania))and(nazwa_strony_linku=="")) and "%s" or nazwa_strony_linku); else local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa=Nazwa(nazwa); return nazwa; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwa=nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and ("#"..hash) or nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); nazwa=Nazwa(nazwa); return nazwa; end; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; local nazwa=nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if(czy_nazwa_strony_pusta)then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; end; end; end; end; local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$"))))) or nil); local nazwa=czy_nazwa and (args[2] and (((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](args[2]) or args[2]) or nil) or NazwaLinkuDoStrony(); local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash,nazwa,za,po,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,czy_dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash or ((not czy_kreska_dolna) and mw.ustring.match(nazwa_strony_linku,"#") or nil),nil,nil); else return link; end; end; end; function p.ZamianaKategoriiNaLinki(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local techniczne_modul=require("Module:Techniczne"); local nazwy_np_modul=wm.loadData("Module:Nazwy/Np"); local kategoria_polska=nazwy_np_modul.Category; local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska) tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); return tekst; end; return p; mf8dto2qlqw4bcikwfpvsvjvjrkeb9p 546530 546526 2026-06-12T14:05:58Z Persino 2851 546530 Scribunto text/plain local p={}; p["PrzetłumaczZnakZastępczyNaStronę"]=function(nazwa_przestrzeni_nazw,nazwa_strony,kod_jezyka,kod_projektu,hash) local czy_pusta_nazwa_przestrzeni_nazw=mw.ustring.match(nazwa_przestrzeni_nazw,"^([%s_:]*)$"); local czy_pusta_nazwa_strony=mw.ustring.match(nazwa_strony,"^([%s_:]*)#.*$") or mw.ustring.match(nazwa_strony,"^([%s_:]*)$"); if(not czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony)then local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp; local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(not czy_biezaca)then local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} local nazwa_bazowa_strony=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_bazowa_strony)then local nazwa_strony_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=nazwa_bazowa_strony, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, ["kod języka bazy"]="pl", ["kod projektu bazy"]=(nazwa_kanoniczna_nazwy_przestrzeni_nazw~="Project")and "w" or "b", } if(nazwa_strony_na_innym_projekcie)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_na_innym_projekcie,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; else return nazwa_bazowa_strony,false; end; end; else local nazwy_modul=require("Module:Nazwy"); if(hash)then local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazw); local nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,}; if(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then return nazwy_modul["PEŁNANAZWASTRONY"](nil,tabela_nazw),true; end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"} local nazwa_strony_glownych_stron_projektu=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_strony_glownych_stron_projektu)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_glownych_stron_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; end; elseif czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} if((czy_biezaca)and(hash))then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"](),true; end; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablokalnesiostrzane=wiki_interwiki_modul.tablica_lokalne_siostrzane; if(tablokalnesiostrzane[kod_projektu])then local wiki_modul=require("Module:Wiki"); local pudelko_modul=require("Module:Pudełko"); local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"](); if(not czy_biezaca)then local nazwa_strony_glownej_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=strona_glowna_tego_projektu, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, } if(nazwa_strony_glownej_na_innym_projekcie)then return nazwa_strony_glownej_na_innym_projekcie,false; end; else return strona_glowna_tego_projektu,false; end; end; end; return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; p["PoprawLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem); local function pojedynczy_link(link) local strona=mw.ustring.match(link,"^%[%[:?([^%[%]|]*)"); local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$") or strona; local z_kodowaniem_temp=(mw.ustring.match(strona,"%%%x%x")and true or false) or z_kodowaniem; link=p.TworzenieWikiLinku(nil,nil,nil,strona,nil,nazwa,nil,nil,false,nil,nil,nil,nil,nil,nil,nil,z_kodowaniem_temp); return link; end; return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end); end; p["WydobądźLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local wartosc,_=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); local specjalne_modul=require("Module:Specjalne"); wartosc=specjalne_modul["UsuńKomentarze"](wartosc); wartosc=specjalne_modul["UsuńSzablonyStylów"](wartosc); wartosc=specjalne_modul["UsuńZnaczniki"](wartosc); wartosc=specjalne_modul["UsuńKategorie"](wartosc); wartosc=specjalne_modul["UsuńWywołaniaPlików"](wartosc); wartosc=specjalne_modul["UsuńInterwiki"](wartosc); local linki_modul=require("Module:Linki"); wartosc=linki_modul["PoprawLinki"]{wartosc,z_kodowaniem}; return wartosc; end; function p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem) if(not czy_url)then local parametry_modul=require("Module:Parametry"); local czy_klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku); local czy_kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku); local czy_kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku); local czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); local czy_po=parametry_modul.CzyTak(po); if(not czy_naglowek_strony)then if(czy_nazwa_strony_linku)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; local strona_zmienna_tymczasowa=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu) local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); if(strona_zmienna_tymczasowa and naglowek_zmienna_tymczasowa)then nazwa_strony_linku=strona_zmienna_tymczasowa; naglowek_zmienna_tymczasowa=parametry_modul["Odstępy"]{[1]=naglowek_zmienna_tymczasowa,[2]="tak",[3]="tak",}; if(parametry_modul.CzyTak(naglowek_zmienna_tymczasowa))then naglowek_strony=naglowek_zmienna_tymczasowa; czy_naglowek_strony=true; end; end; end; else naglowek_strony=parametry_modul["Odstępy"]{[1]=naglowek_strony,[2]="tak",[3]="tak",}; if(not parametry_modul.CzyTak(naglowek_strony))then czy_naglowek_strony=false; naglowek_strony=nil; end; end; --- local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local interwikimap=wiki_interwiki_modul.interwikimap; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local wiki_modul=require("Module:Wiki"); local kod_jezyka_uzyskany_poczatkowy,kod_projektu_uzyskany_poczatkowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_uzyskany_poczatkowy or kod_jezyka_tego_projektu; kod_projektu_uzyskany_poczatkowy=kod_projektu_uzyskany_poczatkowy or kod_projektu_tego_projektu; end; local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; local tablica_kodow={}; local kod_jezyka_koncowy;local kod_projektu_koncowy; --------------------------------------------------------------------- kod_jezyka_koncowy=kod_jezyka_uzyskany_poczatkowy; kod_projektu_koncowy=kod_projektu_uzyskany_poczatkowy; --------------------------------------------------------------------- local kod_jezyka_poczatkowy,kod_projektu_poczatkowy; if(czy_pelna_nazwa_strony_prawidlowa)then nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,bez_przetwarzania_kodow and tablica_kodow or nil); czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; end; ---- if(not nazwa)then nazwa=nazwa_strony_linku..(czy_naglowek_strony and ("#"..naglowek_strony) or ""); nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); czy_nazwa=parametry_modul.CzyTak(nazwa); end local ciag_tablica_kodow=""; if(bez_przetwarzania_kodow)then if(kod_jezyka_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_poczatkowy; else ciag_tablica_kodow=kod_jezyka_poczatkowy; end; elseif(kod_projektu_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_projektu_uzyskany_poczatkowy=kod_projektu_poczatkowy; else ciag_tablica_kodow=kod_projektu_poczatkowy; end; end; local ciag_tablica_kodow_zmienna_tymczasowa=table.concat(tablica_kodow,":"); ciag_tablica_kodow=ciag_tablica_kodow..(((ciag_tablica_kodow~="")and(ciag_tablica_kodow_zmienna_tymczasowa~=""))and ":" or "")..ciag_tablica_kodow_zmienna_tymczasowa; else kod_jezyka_uzyskany_poczatkowy=kod_jezyka_koncowy; kod_projektu_uzyskany_poczatkowy=kod_projektu_koncowy; end; local nazwy_modul=require("Module:Nazwy"); local czy_dyskusja=parametry_modul.CzyTak(dyskusja); local pierwsza_litera=((czy_pelna_nazwa_strony_prawidlowa)and(not czy_dyskusja)) and mw.ustring.match(nazwa_strony_linku,"^(%a)") or nil; local tabela_nazw={}; local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy},tabela_nazw) or nazwy_modul["PRZESTRZEŃDYSKUSJI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw)) or ""; local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) or ""; local linki_modul=require("Module:Linki"); local strona_inna_zmienna_tymczasowa,czy_strona_lokalna=linki_modul["PrzetłumaczZnakZastępczyNaStronę"](nazwaprzestrzeni,nazwastrony,kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); local czy_pelna_nazwa_strony_prawidlowa=((czy_pelna_nazwa_strony_prawidlowa)and(parametry_modul["CzyTakCiąg"](strona_inna_zmienna_tymczasowa) and not mw.ustring.match(strona_inna_zmienna_tymczasowa,"^[%s_:]+$")) or strona_inna_zmienna_tymczasowa); local function TabelaNazw()tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki;return tabela_nazw_temp;end; if(nazwastrony=="")then local tabela_nazw=TabelaNazw(); local nazwa_strony=nazwy_modul["NAZWASTRONY"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) local techniczne_modul=require("Module:Techniczne"); local nowa_nazwa_strony=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony); if(nazwa)then local f,ile=mw.ustring.gsub(nazwa,"%%s",function()return nil;end); if(ile==1)then nazwa=mw.ustring.format(nazwa,nowa_nazwa_strony) or nil; elseif(ile==2)then local nowa_nazwa_przestrzeni=nazwy_modul[(czy_dyskusja) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw); if(tabela_nazw.czy_aktualna_wiki)then nowa_nazwa_przestrzeni=nazwy_modul.Np{nazwa=nowa_nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nowa_nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nowa_nazwa_przestrzeni,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or nowa_nazwa_przestrzeni; end; nazwa=mw.ustring.format(nazwa,nowa_nazwa_przestrzeni,nowa_nazwa_strony) or nil; end; end; end; strona_inna_zmienna_tymczasowa=strona_inna_zmienna_tymczasowa or nazwa_strony_linku; local function NazwaStronyDyskusji(strona) if(czy_dyskusja and czy_pelna_nazwa_strony_prawidlowa)then return nazwy_modul["NAZWASTRONYDYSKUSJI"]({[1]=strona,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()); end; return strona; end; local strona_zmienna_tymczasowa=NazwaStronyDyskusji(strona_inna_zmienna_tymczasowa); nazwa_strony_linku=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw())~=nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()))))and strona_zmienna_tymczasowa or ""); nazwa_strony_linku=pierwsza_litera and mw.ustring.gsub(nazwa_strony_linku,"^["..mw.getContentLanguage():ucfirst(pierwsza_litera)..mw.getContentLanguage():lcfirst(pierwsza_litera).."]",pierwsza_litera) or nazwa_strony_linku; czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local function BiezacaWikiDwukropek() local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; local czy_wstawiac_dwukropek; if(czy_biezace_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then czy_wstawiac_dwukropek=true; end; end; return czy_wstawiac_dwukropek; end; local pudelko_modul=require("Module:Pudełko"); local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane; local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy]; local czy_kod_jezyka_uzyskany_poczatkowy=(kod_jezyka_uzyskany_poczatkowy~=kod_jezyka_tego_projektu); local czy_kod_projektu_uzyskany_poczatkowy=(kod_projektu_uzyskany_poczatkowy~=kod_projektu_tego_projektu); local html_modul=require("Module:Html"); local function AdresLinku() local kody_poczatkowe=(not projekty_nie_en and (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or(czy_kod_jezyka_uzyskany_poczatkowy and kod_jezyka_uzyskany_poczatkowy..":"..(czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or ""))); local tablica_kodow=kody_poczatkowe..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or ""); local czy_wstawiac_dwukropek=((tablica_kodow~="")and (projekty_nie_en and (czy_kod_jezyka_uzyskany_poczatkowy and ":" or "") or "") or (BiezacaWikiDwukropek() and ":" or "")); local strona;local parametry;local naglowek; if(czy_nazwa_strony_linku)then strona=html_modul.EncodeElementyAdresuStrony(nazwa_strony_linku,nil,z_kodowaniem); end; if(czy_parametry_strony)then parametry=html_modul.EncodeElementyAdresuStrony(parametry_strony,true,z_kodowaniem); parametry="?"..parametry; end; if(czy_naglowek_strony)then naglowek=html_modul.EncodeElementyAdresuStrony(naglowek_strony,nil,z_kodowaniem); naglowek="#"..naglowek; end; local zmienna_linkowa=tablica_kodow..(strona or "") ..(parametry or "")..(naglowek or ""); return zmienna_linkowa, czy_wstawiac_dwukropek; end; nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil; nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil; --nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil; if(czy_ogolne and not czy_nazwa)then if(parametry_modul.CzyTak(wyswietl))then nazwa=strona_zmienna_tymczasowa; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); else if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then nazwa=nazwastrony; else nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_uzyskany_poczatkowy,["kod projektu"]=kod_projektu_uzyskany_poczatkowy,}; end; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); end end; local zmienna_linkowa; local aktywny; if(not czy_wewnetrzny_z_fullurl)then local czy_wstawiac_dwukropek; zmienna_linkowa,czy_wstawiac_dwukropek=AdresLinku(); zmienna_linkowa=mw.ustring.gsub(zmienna_linkowa,"[%s_]+"," "); local czy_za=parametry_modul.CzyTak(za); if(czy_za or(nazwa and (nazwa~=zmienna_linkowa)))then zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa..(czy_nazwa and "|"..nazwa..(czy_za and za or "") or (czy_za and ("|"..zmienna_linkowa..za) or "")).."]]"..(czy_po and po or ""); else zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa.."]]"..(czy_po and po or ""); end aktywny=false; else aktywny=true; local serwer; local projekt; if(projekty_nie_en)then for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie)do if(kod_projektu_uzyskany_poczatkowy==kod_projektu_interwiki)then projekt=kod_specjalny_projektu; end; end; end; local function Protocol(kod_projektu) local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; if(not url)then return "";end; return mw.ustring.match(url,"^([^/]*)//"); end; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local nazwy_np_modul=require("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special); local ciag_tablica_kodow_zmienna_tymczasowa=mw.ustring.gsub(strona_zmienna_tymczasowa,"[%s_]+","_"); if(((projekt)and(czy_parametry_strony)and(czy_specjalna))or((projekt)and(wersja_linku=="w")))then local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony)and(czy_specjalna))or((not projekty_nie_en)and(wersja_linku=="w")))then local techniczne_modul=require("Module:Techniczne"); local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)") local adres=serwer.."/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((projekt)and(czy_parametry_strony))or((projekt)and(wersja_linku=="wiki")))then local strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[_%s]+","_"); local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/wiki/"..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and " "..nazwa..(parametry_modul.CzyTak(za) and za or "") or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony))or((not projekty_nie_en)and(wersja_linku=="wiki")))then local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local strona_zmienna_tymczasowa,_=mw.ustring.gsub(ciag_tablica_kodow_zmienna_tymczasowa,"[_%s]+","_"); strona_zmienna_tymczasowa=((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; strona_zmienna_tymczasowa=html_modul.EncodeHtml(strona_zmienna_tymczasowa); strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"([%%])(%d+)","%%%%%2"); strona_zmienna_tymczasowa,_=mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_zmienna_tymczasowa); local adres=strona_zmienna_tymczasowa..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); else local pudelko_modul=require("Module:Pudełko"); zmienna_linkowa=(parametry_modul.CzyTak(klucz_projektu)and ((not(klucz_projektu==pudelko_modul["Klucz projektu tego projektu"]()))and (klucz_projektu..":")or "" ) or ((parametry_modul.CzyTak(kod_jezyka_uzyskany_poczatkowy)and ((not(kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]()))and(kod_jezyka_uzyskany_poczatkowy..":")or "") or "")..(parametry_modul.CzyTak(kod_projektu_uzyskany_poczatkowy)and ((not(kod_projektu_uzyskany_poczatkowy==pudelko_modul["Kod projektu tego projektu"]()))and(kod_projektu_uzyskany_poczatkowy..":")or "") or ""))) ..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; local strona=(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); local adres=tostring(mw.uri.fullUrl(zmienna_linkowa))..strona; zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); end; end; return zmienna_linkowa,kod_jezyka_koncowy,kod_projektu_koncowy,strona_zmienna_tymczasowa,czy_naglowek_strony,aktywny; else local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local czy_nazwa; if(not nazwa)then nazwa=mw.ustring.match(nazwa_strony_linku,"//[^/]*/(.*)$"); nazwa=html_modul.DecodeHtml(nazwa); czy_nazwa=parametry_modul.CzyTak(nazwa); else czy_nazwa=parametry_modul.CzyTak(nazwa); end; local czy_po=parametry_modul.CzyTak(po); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"[%s_]+","_"); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"//([^/]*)/(.*)$", function(s1,s2)return "//"..s1.."/"..html_modul.EncodeHtml(s2);end) local adres=nazwa_strony_linku..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "") ..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony)) or ""); local zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); return zmienna_linkowa,nil,nil,nazwa_strony_linku,czy_naglowek_strony,false; end; end; function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,za,po,z_kodowaniem) local parametry_modul=require("Module:Parametry"); local adres=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or ""))) ..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or ""); local html_modul=require("Module:Html"); adres=html_modul.AdresProjektuEncodeHtml(adres,z_kodowaniem); local wartosc="[[:"..adres..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..(po and po or ""); return wartosc; end; function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,czy_naglowek,czy_url,czy_parametry,aktywny) local wiki_modul=require("Module:Wiki"); local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=czy_naglowek,["url"]=czy_url,["parametry"]=czy_parametry,["aktywny"]=aktywny,}; local nazwy_modul=require("Module:Nazwy"); local spanramka=mw.html.create('span'); spanramka:addClass(klasa); spanramka:addClass("link"); spanramka:wikitext(link); return tostring(spanramka:allDone()); end; function p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem) local parametry_modul=require("Module:Parametry"); parametry_strony=czy_wewnetrzny_z_fullurl and parametry_strony or nil; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local html_modul=require("Module:Html"); nazwa_strony_linku=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony_linku); local wartosc_parent,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,aktywny=p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem); if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end; return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony,aktywny); end; function p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,naglowek,czy_link_url,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,__FUNKCJA) local nowa_nazwa_strony_linku; local czy_kreska_dolna;local hash;local prze_nie_main; local czy_strona_lokalna; if(not czy_analiza)then czy_kreska_dolna=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$") or mw.ustring.match(nazwa_strony_linku,":[%s_]*$"); hash=(not czy_kreska_dolna)and ((not czy_link_url) and mw.ustring.match(nazwa_strony_linku,"^[_%s]*#(.*)$") or nil) or (((czy_kreska_dolna)and(czy_link_url) and require("Module:Parametry").CzyTak(naglowek)) and naglowek or nil); if((czy_kreska_dolna)or(hash))then local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local miano_przestrzeni_nazw_maly=((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))and mw.ustring.lower(miano_przestrzeni_nazw) or miano_przestrzeni_nazw; if((not miano_przestrzeni_nazw_maly)or((miano_przestrzeni_nazw_maly=="")or(miano_przestrzeni_nazw_maly=="(main)")or(miano_przestrzeni_nazw_maly=="(główna)")))then miano_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); end; local nazwa_strony=nazwy_modul["NAZWASTRONY"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); if(nazwa_strony=="")then nowa_nazwa_strony_linku,czy_strona_lokalna=p["PrzetłumaczZnakZastępczyNaStronę"](miano_przestrzeni_nazw or "","",kod_jezyka,kod_projektu,hash); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; nowa_nazwa_strony_linku=__FUNKCJA(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main); return nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; end; p["GanerujSkładoweURL"] = function(args) local klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku; local miano_przestrzeni_nazw; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local html_modul=require("Module:Html"); nazwa_strony_linku=nazwa_strony_linku and html_modul.DecodeHtml(nazwa_strony_linku) or nil; local parametry_modul=require("Module:Parametry"); local w=args["wersja linku"] or args["w"]; local tab_w={ ["w"]=true, ["wiki"]=true, }; local wersja_linku=parametry_modul.CzyTak(w) and (tab_w[w] and w or nil) or ""; local _; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_strony_linku); local parametry_strony;local naglowek_strony;local nazwa;local po;local po;local za; nazwa=args["nazwa"] or args["n"]; po=args["po"] or args["p"]; za=args["za"] or args["z"]; local function DaneStrony(nazwa_strony_linku_parametr,adres) if(parametry_modul.CzyTak(nazwa_strony_linku_parametr))then if(mw.ustring.match(nazwa_strony_linku_parametr,"^/wiki/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/wiki/",""); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); elseif(mw.ustring.match(nazwa_strony_linku_parametr,"^/w/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/w/",""); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony,true); parametry_strony=parametry_strony_jednostki or parametry_strony; nazwa_strony_linku_parametr=nazwa_strony_jednostki or nazwa_strony_linku_parametr; else nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/(.*)$","%1"); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); end; else if((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku))or(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)))then if((not adres)or(mw.ustring.match(adres,"/$1$")))then local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku_parametr=pudelko_modul["Nazwa strony głównej projektu 2"]{[1]=kod_jezyka_do_projektu_linku,[2]=kod_projektu_do_projektu_linku,} or ""; end; end; end; parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); local biezaca=args["bieżąca"] or args["b"]; local czy_biezaca=parametry_modul.CzyTak(biezaca); nazwa=nazwa or (czy_biezaca and naglowek_strony or nil); --nazwa=args["nazwa"] or args["n"]; local klucz_projektu_do_projektu_linku_temp=args["klucz projektu"] or args["k"]; klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku_temp) and (klucz_projektu_do_projektu_linku_temp) or klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku_temp=args["kod języka"] or args["kj"]; kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku_temp) and (kod_jezyka_do_projektu_linku_temp) or kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku_temp=args["kod projektu"] or args["kp"]; kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku_temp) and (kod_projektu_do_projektu_linku_temp) or kod_projektu_do_projektu_linku; nazwa_strony_linku=nazwa_strony_linku_parametr; czy_url=false; end; if(not czy_url)then local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; nazwa_strony_linku=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw) and miano_przestrzeni_nazw..":"..nazwa_strony_linku or nazwa_strony_linku; DaneStrony(nazwa_strony_linku); else local html_modul=require("Module:Html"); local nazwa_strony_bez_protokolu=html_modul["UrlBezProtokołu"](nazwa_strony_linku); local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_bez_protokolu); local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local function SerwerWiki(serwer) local kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org"); if((not kod_jezyka_zmienna_tymczasowa)or(not kod_specjalny_projektu))then kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.[mM]%.(%w+)%.org"); end; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu]; local kod_jezyka=kod_jezyka_zmienna_tymczasowa and (mw.language.isKnownLanguageTag(kod_jezyka_zmienna_tymczasowa) and kod_jezyka_zmienna_tymczasowa or nil) or nil; return kod_jezyka,kod_projektu; end; local function JezykoweLubAngielskieProjekty(serwer_portalu) local kod_jezyka,kod_projektu=SerwerWiki(serwer_portalu); if(kod_jezyka and kod_projektu)then kod_jezyka_do_projektu_linku=kod_jezyka; kod_projektu_do_projektu_linku=kod_projektu; klucz_projektu_do_projektu_linku=nil; DaneStrony(nazwa_strony); return true; else local pozajezykoweprojektysiostrzane=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane; local techniczne_modul=require("Module:Techniczne"); for kod, url in pairs(pozajezykoweprojektysiostrzane)do local adres=html_modul["UrlBezProtokołu"](url); local serwer_portalu,nazwa_strony_portalu=html_modul["URLStrona"](adres); if(serwer_portalu)then if((serwer_portalu==serwer)and((mw.ustring.match(nazwa_strony_portalu,"%$1"))or(nazwa_strony==nazwa_strony_portalu)))then kod_jezyka_do_projektu_linku=kod_jezyka or "en"; kod_projektu_do_projektu_linku=--[[kod_projektu or]] kod; local nazwa_strony_spreparowana=nil; if(not mw.ustring.match(adres,"/wiki/%$1$"))then if(mw.ustring.match(url,"[:/]$1$"))then local url_wzor=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](adres); url_wzor=mw.ustring.gsub(url_wzor,"(%%$1)$","(.-)"); nazwa_strony_spreparowana=mw.ustring.match(nazwa_strony_bez_protokolu,"^"..url_wzor.."$"); if(not nazwa_strony_spreparowana)then return false; end; end; end; DaneStrony(nazwa_strony_spreparowana or nazwa_strony,adres); return true; end; end; end; end; end; local function __FUNKCJA() if(mw.ustring.match(serwer,"^upload%.wikimedia%.org$"))then DaneStrony(nazwa_strony); nazwa_strony=nazwa_strony_linku; nazwa_strony_linku="Media:"..mw.ustring.match(nazwa_strony,"([^/]*)$"); local kod_projektu_do_projektu_linku2,kod_jezyka_do_projektu_linku2=mw.ustring.match(nazwa_strony,"^([^/]*)/([^/]*)/.*$"); kod_jezyka_do_projektu_linku=kod_jezyka_do_projektu_linku or kod_jezyka_do_projektu_linku2; kod_projektu_do_projektu_linku=kod_projektu_do_projektu_linku or kod_projektu_do_projektu_linku2; czy_url=false; else local juz_tak=JezykoweLubAngielskieProjekty(serwer); if(not juz_tak)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); local biezaca=args["bieżąca"] or args["b"]; local czy_biezaca=parametry_modul.CzyTak(biezaca); nazwa=nazwa or (czy_biezaca and naglowek_strony or nil); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); end; end; end; __FUNKCJA(); end; local czy_wewnetrzny_z_fullurl; if(not parametry_modul.CzyTak(parametry_strony))then if(wersja_linku=="")then if((klucz_projektu_do_projektu_linku)or(kod_jezyka_do_projektu_linku)or(kod_projektu_do_projektu_linku))then czy_wewnetrzny_z_fullurl=false; elseif(not czy_url)then czy_wewnetrzny_z_fullurl=false; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; return klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url; end; p["Link wewnętrzny"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local nazwa=args["nazwa"] or args["n"]; local czy_nazwa=parametry_modul.CzyTak(nazwa); nazwa=czy_nazwa and nazwa or nil; local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; local naglowek_strony=args["nagłówek"] or args["g"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"] or args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"] or args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]or args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"] or args["u"]); local czy_analiza=parametry_modul.CzyTak(args["analiza"] or args["a"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if(not czy_analiza)then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=czy_nazwa and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((not czy_naglowek)and(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$")))) or nil); if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek and naglowek_strony or hash,nazwa,za,po,nil,nil,nil,nil,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),czy_naglowek and naglowek_strony or hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony or hash or mw.ustring.match(nazwa_strony_linku,"#"),nil,nil); else return link; end; end; end; p["LinkURL"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if((not czy_analiza)and(not czy_url))then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=parametry_modul.CzyTak(nazwa) and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$"))) or nil); local function Bez_przetwarzania_lub_bez_znaczkow() if(parametry_modul.CzyTak(bez_przetwarzania))then local bez_znacznikow=parametry_modul.CzyTak(bez_znacznikow); local czy_parametry=parametry_modul.CzyTak(parametry_strony); local wartosc=((not czy_url)and((parametry_modul.CzyTak(klucz_projektu_do_projektu_linku)and (klucz_projektu_do_projektu_linku..":") or ((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku)and (kod_jezyka_do_projektu_linku..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nowa_nazwa_strony_linku) or nil); local link; local po_linku=parametry_modul.CzyTak(po) and po or ""; if((not czy_url)and((czy_parametry)or(parametry_modul.CzyTak(wersja_linku))))then local adres=tostring(mw.uri.fullUrl(wartosc,"")); adres=((not parametry_modul.CzyTak(wersja_linku))or(wersja_linku=="wiki")) and adres or mw.ustring.gsub(adres,"/wiki/","/w/index.php?title=",1); local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ((((wersja_linku=="w")) and "&" or "?")..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") adres=adres..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; elseif(czy_url)then local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") local adres=nowa_nazwa_strony_linku..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; else local naglowek=(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or ""); local adres=wartosc..naglowek; link="[[:"..adres..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..po_linku; end; if not bez_znacznikow then local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony); else return link; end; end; end; local wynik=Bez_przetwarzania_lub_bez_znaczkow();if(wynik)then return wynik;end; return linki_modul.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); end; function p.UzyskajKodWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); kod_jezyka_koncowy=parametry_modul.CzyTak(kod_jezyka_koncowy) and kod_jezyka_koncowy or pudelko_modul["Kod języka tego projektu"](); kod_projektu_koncowy=parametry_modul.CzyTak(kod_projektu_koncowy) and kod_projektu_koncowy or pudelko_modul["Kod projektu tego projektu"](); local aktywny; local czy_nazwa=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_nazwa or not mw.ustring.match(nazwa_strony_linku,"_+"))then if((not czy_nazwa)and((not kod_jezyka_koncowy)or(kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]()))and((not kod_projektu_koncowy)or(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())))then if((parametry_modul.CzyTak(naglowek_strony)) or (not args["strona"] or args["strona"]=="") or ((args["strona"])and(mw.ustring.match(args["strona"],"^[_%s]*#[_%s]*$"))or(nil)))then aktywny=false; local nazwy_modul=require("Module:Nazwy"); nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"](); end; else aktywny=true; end; else aktywny=true; local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku=pudelko_modul["Strona główna tego projektu"](); end; local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy); --- local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_pusta_nazwa_strony_linku)then local linki_modul=require("Module:Linki"); nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); end; ---- local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=nil,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["strona"]=nazwa_strony_linku,["nagłówek"]=czy_naglowek_strony,["url"]=czy_url,["parametry"]=czy_parametry_strony,["aktywny"]=aktywny,}; return klasa; end; p["LinkOgólne"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; local czy_dyskusja=parametry_modul.CzyTak(args["dyskusja"] or args["d"]); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"]; local nazwa_strony_linku=args[1] or "_"; local czy_nazwa=parametry_modul.CzyTak(args[2]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; local czy_niepusta_nazwa_przestrzeni_nazw; local nazwy_modul=require("Module:Nazwy"); local czy_aktualna_wiki; if(not czy_analiza)then local tabela_nazw={}; miano_przestrzeni_nazw=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or ""; nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,nil,nil,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) if(czy_dyskusja)then local tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; nowa_nazwa_strony_linku=nazwy_modul["NAZWASTRONYDYSKUSJI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["bez zmiany adresu"]="tak",},tabela_nazw_temp); end; return nowa_nazwa_strony_linku; end); czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; local tabela_nazw={};tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; local czy_biezaca; local czy_nazwa_strony_pusta; local wiki_modul=require("Module:Wiki"); if((czy_dyskusja)or(czy_analiza))then czy_nazwa_strony_pusta=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"); if((not czy_nazwa_strony_pusta)or((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~="")))then if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local nazwy_modul=require("Module:Nazwy"); if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"](nowa_nazwa_strony_linku,tabela_nazw); else miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); end; czy_niepusta_nazwa_przestrzeni_nazw=parametry_modul.CzyTak(miano_przestrzeni_nazw); end; elseif(hash or czy_kreska_dolna)then czy_niepusta_nazwa_przestrzeni_nazw=true; elseif(not prze_nie_main)then miano_przestrzeni_nazw=""; czy_niepusta_nazwa_przestrzeni_nazw=false; else miano_przestrzeni_nazw=prze_nie_main; czy_niepusta_nazwa_przestrzeni_nazw=true; end; local techniczne_modul=require("Module:Techniczne"); local czy_wyswietl_miano_przestrzeni_nazw=parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw); local function NazwaLinkuDoStrony() local function CzyPrzestrzen(miano_przestrzeni_nazw) local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local miano_przestrzeni_nazw; if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else miano_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; end; return miano_przestrzeni_nazw; end; local function Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw) if(czy_wyswietl_miano_przestrzeni_nazw)then return nazwa; else nazwa=nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); if(tabela_nazw.m)then nazwa=mw.getContentLanguage():lcfirst(nazwa); end; return nazwa; end; end; local function Nazwa(nazwa) local ile;local ile2=0; if((czy_analiza) and (not bez_przetwarzania))then nazwa=techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nazwa_przestrzeni..":".."%s"; end; ile2=ile+1; end); else nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nowa_nazwa_strony_linku; end; ile2=ile2+1; end); end; if(ile-ile2==0)then return Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw); else return nazwa; end; end; local function NazwaFormat(wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta) if((not czy_analiza)or(bez_przetwarzania))then return nil;end; if(czy_wyswietl_miano_przestrzeni_nazw)then if(czy_nazwa_strony_pusta)then if(not miano_przestrzeni_nazw)then return "%s:%s"; else return miano_przestrzeni_nazw..((miano_przestrzeni_nazw~="") and ":" or "").."%s"; end; end; else if(czy_nazwa_strony_pusta)then return "%s"; end; end; end; if(czy_niepusta_nazwa_przestrzeni_nazw)then if(czy_wyswietl_miano_przestrzeni_nazw)then if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then nazwa_strony_linku=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa_strony_linku) or nazwa_strony_linku; if((czy_nazwa_strony_pusta)and(czy_analiza)and(not bez_przetwarzania))then nazwa_strony_linku="%s";end; ---- local aliases; local alias=args["alias miana przestrzeni nazw"] or args["alias"] or args["i"]; local czy_alias=parametry_modul.CzyTak(alias); if(czy_alias)then if((not czy_dyskusja)and(not czy_analiza))then local wiki_modul=require("Module:Wiki"); if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; end; if(czy_biezaca)then local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak"} if(uchwyt)then aliases=uchwyt.aliases; --miano_przestrzeni_nazw=uchwyt.name; end; else local uchwyt=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(uchwyt)then if(parametry_modul.TypeTable(uchwyt))then aliases=uchwyt.aliasy; --miano_przestrzeni_nazw=uchwyt[1]; else --miano_przestrzeni_nazw=uchwyt; aliases={}; end; end; end; end; ---- if((czy_alias)and(parametry_modul.CzyTak(aliases)))then if(parametry_modul["CzySąElementyNumerowaneTablicy"](aliases))then alias=mw.getContentLanguage():uc(alias); for _,value in pairs(aliases)do if((mw.getContentLanguage():uc(value))==alias)then return alias..":"..nazwa_strony_linku; end; end; end; end; if(not miano_przestrzeni_nazw)then return nil;end; local miano_przestrzeni_nazw_zmienna_tymczasowa; if(czy_biezaca)then miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"](nowa_nazwa_strony_linku,tabela_nazw) or nazwa_strony_linku; else miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"]{nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,tabela_nazw} or nazwa_strony_linku; end; if(not miano_przestrzeni_nazw_zmienna_tymczasowa)then return nil;end; return ((miano_przestrzeni_nazw_zmienna_tymczasowa~="") and (miano_przestrzeni_nazw_zmienna_tymczasowa..":") or "")..((((czy_analiza)and(not bez_przetwarzania))and(nazwa_strony_linku=="")) and "%s" or nazwa_strony_linku); else local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa=Nazwa(nazwa); return nazwa; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwa=nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and ("#"..hash) or nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); nazwa=Nazwa(nazwa); return nazwa; end; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; local nazwa=nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if(czy_nazwa_strony_pusta)then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; end; end; end; end; local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$"))))) or nil); local nazwa=czy_nazwa and (args[2] and (((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](args[2]) or args[2]) or nil) or NazwaLinkuDoStrony(); local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash,nazwa,za,po,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,czy_dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash or ((not czy_kreska_dolna) and mw.ustring.match(nazwa_strony_linku,"#") or nil),nil,nil); else return link; end; end; end; function p.ZamianaKategoriiNaLinki(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local techniczne_modul=require("Module:Techniczne"); local nazwy_np_modul=wm.loadData("Module:Nazwy/Np"); local kategoria_polska=nazwy_np_modul.Category; local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska) tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); return tekst; end; return p; 5sevu2v8usq4cdtrvfx3ab9fjuti4d9 546532 546530 2026-06-12T14:14:40Z Persino 2851 546532 Scribunto text/plain local p={}; p["PrzetłumaczZnakZastępczyNaStronę"]=function(nazwa_przestrzeni_nazw,nazwa_strony,kod_jezyka,kod_projektu,hash) local czy_pusta_nazwa_przestrzeni_nazw=mw.ustring.match(nazwa_przestrzeni_nazw,"^([%s_:]*)$"); local czy_pusta_nazwa_strony=mw.ustring.match(nazwa_strony,"^([%s_:]*)#.*$") or mw.ustring.match(nazwa_strony,"^([%s_:]*)$"); if(not czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony)then local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp; local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(not czy_biezaca)then local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} local nazwa_bazowa_strony=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_bazowa_strony)then local nazwa_strony_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=nazwa_bazowa_strony, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, ["kod języka bazy"]="pl", ["kod projektu bazy"]=(nazwa_kanoniczna_nazwy_przestrzeni_nazw~="Project")and "w" or "b", } if(nazwa_strony_na_innym_projekcie)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_na_innym_projekcie,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; else return nazwa_bazowa_strony,false; end; end; else local nazwy_modul=require("Module:Nazwy"); if(hash)then local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazw); local nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,}; if(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then return nazwy_modul["PEŁNANAZWASTRONY"](nil,tabela_nazw),true; end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"} local nazwa_strony_glownych_stron_projektu=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_strony_glownych_stron_projektu)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_glownych_stron_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; end; elseif czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} if((czy_biezaca)and(hash))then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"](),true; end; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablokalnesiostrzane=wiki_interwiki_modul.tablica_lokalne_siostrzane; if(tablokalnesiostrzane[kod_projektu])then local wiki_modul=require("Module:Wiki"); local pudelko_modul=require("Module:Pudełko"); local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"](); if(not czy_biezaca)then local nazwa_strony_glownej_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=strona_glowna_tego_projektu, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, } if(nazwa_strony_glownej_na_innym_projekcie)then return nazwa_strony_glownej_na_innym_projekcie,false; end; else return strona_glowna_tego_projektu,false; end; end; end; return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; p["PoprawLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem); local function pojedynczy_link(link) local strona=mw.ustring.match(link,"^%[%[:?([^%[%]|]*)"); local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$") or strona; local z_kodowaniem_temp=(mw.ustring.match(strona,"%%%x%x")and true or false) or z_kodowaniem; link=p.TworzenieWikiLinku(nil,nil,nil,strona,nil,nazwa,nil,nil,false,nil,nil,nil,nil,nil,nil,nil,z_kodowaniem_temp); return link; end; return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end); end; p["WydobądźLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local wartosc,_=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); local specjalne_modul=require("Module:Specjalne"); wartosc=specjalne_modul["UsuńKomentarze"](wartosc); wartosc=specjalne_modul["UsuńSzablonyStylów"](wartosc); wartosc=specjalne_modul["UsuńZnaczniki"](wartosc); wartosc=specjalne_modul["UsuńKategorie"](wartosc); wartosc=specjalne_modul["UsuńWywołaniaPlików"](wartosc); wartosc=specjalne_modul["UsuńInterwiki"](wartosc); local linki_modul=require("Module:Linki"); wartosc=linki_modul["PoprawLinki"]{wartosc,z_kodowaniem}; return wartosc; end; function p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem) if(not czy_url)then local parametry_modul=require("Module:Parametry"); local czy_klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku); local czy_kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku); local czy_kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku); local czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); local czy_po=parametry_modul.CzyTak(po); if(not czy_naglowek_strony)then if(czy_nazwa_strony_linku)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; local strona_zmienna_tymczasowa=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu) local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); if(strona_zmienna_tymczasowa and naglowek_zmienna_tymczasowa)then nazwa_strony_linku=strona_zmienna_tymczasowa; naglowek_zmienna_tymczasowa=parametry_modul["Odstępy"]{[1]=naglowek_zmienna_tymczasowa,[2]="tak",[3]="tak",}; if(parametry_modul.CzyTak(naglowek_zmienna_tymczasowa))then naglowek_strony=naglowek_zmienna_tymczasowa; czy_naglowek_strony=true; end; end; end; else naglowek_strony=parametry_modul["Odstępy"]{[1]=naglowek_strony,[2]="tak",[3]="tak",}; if(not parametry_modul.CzyTak(naglowek_strony))then czy_naglowek_strony=false; naglowek_strony=nil; end; end; --- local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local interwikimap=wiki_interwiki_modul.interwikimap; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local wiki_modul=require("Module:Wiki"); local kod_jezyka_uzyskany_poczatkowy,kod_projektu_uzyskany_poczatkowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_uzyskany_poczatkowy or kod_jezyka_tego_projektu; kod_projektu_uzyskany_poczatkowy=kod_projektu_uzyskany_poczatkowy or kod_projektu_tego_projektu; end; local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; local tablica_kodow={}; local kod_jezyka_koncowy;local kod_projektu_koncowy; --------------------------------------------------------------------- kod_jezyka_koncowy=kod_jezyka_uzyskany_poczatkowy; kod_projektu_koncowy=kod_projektu_uzyskany_poczatkowy; --------------------------------------------------------------------- local kod_jezyka_poczatkowy,kod_projektu_poczatkowy; if(czy_pelna_nazwa_strony_prawidlowa)then nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,bez_przetwarzania_kodow and tablica_kodow or nil); czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; end; ---- if(not nazwa)then nazwa=nazwa_strony_linku..(czy_naglowek_strony and ("#"..naglowek_strony) or ""); nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); czy_nazwa=parametry_modul.CzyTak(nazwa); end local ciag_tablica_kodow=""; if(bez_przetwarzania_kodow)then if(kod_jezyka_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_poczatkowy; else ciag_tablica_kodow=kod_jezyka_poczatkowy; end; elseif(kod_projektu_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_projektu_uzyskany_poczatkowy=kod_projektu_poczatkowy; else ciag_tablica_kodow=kod_projektu_poczatkowy; end; end; local ciag_tablica_kodow_zmienna_tymczasowa=table.concat(tablica_kodow,":"); ciag_tablica_kodow=ciag_tablica_kodow..(((ciag_tablica_kodow~="")and(ciag_tablica_kodow_zmienna_tymczasowa~=""))and ":" or "")..ciag_tablica_kodow_zmienna_tymczasowa; else kod_jezyka_uzyskany_poczatkowy=kod_jezyka_koncowy; kod_projektu_uzyskany_poczatkowy=kod_projektu_koncowy; end; local nazwy_modul=require("Module:Nazwy"); local czy_dyskusja=parametry_modul.CzyTak(dyskusja); local pierwsza_litera=((czy_pelna_nazwa_strony_prawidlowa)and(not czy_dyskusja)) and mw.ustring.match(nazwa_strony_linku,"^(%a)") or nil; local tabela_nazw={}; local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy},tabela_nazw) or nazwy_modul["PRZESTRZEŃDYSKUSJI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw)) or ""; local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) or ""; local linki_modul=require("Module:Linki"); local strona_inna_zmienna_tymczasowa,czy_strona_lokalna=linki_modul["PrzetłumaczZnakZastępczyNaStronę"](nazwaprzestrzeni,nazwastrony,kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); local czy_pelna_nazwa_strony_prawidlowa=((czy_pelna_nazwa_strony_prawidlowa)and(parametry_modul["CzyTakCiąg"](strona_inna_zmienna_tymczasowa) and not mw.ustring.match(strona_inna_zmienna_tymczasowa,"^[%s_:]+$")) or strona_inna_zmienna_tymczasowa); local function TabelaNazw()tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki;return tabela_nazw_temp;end; if(nazwastrony=="")then local tabela_nazw=TabelaNazw(); local nazwa_strony=nazwy_modul["NAZWASTRONY"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) local techniczne_modul=require("Module:Techniczne"); local nowa_nazwa_strony=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony); if(nazwa)then local f,ile=mw.ustring.gsub(nazwa,"%%s",function()return nil;end); if(ile==1)then nazwa=mw.ustring.format(nazwa,nowa_nazwa_strony) or nil; elseif(ile==2)then local nowa_nazwa_przestrzeni=nazwy_modul[(czy_dyskusja) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw); if(tabela_nazw.czy_aktualna_wiki)then nowa_nazwa_przestrzeni=nazwy_modul.Np{nazwa=nowa_nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nowa_nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nowa_nazwa_przestrzeni,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or nowa_nazwa_przestrzeni; end; nazwa=mw.ustring.format(nazwa,nowa_nazwa_przestrzeni,nowa_nazwa_strony) or nil; end; end; end; strona_inna_zmienna_tymczasowa=strona_inna_zmienna_tymczasowa or nazwa_strony_linku; local function NazwaStronyDyskusji(strona) if(czy_dyskusja and czy_pelna_nazwa_strony_prawidlowa)then return nazwy_modul["NAZWASTRONYDYSKUSJI"]({[1]=strona,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()); end; return strona; end; local strona_zmienna_tymczasowa=NazwaStronyDyskusji(strona_inna_zmienna_tymczasowa); nazwa_strony_linku=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw())~=nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()))))and strona_zmienna_tymczasowa or ""); nazwa_strony_linku=pierwsza_litera and mw.ustring.gsub(nazwa_strony_linku,"^["..mw.getContentLanguage():ucfirst(pierwsza_litera)..mw.getContentLanguage():lcfirst(pierwsza_litera).."]",pierwsza_litera) or nazwa_strony_linku; czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local function BiezacaWikiDwukropek() local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; local czy_wstawiac_dwukropek; if(czy_biezace_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then czy_wstawiac_dwukropek=true; end; end; return czy_wstawiac_dwukropek; end; local pudelko_modul=require("Module:Pudełko"); local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane; local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy]; local czy_kod_jezyka_uzyskany_poczatkowy=(kod_jezyka_uzyskany_poczatkowy~=kod_jezyka_tego_projektu); local czy_kod_projektu_uzyskany_poczatkowy=(kod_projektu_uzyskany_poczatkowy~=kod_projektu_tego_projektu); local html_modul=require("Module:Html"); local function AdresLinku() local kody_poczatkowe=(not projekty_nie_en and (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or(czy_kod_jezyka_uzyskany_poczatkowy and kod_jezyka_uzyskany_poczatkowy..":"..(czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or ""))); local tablica_kodow=kody_poczatkowe..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or ""); local czy_wstawiac_dwukropek=((tablica_kodow~="")and (projekty_nie_en and (czy_kod_jezyka_uzyskany_poczatkowy and ":" or "") or "") or (BiezacaWikiDwukropek() and ":" or "")); local strona;local parametry;local naglowek; if(czy_nazwa_strony_linku)then strona=html_modul.EncodeElementyAdresuStrony(nazwa_strony_linku,nil,z_kodowaniem); end; if(czy_parametry_strony)then parametry=html_modul.EncodeElementyAdresuStrony(parametry_strony,true,z_kodowaniem); parametry="?"..parametry; end; if(czy_naglowek_strony)then naglowek=html_modul.EncodeElementyAdresuStrony(naglowek_strony,nil,z_kodowaniem); naglowek="#"..naglowek; end; local zmienna_linkowa=tablica_kodow..(strona or "") ..(parametry or "")..(naglowek or ""); return zmienna_linkowa, czy_wstawiac_dwukropek; end; nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil; nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil; --nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil; if(czy_ogolne and not czy_nazwa)then if(parametry_modul.CzyTak(wyswietl))then nazwa=strona_zmienna_tymczasowa; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); else if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then nazwa=nazwastrony; else nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_uzyskany_poczatkowy,["kod projektu"]=kod_projektu_uzyskany_poczatkowy,}; end; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); end end; local zmienna_linkowa; local aktywny; if(not czy_wewnetrzny_z_fullurl)then local czy_wstawiac_dwukropek; zmienna_linkowa,czy_wstawiac_dwukropek=AdresLinku(); zmienna_linkowa=mw.ustring.gsub(zmienna_linkowa,"[%s_]+"," "); local czy_za=parametry_modul.CzyTak(za); if(czy_za or(nazwa and (nazwa~=zmienna_linkowa)))then zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa..(czy_nazwa and "|"..nazwa..(czy_za and za or "") or (czy_za and ("|"..zmienna_linkowa..za) or "")).."]]"..(czy_po and po or ""); else zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa.."]]"..(czy_po and po or ""); end aktywny=false; else aktywny=true; local serwer; local projekt; if(projekty_nie_en)then for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie)do if(kod_projektu_uzyskany_poczatkowy==kod_projektu_interwiki)then projekt=kod_specjalny_projektu; end; end; end; local function Protocol(kod_projektu) local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; if(not url)then return "";end; return mw.ustring.match(url,"^([^/]*)//"); end; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local nazwy_np_modul=require("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special); local ciag_tablica_kodow_zmienna_tymczasowa=mw.ustring.gsub(strona_zmienna_tymczasowa,"[%s_]+","_"); if(((projekt)and(czy_parametry_strony)and(czy_specjalna))or((projekt)and(wersja_linku=="w")))then local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony)and(czy_specjalna))or((not projekty_nie_en)and(wersja_linku=="w")))then local techniczne_modul=require("Module:Techniczne"); local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)") local adres=serwer.."/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((projekt)and(czy_parametry_strony))or((projekt)and(wersja_linku=="wiki")))then local strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[_%s]+","_"); local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/wiki/"..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and " "..nazwa..(parametry_modul.CzyTak(za) and za or "") or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony))or((not projekty_nie_en)and(wersja_linku=="wiki")))then local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local strona_zmienna_tymczasowa,_=mw.ustring.gsub(ciag_tablica_kodow_zmienna_tymczasowa,"[_%s]+","_"); strona_zmienna_tymczasowa=((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; strona_zmienna_tymczasowa=html_modul.EncodeHtml(strona_zmienna_tymczasowa); strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"([%%])(%d+)","%%%%%2"); strona_zmienna_tymczasowa,_=mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_zmienna_tymczasowa); local adres=strona_zmienna_tymczasowa..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); else local pudelko_modul=require("Module:Pudełko"); zmienna_linkowa=(parametry_modul.CzyTak(klucz_projektu)and ((not(klucz_projektu==pudelko_modul["Klucz projektu tego projektu"]()))and (klucz_projektu..":")or "" ) or ((parametry_modul.CzyTak(kod_jezyka_uzyskany_poczatkowy)and ((not(kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]()))and(kod_jezyka_uzyskany_poczatkowy..":")or "") or "")..(parametry_modul.CzyTak(kod_projektu_uzyskany_poczatkowy)and ((not(kod_projektu_uzyskany_poczatkowy==pudelko_modul["Kod projektu tego projektu"]()))and(kod_projektu_uzyskany_poczatkowy..":")or "") or ""))) ..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; local strona=(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); local adres=tostring(mw.uri.fullUrl(zmienna_linkowa))..strona; zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); end; end; return zmienna_linkowa,kod_jezyka_koncowy,kod_projektu_koncowy,strona_zmienna_tymczasowa,czy_naglowek_strony,aktywny; else local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local czy_nazwa; if(not nazwa)then nazwa=mw.ustring.match(nazwa_strony_linku,"//[^/]*/(.*)$"); nazwa=html_modul.DecodeHtml(nazwa); czy_nazwa=parametry_modul.CzyTak(nazwa); else czy_nazwa=parametry_modul.CzyTak(nazwa); end; local czy_po=parametry_modul.CzyTak(po); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"[%s_]+","_"); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"//([^/]*)/(.*)$", function(s1,s2)return "//"..s1.."/"..html_modul.EncodeHtml(s2);end) local adres=nazwa_strony_linku..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "") ..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony)) or ""); local zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); return zmienna_linkowa,nil,nil,nazwa_strony_linku,czy_naglowek_strony,false; end; end; function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,za,po,z_kodowaniem) local parametry_modul=require("Module:Parametry"); local adres=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or ""))) ..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or ""); local html_modul=require("Module:Html"); adres=html_modul.AdresProjektuEncodeHtml(adres,z_kodowaniem); local wartosc="[[:"..adres..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..(po and po or ""); return wartosc; end; function p.LinkOgromne(spanramka,link) local max_len_link=0; local iter=mw.ustring.gmatch(link,"(%a+)"); for value in iter do max_len_link=math.max(max_len_link,#value);end; if(max_len_link>=20)then spanramka:addClass("link-ogromne");end; end; function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,czy_naglowek,czy_url,czy_parametry,aktywny) local wiki_modul=require("Module:Wiki"); local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=czy_naglowek,["url"]=czy_url,["parametry"]=czy_parametry,["aktywny"]=aktywny,}; local nazwy_modul=require("Module:Nazwy"); local spanramka=mw.html.create('span'); spanramka:addClass(klasa); spanramka:addClass("link"); ---- p.LinkOgromne(spanramka,link); ---- spanramka:wikitext(link); return tostring(spanramka:allDone()); end; function p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem) local parametry_modul=require("Module:Parametry"); parametry_strony=czy_wewnetrzny_z_fullurl and parametry_strony or nil; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local html_modul=require("Module:Html"); nazwa_strony_linku=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony_linku); local wartosc_parent,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,aktywny=p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem); if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end; return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony,aktywny); end; function p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,naglowek,czy_link_url,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,__FUNKCJA) local nowa_nazwa_strony_linku; local czy_kreska_dolna;local hash;local prze_nie_main; local czy_strona_lokalna; if(not czy_analiza)then czy_kreska_dolna=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$") or mw.ustring.match(nazwa_strony_linku,":[%s_]*$"); hash=(not czy_kreska_dolna)and ((not czy_link_url) and mw.ustring.match(nazwa_strony_linku,"^[_%s]*#(.*)$") or nil) or (((czy_kreska_dolna)and(czy_link_url) and require("Module:Parametry").CzyTak(naglowek)) and naglowek or nil); if((czy_kreska_dolna)or(hash))then local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local miano_przestrzeni_nazw_maly=((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))and mw.ustring.lower(miano_przestrzeni_nazw) or miano_przestrzeni_nazw; if((not miano_przestrzeni_nazw_maly)or((miano_przestrzeni_nazw_maly=="")or(miano_przestrzeni_nazw_maly=="(main)")or(miano_przestrzeni_nazw_maly=="(główna)")))then miano_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); end; local nazwa_strony=nazwy_modul["NAZWASTRONY"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); if(nazwa_strony=="")then nowa_nazwa_strony_linku,czy_strona_lokalna=p["PrzetłumaczZnakZastępczyNaStronę"](miano_przestrzeni_nazw or "","",kod_jezyka,kod_projektu,hash); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; nowa_nazwa_strony_linku=__FUNKCJA(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main); return nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; end; p["GanerujSkładoweURL"] = function(args) local klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku; local miano_przestrzeni_nazw; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local html_modul=require("Module:Html"); nazwa_strony_linku=nazwa_strony_linku and html_modul.DecodeHtml(nazwa_strony_linku) or nil; local parametry_modul=require("Module:Parametry"); local w=args["wersja linku"] or args["w"]; local tab_w={ ["w"]=true, ["wiki"]=true, }; local wersja_linku=parametry_modul.CzyTak(w) and (tab_w[w] and w or nil) or ""; local _; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_strony_linku); local parametry_strony;local naglowek_strony;local nazwa;local po;local po;local za; nazwa=args["nazwa"] or args["n"]; po=args["po"] or args["p"]; za=args["za"] or args["z"]; local function DaneStrony(nazwa_strony_linku_parametr,adres) if(parametry_modul.CzyTak(nazwa_strony_linku_parametr))then if(mw.ustring.match(nazwa_strony_linku_parametr,"^/wiki/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/wiki/",""); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); elseif(mw.ustring.match(nazwa_strony_linku_parametr,"^/w/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/w/",""); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony,true); parametry_strony=parametry_strony_jednostki or parametry_strony; nazwa_strony_linku_parametr=nazwa_strony_jednostki or nazwa_strony_linku_parametr; else nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/(.*)$","%1"); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); end; else if((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku))or(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)))then if((not adres)or(mw.ustring.match(adres,"/$1$")))then local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku_parametr=pudelko_modul["Nazwa strony głównej projektu 2"]{[1]=kod_jezyka_do_projektu_linku,[2]=kod_projektu_do_projektu_linku,} or ""; end; end; end; parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); local biezaca=args["bieżąca"] or args["b"]; local czy_biezaca=parametry_modul.CzyTak(biezaca); nazwa=nazwa or (czy_biezaca and naglowek_strony or nil); --nazwa=args["nazwa"] or args["n"]; local klucz_projektu_do_projektu_linku_temp=args["klucz projektu"] or args["k"]; klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku_temp) and (klucz_projektu_do_projektu_linku_temp) or klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku_temp=args["kod języka"] or args["kj"]; kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku_temp) and (kod_jezyka_do_projektu_linku_temp) or kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku_temp=args["kod projektu"] or args["kp"]; kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku_temp) and (kod_projektu_do_projektu_linku_temp) or kod_projektu_do_projektu_linku; nazwa_strony_linku=nazwa_strony_linku_parametr; czy_url=false; end; if(not czy_url)then local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; nazwa_strony_linku=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw) and miano_przestrzeni_nazw..":"..nazwa_strony_linku or nazwa_strony_linku; DaneStrony(nazwa_strony_linku); else local html_modul=require("Module:Html"); local nazwa_strony_bez_protokolu=html_modul["UrlBezProtokołu"](nazwa_strony_linku); local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_bez_protokolu); local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local function SerwerWiki(serwer) local kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org"); if((not kod_jezyka_zmienna_tymczasowa)or(not kod_specjalny_projektu))then kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.[mM]%.(%w+)%.org"); end; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu]; local kod_jezyka=kod_jezyka_zmienna_tymczasowa and (mw.language.isKnownLanguageTag(kod_jezyka_zmienna_tymczasowa) and kod_jezyka_zmienna_tymczasowa or nil) or nil; return kod_jezyka,kod_projektu; end; local function JezykoweLubAngielskieProjekty(serwer_portalu) local kod_jezyka,kod_projektu=SerwerWiki(serwer_portalu); if(kod_jezyka and kod_projektu)then kod_jezyka_do_projektu_linku=kod_jezyka; kod_projektu_do_projektu_linku=kod_projektu; klucz_projektu_do_projektu_linku=nil; DaneStrony(nazwa_strony); return true; else local pozajezykoweprojektysiostrzane=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane; local techniczne_modul=require("Module:Techniczne"); for kod, url in pairs(pozajezykoweprojektysiostrzane)do local adres=html_modul["UrlBezProtokołu"](url); local serwer_portalu,nazwa_strony_portalu=html_modul["URLStrona"](adres); if(serwer_portalu)then if((serwer_portalu==serwer)and((mw.ustring.match(nazwa_strony_portalu,"%$1"))or(nazwa_strony==nazwa_strony_portalu)))then kod_jezyka_do_projektu_linku=kod_jezyka or "en"; kod_projektu_do_projektu_linku=--[[kod_projektu or]] kod; local nazwa_strony_spreparowana=nil; if(not mw.ustring.match(adres,"/wiki/%$1$"))then if(mw.ustring.match(url,"[:/]$1$"))then local url_wzor=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](adres); url_wzor=mw.ustring.gsub(url_wzor,"(%%$1)$","(.-)"); nazwa_strony_spreparowana=mw.ustring.match(nazwa_strony_bez_protokolu,"^"..url_wzor.."$"); if(not nazwa_strony_spreparowana)then return false; end; end; end; DaneStrony(nazwa_strony_spreparowana or nazwa_strony,adres); return true; end; end; end; end; end; local function __FUNKCJA() if(mw.ustring.match(serwer,"^upload%.wikimedia%.org$"))then DaneStrony(nazwa_strony); nazwa_strony=nazwa_strony_linku; nazwa_strony_linku="Media:"..mw.ustring.match(nazwa_strony,"([^/]*)$"); local kod_projektu_do_projektu_linku2,kod_jezyka_do_projektu_linku2=mw.ustring.match(nazwa_strony,"^([^/]*)/([^/]*)/.*$"); kod_jezyka_do_projektu_linku=kod_jezyka_do_projektu_linku or kod_jezyka_do_projektu_linku2; kod_projektu_do_projektu_linku=kod_projektu_do_projektu_linku or kod_projektu_do_projektu_linku2; czy_url=false; else local juz_tak=JezykoweLubAngielskieProjekty(serwer); if(not juz_tak)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); local biezaca=args["bieżąca"] or args["b"]; local czy_biezaca=parametry_modul.CzyTak(biezaca); nazwa=nazwa or (czy_biezaca and naglowek_strony or nil); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); end; end; end; __FUNKCJA(); end; local czy_wewnetrzny_z_fullurl; if(not parametry_modul.CzyTak(parametry_strony))then if(wersja_linku=="")then if((klucz_projektu_do_projektu_linku)or(kod_jezyka_do_projektu_linku)or(kod_projektu_do_projektu_linku))then czy_wewnetrzny_z_fullurl=false; elseif(not czy_url)then czy_wewnetrzny_z_fullurl=false; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; return klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url; end; p["Link wewnętrzny"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local nazwa=args["nazwa"] or args["n"]; local czy_nazwa=parametry_modul.CzyTak(nazwa); nazwa=czy_nazwa and nazwa or nil; local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; local naglowek_strony=args["nagłówek"] or args["g"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"] or args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"] or args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]or args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"] or args["u"]); local czy_analiza=parametry_modul.CzyTak(args["analiza"] or args["a"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if(not czy_analiza)then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=czy_nazwa and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((not czy_naglowek)and(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$")))) or nil); if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek and naglowek_strony or hash,nazwa,za,po,nil,nil,nil,nil,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),czy_naglowek and naglowek_strony or hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony or hash or mw.ustring.match(nazwa_strony_linku,"#"),nil,nil); else return link; end; end; end; p["LinkURL"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if((not czy_analiza)and(not czy_url))then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=parametry_modul.CzyTak(nazwa) and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$"))) or nil); local function Bez_przetwarzania_lub_bez_znaczkow() if(parametry_modul.CzyTak(bez_przetwarzania))then local bez_znacznikow=parametry_modul.CzyTak(bez_znacznikow); local czy_parametry=parametry_modul.CzyTak(parametry_strony); local wartosc=((not czy_url)and((parametry_modul.CzyTak(klucz_projektu_do_projektu_linku)and (klucz_projektu_do_projektu_linku..":") or ((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku)and (kod_jezyka_do_projektu_linku..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nowa_nazwa_strony_linku) or nil); local link; local po_linku=parametry_modul.CzyTak(po) and po or ""; if((not czy_url)and((czy_parametry)or(parametry_modul.CzyTak(wersja_linku))))then local adres=tostring(mw.uri.fullUrl(wartosc,"")); adres=((not parametry_modul.CzyTak(wersja_linku))or(wersja_linku=="wiki")) and adres or mw.ustring.gsub(adres,"/wiki/","/w/index.php?title=",1); local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ((((wersja_linku=="w")) and "&" or "?")..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") adres=adres..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; elseif(czy_url)then local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") local adres=nowa_nazwa_strony_linku..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; else local naglowek=(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or ""); local adres=wartosc..naglowek; link="[[:"..adres..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..po_linku; end; if not bez_znacznikow then local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony); else return link; end; end; end; local wynik=Bez_przetwarzania_lub_bez_znaczkow();if(wynik)then return wynik;end; return linki_modul.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); end; function p.UzyskajKodWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); kod_jezyka_koncowy=parametry_modul.CzyTak(kod_jezyka_koncowy) and kod_jezyka_koncowy or pudelko_modul["Kod języka tego projektu"](); kod_projektu_koncowy=parametry_modul.CzyTak(kod_projektu_koncowy) and kod_projektu_koncowy or pudelko_modul["Kod projektu tego projektu"](); local aktywny; local czy_nazwa=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_nazwa or not mw.ustring.match(nazwa_strony_linku,"_+"))then if((not czy_nazwa)and((not kod_jezyka_koncowy)or(kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]()))and((not kod_projektu_koncowy)or(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())))then if((parametry_modul.CzyTak(naglowek_strony)) or (not args["strona"] or args["strona"]=="") or ((args["strona"])and(mw.ustring.match(args["strona"],"^[_%s]*#[_%s]*$"))or(nil)))then aktywny=false; local nazwy_modul=require("Module:Nazwy"); nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"](); end; else aktywny=true; end; else aktywny=true; local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku=pudelko_modul["Strona główna tego projektu"](); end; local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy); --- local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_pusta_nazwa_strony_linku)then local linki_modul=require("Module:Linki"); nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); end; ---- local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=nil,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["strona"]=nazwa_strony_linku,["nagłówek"]=czy_naglowek_strony,["url"]=czy_url,["parametry"]=czy_parametry_strony,["aktywny"]=aktywny,}; return klasa; end; p["LinkOgólne"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; local czy_dyskusja=parametry_modul.CzyTak(args["dyskusja"] or args["d"]); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"]; local nazwa_strony_linku=args[1] or "_"; local czy_nazwa=parametry_modul.CzyTak(args[2]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; local czy_niepusta_nazwa_przestrzeni_nazw; local nazwy_modul=require("Module:Nazwy"); local czy_aktualna_wiki; if(not czy_analiza)then local tabela_nazw={}; miano_przestrzeni_nazw=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or ""; nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,nil,nil,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) if(czy_dyskusja)then local tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; nowa_nazwa_strony_linku=nazwy_modul["NAZWASTRONYDYSKUSJI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["bez zmiany adresu"]="tak",},tabela_nazw_temp); end; return nowa_nazwa_strony_linku; end); czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; local tabela_nazw={};tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; local czy_biezaca; local czy_nazwa_strony_pusta; local wiki_modul=require("Module:Wiki"); if((czy_dyskusja)or(czy_analiza))then czy_nazwa_strony_pusta=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"); if((not czy_nazwa_strony_pusta)or((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~="")))then if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local nazwy_modul=require("Module:Nazwy"); if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"](nowa_nazwa_strony_linku,tabela_nazw); else miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); end; czy_niepusta_nazwa_przestrzeni_nazw=parametry_modul.CzyTak(miano_przestrzeni_nazw); end; elseif(hash or czy_kreska_dolna)then czy_niepusta_nazwa_przestrzeni_nazw=true; elseif(not prze_nie_main)then miano_przestrzeni_nazw=""; czy_niepusta_nazwa_przestrzeni_nazw=false; else miano_przestrzeni_nazw=prze_nie_main; czy_niepusta_nazwa_przestrzeni_nazw=true; end; local techniczne_modul=require("Module:Techniczne"); local czy_wyswietl_miano_przestrzeni_nazw=parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw); local function NazwaLinkuDoStrony() local function CzyPrzestrzen(miano_przestrzeni_nazw) local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local miano_przestrzeni_nazw; if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else miano_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; end; return miano_przestrzeni_nazw; end; local function Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw) if(czy_wyswietl_miano_przestrzeni_nazw)then return nazwa; else nazwa=nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); if(tabela_nazw.m)then nazwa=mw.getContentLanguage():lcfirst(nazwa); end; return nazwa; end; end; local function Nazwa(nazwa) local ile;local ile2=0; if((czy_analiza) and (not bez_przetwarzania))then nazwa=techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nazwa_przestrzeni..":".."%s"; end; ile2=ile+1; end); else nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nowa_nazwa_strony_linku; end; ile2=ile2+1; end); end; if(ile-ile2==0)then return Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw); else return nazwa; end; end; local function NazwaFormat(wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta) if((not czy_analiza)or(bez_przetwarzania))then return nil;end; if(czy_wyswietl_miano_przestrzeni_nazw)then if(czy_nazwa_strony_pusta)then if(not miano_przestrzeni_nazw)then return "%s:%s"; else return miano_przestrzeni_nazw..((miano_przestrzeni_nazw~="") and ":" or "").."%s"; end; end; else if(czy_nazwa_strony_pusta)then return "%s"; end; end; end; if(czy_niepusta_nazwa_przestrzeni_nazw)then if(czy_wyswietl_miano_przestrzeni_nazw)then if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then nazwa_strony_linku=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa_strony_linku) or nazwa_strony_linku; if((czy_nazwa_strony_pusta)and(czy_analiza)and(not bez_przetwarzania))then nazwa_strony_linku="%s";end; ---- local aliases; local alias=args["alias miana przestrzeni nazw"] or args["alias"] or args["i"]; local czy_alias=parametry_modul.CzyTak(alias); if(czy_alias)then if((not czy_dyskusja)and(not czy_analiza))then local wiki_modul=require("Module:Wiki"); if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; end; if(czy_biezaca)then local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak"} if(uchwyt)then aliases=uchwyt.aliases; --miano_przestrzeni_nazw=uchwyt.name; end; else local uchwyt=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(uchwyt)then if(parametry_modul.TypeTable(uchwyt))then aliases=uchwyt.aliasy; --miano_przestrzeni_nazw=uchwyt[1]; else --miano_przestrzeni_nazw=uchwyt; aliases={}; end; end; end; end; ---- if((czy_alias)and(parametry_modul.CzyTak(aliases)))then if(parametry_modul["CzySąElementyNumerowaneTablicy"](aliases))then alias=mw.getContentLanguage():uc(alias); for _,value in pairs(aliases)do if((mw.getContentLanguage():uc(value))==alias)then return alias..":"..nazwa_strony_linku; end; end; end; end; if(not miano_przestrzeni_nazw)then return nil;end; local miano_przestrzeni_nazw_zmienna_tymczasowa; if(czy_biezaca)then miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"](nowa_nazwa_strony_linku,tabela_nazw) or nazwa_strony_linku; else miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"]{nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,tabela_nazw} or nazwa_strony_linku; end; if(not miano_przestrzeni_nazw_zmienna_tymczasowa)then return nil;end; return ((miano_przestrzeni_nazw_zmienna_tymczasowa~="") and (miano_przestrzeni_nazw_zmienna_tymczasowa..":") or "")..((((czy_analiza)and(not bez_przetwarzania))and(nazwa_strony_linku=="")) and "%s" or nazwa_strony_linku); else local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa=Nazwa(nazwa); return nazwa; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwa=nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and ("#"..hash) or nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); nazwa=Nazwa(nazwa); return nazwa; end; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; local nazwa=nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if(czy_nazwa_strony_pusta)then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; end; end; end; end; local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$"))))) or nil); local nazwa=czy_nazwa and (args[2] and (((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](args[2]) or args[2]) or nil) or NazwaLinkuDoStrony(); local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash,nazwa,za,po,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,czy_dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash or ((not czy_kreska_dolna) and mw.ustring.match(nazwa_strony_linku,"#") or nil),nil,nil); else return link; end; end; end; function p.ZamianaKategoriiNaLinki(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local techniczne_modul=require("Module:Techniczne"); local nazwy_np_modul=wm.loadData("Module:Nazwy/Np"); local kategoria_polska=nazwy_np_modul.Category; local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska) tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); return tekst; end; return p; o0znepbio97vogny1s78m16eotf3rwx Moduł:StronicowyParser/NumerObiektu 828 59499 546522 544474 2026-06-12T12:06:20Z Persino 2851 546522 Scribunto text/plain local p={}; function p.NumerObiektu(frame, nazwa_obiektu) local pf=frame:getParent(); local parametry_modul=require("Module:Parametry"); local uchwyt_obiektu=frame.args["uchwyt"]; local bez_automatu=parametry_modul.CzyTak(frame.args["bez automatu"]); local html_modul=require("Module:Html"); uchwyt_obiektu=uchwyt_obiektu and html_modul.DecodeHtml(uchwyt_obiektu,true) or nil; local nazwa_strony; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local techniczne_modul=require("Module:Techniczne"); local szablonowe_modul=require("Module:Szablonowe"); local nazwa_przestrzeni;local nazwa_przestrzeni_ksiazki;local nazwa_ksiazki;local nazwa_artykulu; nazwa_artykulu=frame.args["nazwa artykułu"]; nazwa_ksiazki=frame.args["nazwa książki"]; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local czy_table_tablica_transportu=parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki); local czy_aktualna_strona=nil; local nazwa_przestrzeni_nazw=pf.args["nazwa przestrzeni nazw"]; local nazwa_jednostki=pf.args["nazwa jednostki"]; if((nazwa_przestrzeni_nazw) or (nazwa_jednostki))then if(((not nazwa_artykulu)and(not nazwa_ksiazki)) or((nazwa_artykulu)and(not nazwa_ksiazki)))then if(nazwa_przestrzeni_nazw)then nazwa_przestrzeni_nazw=html_modul.DecodeHtml(nazwa_przestrzeni_nazw,true); end; if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local ksiazkowe_modul=require("Module:Książkowe"); local tabela_nazw_poczatkowe={}; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_poczatkowe); local nazwa_jednostki=nazwa_jednostki or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_poczatkowe); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={};local tabela_nazw_aktualna={}; strona=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw); local aktualna_strona=ksiazkowe_modul["PełnaNazwaArtykułu"](nil,tabela_nazw_aktualna); if(strona~=aktualna_strona)then nazwa_artykulu=nazwa_artykulu or nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki_aktualna=ksiazkowe_modul["PełnaNazwaKsiążki"](nil,tabela_nazw_aktualna); local nazwa_ksiazki_strony=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw); if(nazwa_ksiazki_aktualna~=nazwa_ksiazki_strony)then nazwa_ksiazki=nazwa_ksiazki or nazwa_ksiazki_strony; end; end; end; end; if((not nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=1; nazwa_strony=""; elseif((nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=2; nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; end; end; else local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu); nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true); nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,}; local ksiazkawe_modul=require("Module:Książkowe"); local tabela_nazw={}; nazwa_ksiazki=ksiazkawe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); if((nazwa_artykulu)and(nazwa_artykulu~=""))then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; else nazwa_artykulu=""; end; nazwa_strony=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; nazwa_strony=strona; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; else czy_aktualna_strona=2; nazwa_strony=strona; end; end; end; local link = function(adres_linku,nazwa_linku,klasa,styl,link_wikidane) local czy_klasa=parametry_modul.CzyTak(klasa); local czy_styl=parametry_modul.CzyTak(styl); local spanramka_dziecko=mw.html.create('span'); if(czy_klasa)then spanramka_dziecko:attr("class",klasa);end; if(czy_styl)then spanramka_dziecko:attr('style',styl);end; spanramka_dziecko:wikitext(nazwa_linku); local kod_html=tostring(spanramka_dziecko:allDone()); ---- local spanramka=mw.html.create('span'); if((link_wikidane)and(link_wikidane[1]))then spanramka:addClass(link_wikidane[1]); spanramka:addClass("link"); end; ---- local linki_modul=require("Module:Linki"); linki_modul.LinkOgromne(spanramka,nazwa_linku); ---- local link="[["..adres_linku.."|"..kod_html.."]]"; spanramka:wikitext(link); local kod_html=spanramka:allDone(); return tostring(kod_html); end; local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu) local divramka=mw.html.create('div'); local parametry_modul=require("Module:Parametry"); local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"wzór_"..html_modul.EncodeId(uchwyt,true)); else if(numeracja)then divramka:attr('id',"wzór_"..numeracja); else divramka:attr('id',"niedopasowany-wzór_"..html_modul.EncodeId(uchwyt,true)); end; end; end; if(parametry_modul.CzyTak(styl_main))then divramka:attr('style',styl_main); end; local uchwyt_fun=function() if(parametry_modul.CzyTak(uchwyt))then local divuchwytramka=mw.html.create('div'); divuchwytramka:attr('class',klasa_numeracji); divuchwytramka:attr('style',styl_numeracji); if(parametry_modul.CzyTak(bez_automatu))then divuchwytramka:wikitext('(',uchwyt..")"); else if(numeracja)then divuchwytramka:wikitext('('..numeracja..")"); else divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")"); end; end; divramka:node(divuchwytramka); end; end; local pole_odstepu_fun=function() divramka:addClass("wzory"); local divramka2=mw.html.create('div'); divramka2:attr('style',styl_odstepu); divramka2:wikitext(pole_odstepu); divramka:node(divramka2); end; local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu) if(parametry_modul.CzyTak(opis))then local divramka5=mw.html.create('div') divramka5:attr('class',klasa_opisu) divramka5:attr('style',styl_opisu) divramka5:wikitext(wzor_opisu) divramka:node(divramka5) else local divramka5=mw.html.create('div'); divramka5:attr('style',styl_alternatywy_opisu); divramka:node(divramka5) end; end; if(not czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2); local divramka4=mw.html.create('div'); divramka4:attr('class',klasa_wzoru); divramka4:attr('style',styl_wzoru); divramka4:wikitext(wzor); divramka:node(divramka4); opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu); if(czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; return tostring(divramka:allDone()); end; local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu) local czy_uchwyt=parametry_modul.CzyTak(uchwyt); local id; if(czy_uchwyt)then if(numeracja)then if(parametry_modul.CzyTak(bez_automatu))then id="rysunek_"..html_modul.EncodeId(uchwyt,true); else id="rysunek_"..numeracja; end; else id="niedopasowany-rysunek_"..html_modul.EncodeHtml(uchwyt,true); end; end; local czy_opis=parametry_modul.CzyTak(opis); local plik_modul=require("Module:Plik"); local wywolanie_rysunku=plik_modul.Plik{ plik=((rysunek)and rysunek or "Przykładowy rysunek.svg"), id=id, styl=styl, klasa=klasa, ramka="mały", pozycja=pozycja or "prawo", rozmiar=(rozmiar or "200px"), opis=((czy_uchwyt or czy_opis)and (((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or ""), }; --local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]"; return tostring(wywolanie_rysunku); end; local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu) local divramka=mw.html.create('div'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',przedrostek.."_"..html_modul.EncodeId(uchwyt,true)); else divramka:attr('id',((not numeracja)and "niedopasowany-" or "")..przedrostek.."_"..(numeracja or html_modul.EncodeId(uchwyt,true))); end; end; divramka:attr('class',klasa); divramka:attr('style',styl); local wikitext=""; if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then wikitext="("..przedrostek2.." "..uchwyt..")"; else if(numeracja)then wikitext="("..przedrostek2.." "..numeracja..")"; else wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")"; end; end; end; if(parametry_modul.CzyTak(styl_naglowka))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_naglowka); spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); divramka:node(spanramka); else divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); end; divramka:wikitext('<BR>'); if(parametry_modul.CzyTak(styl_tekstu))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_tekstu); spanramka:wikitext(tekst); divramka:node(spanramka); else divramka:wikitext(tekst); end; return tostring(divramka:allDone()); end; local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu) local spanramka=mw.html.create('sup'); spanramka:attr('style',klasa); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then spanramka:attr('id',przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); else if(parametry_modul.CzyTak(numeracja))then spanramka:attr('id',przedrostek_id.."_"..numeracja); else spanramka:attr('id',"niedopasowany-"..przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); end; end; end; spanramka:attr('style',styl); local smallramka=mw.html.create('small'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then smallramka:wikitext('['..prefiks..": "..uchwyt..']'); else if(parametry_modul.CzyTak(numeracja))then smallramka:wikitext('['..prefiks..": "..numeracja..']'); else smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']'); end; end; else smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]"); end; spanramka:node(smallramka); return tostring(spanramka:allDone()); end; local nazwa_strony_fun=function(nazwa_strony) if((nazwa_strony)and(nazwa_strony==""))then return "";end; if(czy_aktualna_strona)then if(czy_aktualna_strona==1)then return ""; elseif(czy_aktualna_strona==2)then if(tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return "";end; end; else if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and (tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then return ""; end; end; return html_modul.EncodeId(nazwa_strony); end; local function BladTablicyTransportu(czy_table_tablica_transportu) if(not czy_table_tablica_transportu)then local blad_modul=require("Module:Błąd"); return blad_modul.error{tekst="Błąd stronicowego parsera: '''Moduł:StronicowyParser'''. Tablica silnika transportu lub jego składowe przyjmują wartość nietabelkową.",tag="strong",}; end; return ""; end; local function BezNumeracjiZUchwytami() if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(uchwyt_obiektu)then local uchwyt_obiektu=html_modul.EncodeId(uchwyt_obiektu,true); return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; else local uchwyt_obiektu=parametry_modul.CzyTak(uchwyt_obiektu) and html_modul.EncodeId(uchwyt_obiektu,true) or nil; return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..(uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; end; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return uchwyt_obiektu; end; else return uchwyt_obiektu; end; end; if((not czy_table_tablica_transportu)or(parametry_modul.CzyTak(frame.args["bez automatu"])))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(czy_table_tablica_transportu); end; local link_wikidane; local tabela_listy_uchwytow_i_numeracji_na_stronie; if(czy_aktualna_strona==nil)then local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(dane_analizy_artykulu)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; link_wikidane=tabela_listy_analizy_na_stronie.link_wikidane; end; end; end; end; end; end; elseif(czy_aktualna_strona==1)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu; link_wikidane=tabela_listy_danych_analizy_ksiazki.link_wikidane; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_na_stronie))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; elseif(czy_aktualna_strona==2)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; link_wikidane=tabela_listy_analizy_na_stronie.link_wikidane; end; end; end; end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); if(tabela_listy_uchwytow_i_numeracji_na_stronie)then local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu]; local uchwyty_bez_numeracji=spis_uchwytow.uchwyty_bez_numeracji; spis_uchwytow=uchwyty_bez_numeracji or spis_uchwytow; if(spis_uchwytow)then if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then local UchwytObiektu=function(uchwyt_obiektu) if(uchwyty_bez_numeracji)then return uchwyt_obiektu[1]; end; return uchwyt_obiektu; end; for _, dany_artykul in ipairs(spis_uchwytow)do if(UchwytObiektu(dany_artykul[1])==uchwyt_obiektu)then if(not uchwyty_bez_numeracji)then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(not dany_artykul[2])then return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; end; return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="tekst")then local tekst=dany_artykul[2]; if(tekst)then local tekst=pf:preprocess(tekst); return tekst; end; return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else if(dany_artykul[2])then local tytul_szablonu=frame.args["nazwa szablonu"] or szablonowe_modul.NazwaSzablonu(frame:getParent():getTitle()); local tab_naglowek=stronicowyparser_obiekty_modul.linki_szablony_wprowadzenia_tekstu[nazwa_obiektu]; local adres=dany_artykul[2][2]; local czy_w_tym_szablony=mw.ustring.match(adres,"{{[^{}]+}}"); if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); adres=specjalne_modul["PrzetwórzNagłówek"](adres,true); end; local adres=dany_artykul[2][1].."#"..adres; if(tytul_szablonu==tab_naglowek[1])then local naglowek=dany_artykul[2][3]; if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false); end; return link(adres,naglowek,frame.args["klasa"],frame.args["styl"]) elseif(tytul_szablonu==tab_naglowek[2])then return link(adres,"tutaj",frame.args["klasa"],frame.args["styl"]) end; end; end; end; end; end; end; end; if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..html_modul.EncodeId(uchwyt_obiektu,true),frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; end; return p; d8kja51tk089czldemyz27veb28q19y 546525 546522 2026-06-12T12:30:31Z Persino 2851 546525 Scribunto text/plain local p={}; function p.NumerObiektu(frame, nazwa_obiektu) local pf=frame:getParent(); local parametry_modul=require("Module:Parametry"); local uchwyt_obiektu=frame.args["uchwyt"]; local bez_automatu=parametry_modul.CzyTak(frame.args["bez automatu"]); local html_modul=require("Module:Html"); uchwyt_obiektu=uchwyt_obiektu and html_modul.DecodeHtml(uchwyt_obiektu,true) or nil; local nazwa_strony; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local techniczne_modul=require("Module:Techniczne"); local szablonowe_modul=require("Module:Szablonowe"); local nazwa_przestrzeni;local nazwa_przestrzeni_ksiazki;local nazwa_ksiazki;local nazwa_artykulu; nazwa_artykulu=frame.args["nazwa artykułu"]; nazwa_ksiazki=frame.args["nazwa książki"]; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local czy_table_tablica_transportu=parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki); local czy_aktualna_strona=nil; local nazwa_przestrzeni_nazw=pf.args["nazwa przestrzeni nazw"]; local nazwa_jednostki=pf.args["nazwa jednostki"]; if((nazwa_przestrzeni_nazw) or (nazwa_jednostki))then if(((not nazwa_artykulu)and(not nazwa_ksiazki)) or((nazwa_artykulu)and(not nazwa_ksiazki)))then if(nazwa_przestrzeni_nazw)then nazwa_przestrzeni_nazw=html_modul.DecodeHtml(nazwa_przestrzeni_nazw,true); end; if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local ksiazkowe_modul=require("Module:Książkowe"); local tabela_nazw_poczatkowe={}; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_poczatkowe); local nazwa_jednostki=nazwa_jednostki or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_poczatkowe); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={};local tabela_nazw_aktualna={}; strona=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw); local aktualna_strona=ksiazkowe_modul["PełnaNazwaArtykułu"](nil,tabela_nazw_aktualna); if(strona~=aktualna_strona)then nazwa_artykulu=nazwa_artykulu or nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki_aktualna=ksiazkowe_modul["PełnaNazwaKsiążki"](nil,tabela_nazw_aktualna); local nazwa_ksiazki_strony=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw); if(nazwa_ksiazki_aktualna~=nazwa_ksiazki_strony)then nazwa_ksiazki=nazwa_ksiazki or nazwa_ksiazki_strony; end; end; end; end; if((not nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=1; nazwa_strony=""; elseif((nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=2; nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; end; end; else local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu); nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true); nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,}; local ksiazkawe_modul=require("Module:Książkowe"); local tabela_nazw={}; nazwa_ksiazki=ksiazkawe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); if((nazwa_artykulu)and(nazwa_artykulu~=""))then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; else nazwa_artykulu=""; end; nazwa_strony=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; nazwa_strony=strona; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; else czy_aktualna_strona=2; nazwa_strony=strona; end; end; end; local link = function(adres_linku,nazwa_linku,klasa,styl,link_wikidane) local czy_klasa=parametry_modul.CzyTak(klasa); local czy_styl=parametry_modul.CzyTak(styl); local spanramka_dziecko=mw.html.create('span'); if(czy_klasa)then spanramka_dziecko:attr("class",klasa);end; if(czy_styl)then spanramka_dziecko:attr('style',styl);end; spanramka_dziecko:wikitext(nazwa_linku); local kod_html=tostring(spanramka_dziecko:allDone()); ---- local spanramka=mw.html.create('span'); if((link_wikidane)and(link_wikidane[1]))then spanramka:addClass(link_wikidane[1]); spanramka:addClass("link"); end; ---- local linki_modul=require("Module:Linki"); linki_modul.LinkOgromne(spanramka,nazwa_linku); ---- local link="[["..adres_linku.."|"..kod_html.."]]"; spanramka:wikitext(link); local kod_html=spanramka:allDone(); return tostring(kod_html); end; local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu) local divramka=mw.html.create('div'); local parametry_modul=require("Module:Parametry"); local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"wzór_"..html_modul.EncodeId(uchwyt,true)); else if(numeracja)then divramka:attr('id',"wzór_"..numeracja); else divramka:attr('id',"niedopasowany-wzór_"..html_modul.EncodeId(uchwyt,true)); end; end; end; if(parametry_modul.CzyTak(styl_main))then divramka:attr('style',styl_main); end; local uchwyt_fun=function() if(parametry_modul.CzyTak(uchwyt))then local divuchwytramka=mw.html.create('div'); divuchwytramka:attr('class',klasa_numeracji); divuchwytramka:attr('style',styl_numeracji); if(parametry_modul.CzyTak(bez_automatu))then divuchwytramka:wikitext('(',uchwyt..")"); else if(numeracja)then divuchwytramka:wikitext('('..numeracja..")"); else divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")"); end; end; divramka:node(divuchwytramka); end; end; local pole_odstepu_fun=function() divramka:addClass("wzory"); local divramka2=mw.html.create('div'); divramka2:attr('style',styl_odstepu); divramka2:wikitext(pole_odstepu); divramka:node(divramka2); end; local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu) if(parametry_modul.CzyTak(opis))then local divramka5=mw.html.create('div') divramka5:attr('class',klasa_opisu) divramka5:attr('style',styl_opisu) divramka5:wikitext(wzor_opisu) divramka:node(divramka5) else local divramka5=mw.html.create('div'); divramka5:attr('style',styl_alternatywy_opisu); divramka:node(divramka5) end; end; if(not czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2); local divramka4=mw.html.create('div'); divramka4:attr('class',klasa_wzoru); divramka4:attr('style',styl_wzoru); divramka4:wikitext(wzor); divramka:node(divramka4); opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu); if(czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; return tostring(divramka:allDone()); end; local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu) local czy_uchwyt=parametry_modul.CzyTak(uchwyt); local id; if(czy_uchwyt)then if(numeracja)then if(parametry_modul.CzyTak(bez_automatu))then id="rysunek_"..html_modul.EncodeId(uchwyt,true); else id="rysunek_"..numeracja; end; else id="niedopasowany-rysunek_"..html_modul.EncodeHtml(uchwyt,true); end; end; local czy_opis=parametry_modul.CzyTak(opis); local plik_modul=require("Module:Plik"); local wywolanie_rysunku=plik_modul.Plik{ plik=((rysunek)and rysunek or "Przykładowy rysunek.svg"), id=id, styl=styl, klasa=klasa, ramka="mały", pozycja=pozycja or "prawo", rozmiar=(rozmiar or "200px"), opis=((czy_uchwyt or czy_opis)and (((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or ""), }; --local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]"; return tostring(wywolanie_rysunku); end; local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu) local divramka=mw.html.create('div'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',przedrostek.."_"..html_modul.EncodeId(uchwyt,true)); else divramka:attr('id',((not numeracja)and "niedopasowany-" or "")..przedrostek.."_"..(numeracja or html_modul.EncodeId(uchwyt,true))); end; end; divramka:attr('class',klasa); divramka:attr('style',styl); local wikitext=""; if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then wikitext="("..przedrostek2.." "..uchwyt..")"; else if(numeracja)then wikitext="("..przedrostek2.." "..numeracja..")"; else wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")"; end; end; end; if(parametry_modul.CzyTak(styl_naglowka))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_naglowka); spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); divramka:node(spanramka); else divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); end; divramka:wikitext('<BR>'); if(parametry_modul.CzyTak(styl_tekstu))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_tekstu); spanramka:wikitext(tekst); divramka:node(spanramka); else divramka:wikitext(tekst); end; return tostring(divramka:allDone()); end; local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu) local spanramka=mw.html.create('sup'); spanramka:attr('style',klasa); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then spanramka:attr('id',przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); else if(parametry_modul.CzyTak(numeracja))then spanramka:attr('id',przedrostek_id.."_"..numeracja); else spanramka:attr('id',"niedopasowany-"..przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); end; end; end; spanramka:attr('style',styl); local smallramka=mw.html.create('small'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then smallramka:wikitext('['..prefiks..": "..uchwyt..']'); else if(parametry_modul.CzyTak(numeracja))then smallramka:wikitext('['..prefiks..": "..numeracja..']'); else smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']'); end; end; else smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]"); end; spanramka:node(smallramka); return tostring(spanramka:allDone()); end; local nazwa_strony_fun=function(nazwa_strony) if((nazwa_strony)and(nazwa_strony==""))then return "";end; if(czy_aktualna_strona)then if(czy_aktualna_strona==1)then return ""; elseif(czy_aktualna_strona==2)then if(tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return "";end; end; else if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and (tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then return ""; end; end; return html_modul.EncodeId(nazwa_strony); end; local function BladTablicyTransportu(czy_table_tablica_transportu) if(not czy_table_tablica_transportu)then local blad_modul=require("Module:Błąd"); return blad_modul.error{tekst="Błąd stronicowego parsera: '''Moduł:StronicowyParser'''. Tablica silnika transportu lub jego składowe przyjmują wartość nietabelkową.",tag="strong",}; end; return ""; end; local function BezNumeracjiZUchwytami() if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(uchwyt_obiektu)then local uchwyt_obiektu=html_modul.EncodeId(uchwyt_obiektu,true); return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; else local uchwyt_obiektu=parametry_modul.CzyTak(uchwyt_obiektu) and html_modul.EncodeId(uchwyt_obiektu,true) or nil; return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..(uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; end; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return uchwyt_obiektu; end; else return uchwyt_obiektu; end; end; if((not czy_table_tablica_transportu)or(parametry_modul.CzyTak(frame.args["bez automatu"])))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(czy_table_tablica_transportu); end; local link_wikidane; local tabela_listy_uchwytow_i_numeracji_na_stronie; if(czy_aktualna_strona==nil)then local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(dane_analizy_artykulu)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; link_wikidane=tabela_listy_analizy_na_stronie.link_wikidane; end; end; end; end; end; end; elseif(czy_aktualna_strona==1)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu; link_wikidane=tabela_listy_danych_analizy_ksiazki.link_wikidane; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_na_stronie))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; elseif(czy_aktualna_strona==2)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; link_wikidane=tabela_listy_analizy_na_stronie.link_wikidane; end; end; end; end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); if(tabela_listy_uchwytow_i_numeracji_na_stronie)then local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu]; local uchwyty_bez_numeracji=spis_uchwytow.uchwyty_bez_numeracji; spis_uchwytow=uchwyty_bez_numeracji or spis_uchwytow; if(spis_uchwytow)then if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then local UchwytObiektu=function(uchwyt_obiektu) if(uchwyty_bez_numeracji)then return uchwyt_obiektu[1]; end; return uchwyt_obiektu; end; for _, dany_artykul in ipairs(spis_uchwytow)do if(UchwytObiektu(dany_artykul[1])==uchwyt_obiektu)then if(not uchwyty_bez_numeracji)then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(not dany_artykul[2])then return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; end; return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="tekst")then local tekst=dany_artykul[2]; if(tekst)then local tekst=pf:preprocess(tekst); return tekst; end; return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else if(dany_artykul[2])then local tytul_szablonu=frame.args["nazwa szablonu"] or szablonowe_modul.NazwaSzablonu(frame:getParent():getTitle()); local tab_naglowek=stronicowyparser_obiekty_modul.linki_szablony_wprowadzenia_tekstu[nazwa_obiektu]; local adres=dany_artykul[2][2]; local czy_w_tym_szablony=mw.ustring.match(adres,"{{[^{}]+}}"); if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); adres=specjalne_modul["PrzetwórzNagłówek"](adres,true); end; local adres=dany_artykul[2][1].."#"..adres; if(tytul_szablonu==tab_naglowek[1])then local naglowek=dany_artykul[2][3]; if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false); end; return link(adres,naglowek,frame.args["klasa"],frame.args["styl"],link_wikidane) elseif(tytul_szablonu==tab_naglowek[2])then return link(adres,"tutaj",frame.args["klasa"],frame.args["styl"],link_wikidane) end; end; end; end; end; end; end; end; if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..html_modul.EncodeId(uchwyt_obiektu,true),frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; end; return p; d30yi9qzpdjq5m1u8vxw001jk0ou3tq 546528 546525 2026-06-12T14:03:57Z Persino 2851 546528 Scribunto text/plain local p={}; function p.NumerObiektu(frame, nazwa_obiektu) local pf=frame:getParent(); local parametry_modul=require("Module:Parametry"); local uchwyt_obiektu=frame.args["uchwyt"]; local bez_automatu=parametry_modul.CzyTak(frame.args["bez automatu"]); local html_modul=require("Module:Html"); uchwyt_obiektu=uchwyt_obiektu and html_modul.DecodeHtml(uchwyt_obiektu,true) or nil; local nazwa_strony; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local techniczne_modul=require("Module:Techniczne"); local szablonowe_modul=require("Module:Szablonowe"); local nazwa_przestrzeni;local nazwa_przestrzeni_ksiazki;local nazwa_ksiazki;local nazwa_artykulu; nazwa_artykulu=frame.args["nazwa artykułu"]; nazwa_ksiazki=frame.args["nazwa książki"]; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local czy_table_tablica_transportu=parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki); local czy_aktualna_strona=nil; local nazwa_przestrzeni_nazw=pf.args["nazwa przestrzeni nazw"]; local nazwa_jednostki=pf.args["nazwa jednostki"]; if((nazwa_przestrzeni_nazw) or (nazwa_jednostki))then if(((not nazwa_artykulu)and(not nazwa_ksiazki)) or((nazwa_artykulu)and(not nazwa_ksiazki)))then if(nazwa_przestrzeni_nazw)then nazwa_przestrzeni_nazw=html_modul.DecodeHtml(nazwa_przestrzeni_nazw,true); end; if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local ksiazkowe_modul=require("Module:Książkowe"); local tabela_nazw_poczatkowe={}; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_poczatkowe); local nazwa_jednostki=nazwa_jednostki or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_poczatkowe); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={};local tabela_nazw_aktualna={}; strona=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw); local aktualna_strona=ksiazkowe_modul["PełnaNazwaArtykułu"](nil,tabela_nazw_aktualna); if(strona~=aktualna_strona)then nazwa_artykulu=nazwa_artykulu or nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki_aktualna=ksiazkowe_modul["PełnaNazwaKsiążki"](nil,tabela_nazw_aktualna); local nazwa_ksiazki_strony=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw); if(nazwa_ksiazki_aktualna~=nazwa_ksiazki_strony)then nazwa_ksiazki=nazwa_ksiazki or nazwa_ksiazki_strony; end; end; end; end; if((not nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=1; nazwa_strony=""; elseif((nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=2; nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; end; end; else local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu); nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true); nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,}; local ksiazkawe_modul=require("Module:Książkowe"); local tabela_nazw={}; nazwa_ksiazki=ksiazkawe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); if((nazwa_artykulu)and(nazwa_artykulu~=""))then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; else nazwa_artykulu=""; end; nazwa_strony=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; nazwa_strony=strona; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; else czy_aktualna_strona=2; nazwa_strony=strona; end; end; end; local link = function(adres_linku,nazwa_linku,klasa,styl) local czy_klasa=parametry_modul.CzyTak(klasa); local czy_styl=parametry_modul.CzyTak(styl); if(czy_klasa or czy_styl)then local spanramka=mw.html.create('span'); if(czy_klasa)then spanramka:attr("class",klasa);end; if(czy_styl)then spanramka:attr('style',styl);end; spanramka:wikitext(nazwa_linku); local kod_html=spanramka:allDone(); return "[["..adres_linku.."|"..tostring(kod_html).."]]"; else return "[["..adres_linku.."|"..nazwa_linku.."]]"; end; end; local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu) local divramka=mw.html.create('div'); local parametry_modul=require("Module:Parametry"); local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"wzór_"..html_modul.EncodeId(uchwyt,true)); else if(numeracja)then divramka:attr('id',"wzór_"..numeracja); else divramka:attr('id',"niedopasowany-wzór_"..html_modul.EncodeId(uchwyt,true)); end; end; end; if(parametry_modul.CzyTak(styl_main))then divramka:attr('style',styl_main); end; local uchwyt_fun=function() if(parametry_modul.CzyTak(uchwyt))then local divuchwytramka=mw.html.create('div'); divuchwytramka:attr('class',klasa_numeracji); divuchwytramka:attr('style',styl_numeracji); if(parametry_modul.CzyTak(bez_automatu))then divuchwytramka:wikitext('(',uchwyt..")"); else if(numeracja)then divuchwytramka:wikitext('('..numeracja..")"); else divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")"); end; end; divramka:node(divuchwytramka); end; end; local pole_odstepu_fun=function() divramka:addClass("wzory"); local divramka2=mw.html.create('div'); divramka2:attr('style',styl_odstepu); divramka2:wikitext(pole_odstepu); divramka:node(divramka2); end; local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu) if(parametry_modul.CzyTak(opis))then local divramka5=mw.html.create('div') divramka5:attr('class',klasa_opisu) divramka5:attr('style',styl_opisu) divramka5:wikitext(wzor_opisu) divramka:node(divramka5) else local divramka5=mw.html.create('div'); divramka5:attr('style',styl_alternatywy_opisu); divramka:node(divramka5) end; end; if(not czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2); local divramka4=mw.html.create('div'); divramka4:attr('class',klasa_wzoru); divramka4:attr('style',styl_wzoru); divramka4:wikitext(wzor); divramka:node(divramka4); opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu); if(czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; return tostring(divramka:allDone()); end; local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu) local czy_uchwyt=parametry_modul.CzyTak(uchwyt); local id; if(czy_uchwyt)then if(numeracja)then if(parametry_modul.CzyTak(bez_automatu))then id="rysunek_"..html_modul.EncodeId(uchwyt,true); else id="rysunek_"..numeracja; end; else id="niedopasowany-rysunek_"..html_modul.EncodeHtml(uchwyt,true); end; end; local czy_opis=parametry_modul.CzyTak(opis); local plik_modul=require("Module:Plik"); local wywolanie_rysunku=plik_modul.Plik{ plik=((rysunek)and rysunek or "Przykładowy rysunek.svg"), id=id, styl=styl, klasa=klasa, ramka="mały", pozycja=pozycja or "prawo", rozmiar=(rozmiar or "200px"), opis=((czy_uchwyt or czy_opis)and (((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or ""), }; --local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]"; return tostring(wywolanie_rysunku); end; local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu) local divramka=mw.html.create('div'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',przedrostek.."_"..html_modul.EncodeId(uchwyt,true)); else divramka:attr('id',((not numeracja)and "niedopasowany-" or "")..przedrostek.."_"..(numeracja or html_modul.EncodeId(uchwyt,true))); end; end; divramka:attr('class',klasa); divramka:attr('style',styl); local wikitext=""; if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then wikitext="("..przedrostek2.." "..uchwyt..")"; else if(numeracja)then wikitext="("..przedrostek2.." "..numeracja..")"; else wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")"; end; end; end; if(parametry_modul.CzyTak(styl_naglowka))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_naglowka); spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); divramka:node(spanramka); else divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); end; divramka:wikitext('<BR>'); if(parametry_modul.CzyTak(styl_tekstu))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_tekstu); spanramka:wikitext(tekst); divramka:node(spanramka); else divramka:wikitext(tekst); end; return tostring(divramka:allDone()); end; local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu) local spanramka=mw.html.create('sup'); spanramka:attr('style',klasa); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then spanramka:attr('id',przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); else if(parametry_modul.CzyTak(numeracja))then spanramka:attr('id',przedrostek_id.."_"..numeracja); else spanramka:attr('id',"niedopasowany-"..przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); end; end; end; spanramka:attr('style',styl); local smallramka=mw.html.create('small'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then smallramka:wikitext('['..prefiks..": "..uchwyt..']'); else if(parametry_modul.CzyTak(numeracja))then smallramka:wikitext('['..prefiks..": "..numeracja..']'); else smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']'); end; end; else smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]"); end; spanramka:node(smallramka); return tostring(spanramka:allDone()); end; local nazwa_strony_fun=function(nazwa_strony) if((nazwa_strony)and(nazwa_strony==""))then return "";end; if(czy_aktualna_strona)then if(czy_aktualna_strona==1)then return ""; elseif(czy_aktualna_strona==2)then if(tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return "";end; end; else if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and (tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then return ""; end; end; return html_modul.EncodeId(nazwa_strony); end; local function BladTablicyTransportu(czy_table_tablica_transportu) if(not czy_table_tablica_transportu)then local blad_modul=require("Module:Błąd"); return blad_modul.error{tekst="Błąd stronicowego parsera: '''Moduł:StronicowyParser'''. Tablica silnika transportu lub jego składowe przyjmują wartość nietabelkową.",tag="strong",}; end; return ""; end; local function BezNumeracjiZUchwytami() if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(uchwyt_obiektu)then local uchwyt_obiektu=html_modul.EncodeId(uchwyt_obiektu,true); return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; else local uchwyt_obiektu=parametry_modul.CzyTak(uchwyt_obiektu) and html_modul.EncodeId(uchwyt_obiektu,true) or nil; return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..(uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; end; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return uchwyt_obiektu; end; else return uchwyt_obiektu; end; end; if((not czy_table_tablica_transportu)or(parametry_modul.CzyTak(frame.args["bez automatu"])))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(czy_table_tablica_transportu); end; local tabela_listy_uchwytow_i_numeracji_na_stronie; if(czy_aktualna_strona==nil)then local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(dane_analizy_artykulu)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; end; end; end; end; end; end; elseif(czy_aktualna_strona==1)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_na_stronie))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; elseif(czy_aktualna_strona==2)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; end; end; end; end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); if(tabela_listy_uchwytow_i_numeracji_na_stronie)then local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu]; local uchwyty_bez_numeracji=spis_uchwytow.uchwyty_bez_numeracji; spis_uchwytow=uchwyty_bez_numeracji or spis_uchwytow; if(spis_uchwytow)then if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then local UchwytObiektu=function(uchwyt_obiektu) if(uchwyty_bez_numeracji)then return uchwyt_obiektu[1]; end; return uchwyt_obiektu; end; for _, dany_artykul in ipairs(spis_uchwytow)do if(UchwytObiektu(dany_artykul[1])==uchwyt_obiektu)then if(not uchwyty_bez_numeracji)then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(not dany_artykul[2])then return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; end; return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="tekst")then local tekst=dany_artykul[2]; if(tekst)then local tekst=pf:preprocess(tekst); return tekst; end; return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else if(dany_artykul[2])then local tytul_szablonu=frame.args["nazwa szablonu"] or szablonowe_modul.NazwaSzablonu(frame:getParent():getTitle()); local tab_naglowek=stronicowyparser_obiekty_modul.linki_szablony_wprowadzenia_tekstu[nazwa_obiektu]; local adres=dany_artykul[2][2]; local czy_w_tym_szablony=mw.ustring.match(adres,"{{[^{}]+}}"); if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); adres=specjalne_modul["PrzetwórzNagłówek"](adres,true); end; local adres=dany_artykul[2][1].."#"..adres; if(tytul_szablonu==tab_naglowek[1])then local naglowek=dany_artykul[2][3]; if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false); end; return link(adres,naglowek,frame.args["klasa"],frame.args["styl"]) elseif(tytul_szablonu==tab_naglowek[2])then return link(adres,"tutaj",frame.args["klasa"],frame.args["styl"]) end; end; end; end; end; end; end; end; if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..html_modul.EncodeId(uchwyt_obiektu,true),frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; end; return p; q7d2epbkmwriz9imlznojyed6sg10yg 546533 546528 2026-06-12T14:16:27Z Persino 2851 Anulowano wersję [[Special:Diff/546528|546528]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) 546533 Scribunto text/plain local p={}; function p.NumerObiektu(frame, nazwa_obiektu) local pf=frame:getParent(); local parametry_modul=require("Module:Parametry"); local uchwyt_obiektu=frame.args["uchwyt"]; local bez_automatu=parametry_modul.CzyTak(frame.args["bez automatu"]); local html_modul=require("Module:Html"); uchwyt_obiektu=uchwyt_obiektu and html_modul.DecodeHtml(uchwyt_obiektu,true) or nil; local nazwa_strony; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local techniczne_modul=require("Module:Techniczne"); local szablonowe_modul=require("Module:Szablonowe"); local nazwa_przestrzeni;local nazwa_przestrzeni_ksiazki;local nazwa_ksiazki;local nazwa_artykulu; nazwa_artykulu=frame.args["nazwa artykułu"]; nazwa_ksiazki=frame.args["nazwa książki"]; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local czy_table_tablica_transportu=parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki); local czy_aktualna_strona=nil; local nazwa_przestrzeni_nazw=pf.args["nazwa przestrzeni nazw"]; local nazwa_jednostki=pf.args["nazwa jednostki"]; if((nazwa_przestrzeni_nazw) or (nazwa_jednostki))then if(((not nazwa_artykulu)and(not nazwa_ksiazki)) or((nazwa_artykulu)and(not nazwa_ksiazki)))then if(nazwa_przestrzeni_nazw)then nazwa_przestrzeni_nazw=html_modul.DecodeHtml(nazwa_przestrzeni_nazw,true); end; if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local ksiazkowe_modul=require("Module:Książkowe"); local tabela_nazw_poczatkowe={}; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_poczatkowe); local nazwa_jednostki=nazwa_jednostki or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_poczatkowe); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={};local tabela_nazw_aktualna={}; strona=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw); local aktualna_strona=ksiazkowe_modul["PełnaNazwaArtykułu"](nil,tabela_nazw_aktualna); if(strona~=aktualna_strona)then nazwa_artykulu=nazwa_artykulu or nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki_aktualna=ksiazkowe_modul["PełnaNazwaKsiążki"](nil,tabela_nazw_aktualna); local nazwa_ksiazki_strony=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw); if(nazwa_ksiazki_aktualna~=nazwa_ksiazki_strony)then nazwa_ksiazki=nazwa_ksiazki or nazwa_ksiazki_strony; end; end; end; end; if((not nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=1; nazwa_strony=""; elseif((nazwa_artykulu)and(not nazwa_ksiazki))then czy_aktualna_strona=2; nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; end; end; else local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu); nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true); nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,}; local ksiazkawe_modul=require("Module:Książkowe"); local tabela_nazw={}; nazwa_ksiazki=ksiazkawe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw); if((nazwa_artykulu)and(nazwa_artykulu~=""))then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; else nazwa_artykulu=""; end; nazwa_strony=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony); if(strona)then strona=html_modul.DecodeHtml(strona,true); local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then czy_aktualna_strona=nil; nazwa_strony=strona; elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then czy_aktualna_strona=1; nazwa_strony=""; else czy_aktualna_strona=2; nazwa_strony=strona; end; end; end; local link = function(adres_linku,nazwa_linku,klasa,styl,link_wikidane) local czy_klasa=parametry_modul.CzyTak(klasa); local czy_styl=parametry_modul.CzyTak(styl); local spanramka_dziecko=mw.html.create('span'); if(czy_klasa)then spanramka_dziecko:attr("class",klasa);end; if(czy_styl)then spanramka_dziecko:attr('style',styl);end; spanramka_dziecko:wikitext(nazwa_linku); local kod_html=tostring(spanramka_dziecko:allDone()); ---- local spanramka=mw.html.create('span'); if((link_wikidane)and(link_wikidane[1]))then spanramka:addClass(link_wikidane[1]); spanramka:addClass("link"); end; ---- local linki_modul=require("Module:Linki"); linki_modul.LinkOgromne(spanramka,nazwa_linku); ---- local link="[["..adres_linku.."|"..kod_html.."]]"; spanramka:wikitext(link); local kod_html=spanramka:allDone(); return tostring(kod_html); end; local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu) local divramka=mw.html.create('div'); local parametry_modul=require("Module:Parametry"); local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',"wzór_"..html_modul.EncodeId(uchwyt,true)); else if(numeracja)then divramka:attr('id',"wzór_"..numeracja); else divramka:attr('id',"niedopasowany-wzór_"..html_modul.EncodeId(uchwyt,true)); end; end; end; if(parametry_modul.CzyTak(styl_main))then divramka:attr('style',styl_main); end; local uchwyt_fun=function() if(parametry_modul.CzyTak(uchwyt))then local divuchwytramka=mw.html.create('div'); divuchwytramka:attr('class',klasa_numeracji); divuchwytramka:attr('style',styl_numeracji); if(parametry_modul.CzyTak(bez_automatu))then divuchwytramka:wikitext('(',uchwyt..")"); else if(numeracja)then divuchwytramka:wikitext('('..numeracja..")"); else divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")"); end; end; divramka:node(divuchwytramka); end; end; local pole_odstepu_fun=function() divramka:addClass("wzory"); local divramka2=mw.html.create('div'); divramka2:attr('style',styl_odstepu); divramka2:wikitext(pole_odstepu); divramka:node(divramka2); end; local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu) if(parametry_modul.CzyTak(opis))then local divramka5=mw.html.create('div') divramka5:attr('class',klasa_opisu) divramka5:attr('style',styl_opisu) divramka5:wikitext(wzor_opisu) divramka:node(divramka5) else local divramka5=mw.html.create('div'); divramka5:attr('style',styl_alternatywy_opisu); divramka:node(divramka5) end; end; if(not czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2); local divramka4=mw.html.create('div'); divramka4:attr('class',klasa_wzoru); divramka4:attr('style',styl_wzoru); divramka4:wikitext(wzor); divramka:node(divramka4); opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu); if(czy_pozycja_numeracji_prawa)then uchwyt_fun(); else pole_odstepu_fun(); end; return tostring(divramka:allDone()); end; local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu) local czy_uchwyt=parametry_modul.CzyTak(uchwyt); local id; if(czy_uchwyt)then if(numeracja)then if(parametry_modul.CzyTak(bez_automatu))then id="rysunek_"..html_modul.EncodeId(uchwyt,true); else id="rysunek_"..numeracja; end; else id="niedopasowany-rysunek_"..html_modul.EncodeHtml(uchwyt,true); end; end; local czy_opis=parametry_modul.CzyTak(opis); local plik_modul=require("Module:Plik"); local wywolanie_rysunku=plik_modul.Plik{ plik=((rysunek)and rysunek or "Przykładowy rysunek.svg"), id=id, styl=styl, klasa=klasa, ramka="mały", pozycja=pozycja or "prawo", rozmiar=(rozmiar or "200px"), opis=((czy_uchwyt or czy_opis)and (((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or ""), }; --local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]"; return tostring(wywolanie_rysunku); end; local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu) local divramka=mw.html.create('div'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then divramka:attr('id',przedrostek.."_"..html_modul.EncodeId(uchwyt,true)); else divramka:attr('id',((not numeracja)and "niedopasowany-" or "")..przedrostek.."_"..(numeracja or html_modul.EncodeId(uchwyt,true))); end; end; divramka:attr('class',klasa); divramka:attr('style',styl); local wikitext=""; if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then wikitext="("..przedrostek2.." "..uchwyt..")"; else if(numeracja)then wikitext="("..przedrostek2.." "..numeracja..")"; else wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")"; end; end; end; if(parametry_modul.CzyTak(styl_naglowka))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_naglowka); spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); divramka:node(spanramka); else divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext); end; divramka:wikitext('<BR>'); if(parametry_modul.CzyTak(styl_tekstu))then local spanramka=mw.html.create('span'); spanramka:attr('style',styl_tekstu); spanramka:wikitext(tekst); divramka:node(spanramka); else divramka:wikitext(tekst); end; return tostring(divramka:allDone()); end; local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu) local spanramka=mw.html.create('sup'); spanramka:attr('style',klasa); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then spanramka:attr('id',przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); else if(parametry_modul.CzyTak(numeracja))then spanramka:attr('id',przedrostek_id.."_"..numeracja); else spanramka:attr('id',"niedopasowany-"..przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true)); end; end; end; spanramka:attr('style',styl); local smallramka=mw.html.create('small'); if(parametry_modul.CzyTak(uchwyt))then if(parametry_modul.CzyTak(bez_automatu))then smallramka:wikitext('['..prefiks..": "..uchwyt..']'); else if(parametry_modul.CzyTak(numeracja))then smallramka:wikitext('['..prefiks..": "..numeracja..']'); else smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']'); end; end; else smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]"); end; spanramka:node(smallramka); return tostring(spanramka:allDone()); end; local nazwa_strony_fun=function(nazwa_strony) if((nazwa_strony)and(nazwa_strony==""))then return "";end; if(czy_aktualna_strona)then if(czy_aktualna_strona==1)then return ""; elseif(czy_aktualna_strona==2)then if(tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return "";end; end; else if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and (tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then return ""; end; end; return html_modul.EncodeId(nazwa_strony); end; local function BladTablicyTransportu(czy_table_tablica_transportu) if(not czy_table_tablica_transportu)then local blad_modul=require("Module:Błąd"); return blad_modul.error{tekst="Błąd stronicowego parsera: '''Moduł:StronicowyParser'''. Tablica silnika transportu lub jego składowe przyjmują wartość nietabelkową.",tag="strong",}; end; return ""; end; local function BezNumeracjiZUchwytami() if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(uchwyt_obiektu)then local uchwyt_obiektu=html_modul.EncodeId(uchwyt_obiektu,true); return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")"; else local uchwyt_obiektu=parametry_modul.CzyTak(uchwyt_obiektu) and html_modul.EncodeId(uchwyt_obiektu,true) or nil; return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..(uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")"; end; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return uchwyt_obiektu; end; else return uchwyt_obiektu; end; end; if((not czy_table_tablica_transportu)or(parametry_modul.CzyTak(frame.args["bez automatu"])))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(czy_table_tablica_transportu); end; local link_wikidane; local tabela_listy_uchwytow_i_numeracji_na_stronie; if(czy_aktualna_strona==nil)then local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(dane_analizy_artykulu)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; link_wikidane=tabela_listy_analizy_na_stronie.link_wikidane; end; end; end; end; end; end; elseif(czy_aktualna_strona==1)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu; link_wikidane=tabela_listy_danych_analizy_ksiazki.link_wikidane; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_na_stronie))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; elseif(czy_aktualna_strona==2)then local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki; if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce))then return BezNumeracjiZUchwytami()..BladTablicyTransportu(false); end; if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu; if(lista_artykolow)then local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu] if(tabela_listy_analizy_na_stronie)then tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje; link_wikidane=tabela_listy_analizy_na_stronie.link_wikidane; end; end; end; end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); if(tabela_listy_uchwytow_i_numeracji_na_stronie)then local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu]; local uchwyty_bez_numeracji=spis_uchwytow.uchwyty_bez_numeracji; spis_uchwytow=uchwyty_bez_numeracji or spis_uchwytow; if(spis_uchwytow)then if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then local UchwytObiektu=function(uchwyt_obiektu) if(uchwyty_bez_numeracji)then return uchwyt_obiektu[1]; end; return uchwyt_obiektu; end; for _, dany_artykul in ipairs(spis_uchwytow)do if(UchwytObiektu(dany_artykul[1])==uchwyt_obiektu)then if(not uchwyty_bez_numeracji)then if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); if(not dany_artykul[2])then return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; end; return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="tekst")then local tekst=dany_artykul[2]; if(tekst)then local tekst=pf:preprocess(tekst); return tekst; end; return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu")); end; else if(dany_artykul[2])then local tytul_szablonu=frame.args["nazwa szablonu"] or szablonowe_modul.NazwaSzablonu(frame:getParent():getTitle()); local tab_naglowek=stronicowyparser_obiekty_modul.linki_szablony_wprowadzenia_tekstu[nazwa_obiektu]; local adres=dany_artykul[2][2]; local czy_w_tym_szablony=mw.ustring.match(adres,"{{[^{}]+}}"); if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); adres=specjalne_modul["PrzetwórzNagłówek"](adres,true); end; local adres=dany_artykul[2][1].."#"..adres; if(tytul_szablonu==tab_naglowek[1])then local naglowek=dany_artykul[2][3]; if(czy_w_tym_szablony)then local specjalne_modul=require("Module:Specjalne"); naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false); end; return link(adres,naglowek,frame.args["klasa"],frame.args["styl"],link_wikidane) elseif(tytul_szablonu==tab_naglowek[2])then return link(adres,"tutaj",frame.args["klasa"],frame.args["styl"],link_wikidane) end; end; end; end; end; end; end; end; if(frame.args["obiekt"])then if(frame.args["obiekt"]=="link")then local nazwa_strony=nazwa_strony_fun(nazwa_strony); return "("..link(nazwa_strony.."#niedopasowany-"..frame.args["id"].."_"..html_modul.EncodeId(uchwyt_obiektu,true),frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"],link_wikidane)..")"; elseif(frame.args["obiekt"]=="wzór")then return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="rysunek")then return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="wypowiedzenie")then return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]); elseif(frame.args["obiekt"]=="punkt")then return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]); else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; else return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"); end; end; return p; d30yi9qzpdjq5m1u8vxw001jk0ou3tq Sosy 0 63594 546543 546447 2026-06-12T16:19:12Z EdytaT 2664 546543 wikitext text/x-wiki {{status|-25%|Kulinaria}} {{Rozdział|Podręcznik|Sosy}} <small>< [[Sosy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Sosy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Sosy == # [[Sosy/Palone masło|Palone masło (beurre noisette)]] # [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] # [[Sosy/Sos bolzański|Sos bolzański (sauce de Bolzano)]] # [[Sosy/Sos holenderski|Sos holenderski (sauce hollandaise)]] # [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] # [[Sosy/Sos maślano-cytrynowy|Sos maślano-cytrynowy (beurre blanc au citron)]] # [[Sosy/Sos musztardowo-śmietanowy|Sos musztardowo-śmietanowy (sauce à la crème et moutarde)]] # [[Sosy/Sos maślano-winny|Sos maślano-winny (beurre blanc)]] # [[Sosy/Sos pieczarkowy|Sos pieczarkowy (sauce aux champignons)]] == Sosy do dań == * Szparagi # Klasyczny [[Sosy/Sos holenderski|sos holenderski]] doskonale pasuje do białych szparagów. # [[Sosy/Sos bearneński|Sos bearneński]] ze względu na swój ziołowy, lekko anyżowy aromat, stanowi doskonałą, bardziej wyrazistą alternatywę dla klasycznego [[Sosy/Sos holenderski|sosu holenderskiego]]. # Roztopione masło: najbardziej tradycyjna i najprostsza wersja. Masło lekko podgrzewa się (często z odrobiną soku z cytryny) i polewa nim szparagi. # [[Sosy/Palone masło|Palone masło (beurre noisette)]] jest idealne do szparagów z bułką tartą. # Szparagi z szynką polane [[Sosy/Sos bolzański|sosem bolzańskim]] i posypane parmezanem to pyszne zestawienie. # [[Sosy/Sos maltański|Sos maltański]]. == [[Sosy/Słowniczek|Słowniczek]] == == [[Sosy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} hvrfhmn9919msyy46g4bm3jl2kn2hpk 546544 546543 2026-06-12T16:23:25Z EdytaT 2664 546544 wikitext text/x-wiki {{status|-25%|Kulinaria}} {{Rozdział|Podręcznik|Sosy}} <small>< [[Sosy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Sosy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Sosy == # [[Sosy/Palone masło|Palone masło (beurre noisette)]] # [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] # [[Sosy/Sos bolzański|Sos bolzański (sauce de Bolzano)]] # [[Sosy/Sos holenderski|Sos holenderski (sauce hollandaise)]] # [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] # [[Sosy/Sos maślano-cytrynowy|Sos maślano-cytrynowy (beurre blanc au citron)]] # [[Sosy/Sos musztardowo-śmietanowy|Sos musztardowo-śmietanowy (sauce à la crème et moutarde)]] # [[Sosy/Sos maślano-winny|Sos maślano-winny (beurre blanc)]] # [[Sosy/Sos pieczarkowy|Sos pieczarkowy (sauce aux champignons)]] == Sosy do dań == * Szparagi # Klasyczny [[Sosy/Sos holenderski|sos holenderski]] doskonale pasuje do białych szparagów. # [[Sosy/Sos bearneński|Sos bearneński]] ze względu na swój ziołowy, lekko anyżowy aromat, stanowi doskonałą, bardziej wyrazistą alternatywę dla klasycznego [[Sosy/Sos holenderski|sosu holenderskiego]]. # Roztopione masło: najbardziej tradycyjna i najprostsza wersja. Masło lekko podgrzewa się (często z odrobiną soku z cytryny) i polewa nim szparagi. # [[Sosy/Palone masło|Palone masło (beurre noisette)]] jest idealne do szparagów z bułką tartą. # Szparagi z szynką polane [[Sosy/Sos bolzański|sosem bolzańskim]] i posypane parmezanem to pyszne zestawienie. # [[Sosy/Sos maltański|Sos maltański]]. == [[Sosy/Słowniczek|Pomoc]] == == [[Sosy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} 81ghazjjz9ciimvia65iw8312ckcsxi 546545 546544 2026-06-12T16:24:07Z EdytaT 2664 546545 wikitext text/x-wiki {{status|-25%|Kulinaria}} {{Rozdział|Podręcznik|Sosy}} <small>< [[Sosy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Sosy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Sosy == # [[Sosy/Palone masło|Palone masło (beurre noisette)]] # [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] # [[Sosy/Sos bolzański|Sos bolzański (sauce de Bolzano)]] # [[Sosy/Sos holenderski|Sos holenderski (sauce hollandaise)]] # [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] # [[Sosy/Sos maślano-cytrynowy|Sos maślano-cytrynowy (beurre blanc au citron)]] # [[Sosy/Sos musztardowo-śmietanowy|Sos musztardowo-śmietanowy (sauce à la crème et moutarde)]] # [[Sosy/Sos maślano-winny|Sos maślano-winny (beurre blanc)]] # [[Sosy/Sos pieczarkowy|Sos pieczarkowy (sauce aux champignons)]] == Sosy do dań == * Szparagi # Klasyczny [[Sosy/Sos holenderski|sos holenderski]] doskonale pasuje do białych szparagów. # [[Sosy/Sos bearneński|Sos bearneński]] ze względu na swój ziołowy, lekko anyżowy aromat, stanowi doskonałą, bardziej wyrazistą alternatywę dla klasycznego [[Sosy/Sos holenderski|sosu holenderskiego]]. # Roztopione masło: najbardziej tradycyjna i najprostsza wersja. Masło lekko podgrzewa się (często z odrobiną soku z cytryny) i polewa nim szparagi. # [[Sosy/Palone masło|Palone masło (beurre noisette)]] jest idealne do szparagów z bułką tartą. # Szparagi z szynką polane [[Sosy/Sos bolzański|sosem bolzańskim]] i posypane parmezanem to pyszne zestawienie. # [[Sosy/Sos maltański|Sos maltański]]. == [[Sosy/Pomoc|Słowniczek]] == == [[Sosy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} lgh8md0h4r8agp1mtz07vaajalt3ey2 546550 546545 2026-06-12T17:01:00Z EdytaT 2664 /* Sosy */ 546550 wikitext text/x-wiki {{status|-25%|Kulinaria}} {{Rozdział|Podręcznik|Sosy}} <small>< [[Sosy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Sosy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Sosy == # [[Sosy/Palone masło|Palone masło (beurre noisette)]] # [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] # [[Sosy/Sos bolzański|Sos bolzański (sauce de Bolzano)]] # [[Sosy/Sos Choron|Sos Choron (sauce Choron)]] - pochodzi od nazwiska francuskiego szefa kuchni Alexandre'a Etienne'a Chorona. # [[Sosy/Sos holenderski|Sos holenderski (sauce hollandaise)]] # [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] # [[Sosy/Sos maślano-cytrynowy|Sos maślano-cytrynowy (beurre blanc au citron)]] # [[Sosy/Sos musztardowo-śmietanowy|Sos musztardowo-śmietanowy (sauce à la crème et moutarde)]] # [[Sosy/Sos maślano-winny|Sos maślano-winny (beurre blanc)]] # [[Sosy/Sos pieczarkowy|Sos pieczarkowy (sauce aux champignons)]] == Sosy do dań == * Szparagi # Klasyczny [[Sosy/Sos holenderski|sos holenderski]] doskonale pasuje do białych szparagów. # [[Sosy/Sos bearneński|Sos bearneński]] ze względu na swój ziołowy, lekko anyżowy aromat, stanowi doskonałą, bardziej wyrazistą alternatywę dla klasycznego [[Sosy/Sos holenderski|sosu holenderskiego]]. # Roztopione masło: najbardziej tradycyjna i najprostsza wersja. Masło lekko podgrzewa się (często z odrobiną soku z cytryny) i polewa nim szparagi. # [[Sosy/Palone masło|Palone masło (beurre noisette)]] jest idealne do szparagów z bułką tartą. # Szparagi z szynką polane [[Sosy/Sos bolzański|sosem bolzańskim]] i posypane parmezanem to pyszne zestawienie. # [[Sosy/Sos maltański|Sos maltański]]. == [[Sosy/Pomoc|Słowniczek]] == == [[Sosy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} oab9251eqxbvg4ss8f2p8gc35lp2g1l 546552 546550 2026-06-12T18:06:53Z EdytaT 2664 /* Sosy */ 546552 wikitext text/x-wiki {{status|-25%|Kulinaria}} {{Rozdział|Podręcznik|Sosy}} <small>< [[Sosy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Sosy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Sosy == # [[Sosy/Palone masło|Palone masło (beurre noisette)]] # [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - został wymyślony w 1836 roku w restauracji Le Pavillon Henri IV w podparyskim Saint-Germain-en-Laye przez szefa kuchni Jeana-Louisa-François Collineta na cześć króla Francji Henryka IV, który urodził się w Béarn i był nazywany „Wielkim Béarnczykiem”. # [[Sosy/Sos bolzański|Sos bolzański (sauce de Bolzano)]] - nazwa pochodzi od miasta Bolzano, stolicy prowincji Południowy Tyrol. # [[Sosy/Sos cédard|sos Cédard (sauce Cédard)]] - nazwa pochodzi od nazwiska wybitnego francuskiego szefa kuchni brytyjskiej rodziny królewskiej, Henry Cédarda. # [[Sosy/Sos Choron|Sos Choron (sauce Choron)]] - nazwa pochodzi od nazwiska francuskiego szefa kuchni Alexandre'a Etienne'a Chorona. # [[Sosy/Sos boski|sos boski (sos holenderski z truflami, sauce divine)]] # [[Sosy/Sos holenderski|Sos holenderski (sauce hollandaise)]] # [[Sosy/Sos kawiorowy|sos kawiorowy]] # [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - nazwa pochodzi od czerwonych pomarańczy (tzw. pomarańczy sycylijskich lub maltańskich). # [[Sosy/Sos maślano-cytrynowy|Sos maślano-cytrynowy (beurre blanc au citron)]] # [[Sosy/Sos mikado|sos mikado (sauce mikado)]] - nazwa sosu Mikado pochodzi od dawnego, historycznego tytułu cesarza Japonii # [[Sosy/Sos musztardowo-śmietanowy|Sos musztardowo-śmietanowy (sauce à la crème et moutarde)]] # [[Sosy/Sos musztardowy|sos musztardowy (sauce dijonnaise)]] # [[Sosy/Sos maślano-winny|Sos maślano-winny (beurre blanc)]] # [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] # [[Sosy/Sos pieczarkowy|Sos pieczarkowy (sauce aux champignons)]] # [[Sosy/Sos Romanoff|sos Romanoff (sauce Romanoff)]] - nazwa wywodzi się od nazwiska rosyjskiej dynastii carskiej Romanowów. # [[Sosy/Sos wenecki|sos wenecki (sauce vénitienne)]] == Sosy do dań == * Szparagi # Klasyczny [[Sosy/Sos holenderski|sos holenderski]] doskonale pasuje do białych szparagów. # [[Sosy/Sos bearneński|Sos bearneński]] ze względu na swój ziołowy, lekko anyżowy aromat, stanowi doskonałą, bardziej wyrazistą alternatywę dla klasycznego [[Sosy/Sos holenderski|sosu holenderskiego]]. # Roztopione masło: najbardziej tradycyjna i najprostsza wersja. Masło lekko podgrzewa się (często z odrobiną soku z cytryny) i polewa nim szparagi. # [[Sosy/Palone masło|Palone masło (beurre noisette)]] jest idealne do szparagów z bułką tartą. # Szparagi z szynką polane [[Sosy/Sos bolzański|sosem bolzańskim]] i posypane parmezanem to pyszne zestawienie. # [[Sosy/Sos maltański|Sos maltański]]. == [[Sosy/Pomoc|Słowniczek]] == == [[Sosy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} eyby49iqop2g00ln01pkxxjygk2xe2t 546553 546552 2026-06-12T18:11:30Z EdytaT 2664 /* Sosy */ 546553 wikitext text/x-wiki {{status|-25%|Kulinaria}} {{Rozdział|Podręcznik|Sosy}} <small>< [[Sosy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Sosy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Sosy == # [[Sosy/Palone masło|Palone masło (beurre noisette)]] # [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - został wymyślony w 1836 roku w restauracji Le Pavillon Henri IV w podparyskim Saint-Germain-en-Laye przez szefa kuchni Jeana-Louisa-François Collineta na cześć króla Francji Henryka IV, który urodził się w Béarn i był nazywany „Wielkim Béarnczykiem”. # [[Sosy/Sos bolzański|Sos bolzański (sauce de Bolzano)]] - nazwa pochodzi od miasta Bolzano, stolicy prowincji Południowy Tyrol. # [[Sosy/Sos boski|sos boski (sos holenderski z truflami, sauce divine)]] # [[Sosy/Sos boski|sos bawarski (sauce Bavaroise)]] - nazwa nawiązuje do południowoniemieckiej Bawarii i jej tradycji kulinarnych. # [[Sosy/Sos cédard|sos Cédard (sauce Cédard)]] - nazwa pochodzi od nazwiska wybitnego francuskiego szefa kuchni brytyjskiej rodziny królewskiej, Henry Cédarda. # [[Sosy/Sos Choron|Sos Choron (sauce Choron)]] - nazwa pochodzi od nazwiska francuskiego szefa kuchni Alexandre'a Etienne'a Chorona. # [[Sosy/Sos holenderski|Sos holenderski (sauce hollandaise)]] # [[Sosy/Sos kawiorowy|sos kawiorowy]] # [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - nazwa pochodzi od czerwonych pomarańczy (tzw. pomarańczy sycylijskich lub maltańskich). # [[Sosy/Sos maślano-cytrynowy|Sos maślano-cytrynowy (beurre blanc au citron)]] # [[Sosy/Sos mikado|sos mikado (sauce mikado)]] - nazwa sosu Mikado pochodzi od dawnego, historycznego tytułu cesarza Japonii # [[Sosy/Sos musztardowo-śmietanowy|Sos musztardowo-śmietanowy (sauce à la crème et moutarde)]] # [[Sosy/Sos musztardowy|sos musztardowy (sauce dijonnaise, sauce moutarde)]] # [[Sosy/Sos maślano-winny|Sos maślano-winny (beurre blanc)]] # [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] # [[Sosy/Sos pieczarkowy|Sos pieczarkowy (sauce aux champignons)]] # [[Sosy/Sos Romanoff|sos Romanoff (sauce Romanoff)]] - nazwa wywodzi się od nazwiska rosyjskiej dynastii carskiej Romanowów. # [[Sosy/Sos wenecki|sos wenecki (sauce vénitienne)]] == Sosy do dań == * Szparagi # Klasyczny [[Sosy/Sos holenderski|sos holenderski]] doskonale pasuje do białych szparagów. # [[Sosy/Sos bearneński|Sos bearneński]] ze względu na swój ziołowy, lekko anyżowy aromat, stanowi doskonałą, bardziej wyrazistą alternatywę dla klasycznego [[Sosy/Sos holenderski|sosu holenderskiego]]. # Roztopione masło: najbardziej tradycyjna i najprostsza wersja. Masło lekko podgrzewa się (często z odrobiną soku z cytryny) i polewa nim szparagi. # [[Sosy/Palone masło|Palone masło (beurre noisette)]] jest idealne do szparagów z bułką tartą. # Szparagi z szynką polane [[Sosy/Sos bolzański|sosem bolzańskim]] i posypane parmezanem to pyszne zestawienie. # [[Sosy/Sos maltański|Sos maltański]]. == [[Sosy/Pomoc|Słowniczek]] == == [[Sosy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} tgfdyhvwi3t18jsgb8m6rqa3suz2zdp 546555 546553 2026-06-12T18:12:56Z EdytaT 2664 /* Sosy */ 546555 wikitext text/x-wiki {{status|-25%|Kulinaria}} {{Rozdział|Podręcznik|Sosy}} <small>< [[Sosy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Sosy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Sosy == # [[Sosy/Palone masło|Palone masło (beurre noisette)]] # [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - został wymyślony w 1836 roku w restauracji Le Pavillon Henri IV w podparyskim Saint-Germain-en-Laye przez szefa kuchni Jeana-Louisa-François Collineta na cześć króla Francji Henryka IV, który urodził się w Béarn i był nazywany „Wielkim Béarnczykiem”. # [[Sosy/Sos bolzański|Sos bolzański (sauce de Bolzano)]] - nazwa pochodzi od miasta Bolzano, stolicy prowincji Południowy Tyrol. # [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] # [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] - nazwa nawiązuje do południowoniemieckiej Bawarii i jej tradycji kulinarnych. # [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] - nazwa pochodzi od nazwiska wybitnego francuskiego szefa kuchni brytyjskiej rodziny królewskiej, Henry Cédarda. # [[Sosy/Sos Choron|Sos Choron (sauce Choron)]] - nazwa pochodzi od nazwiska francuskiego szefa kuchni Alexandre'a Etienne'a Chorona. # [[Sosy/Sos holenderski|Sos holenderski (sauce hollandaise)]] # [[Sosy/Sos kawiorowy|sos kawiorowy]] # [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - nazwa pochodzi od czerwonych pomarańczy (tzw. pomarańczy sycylijskich lub maltańskich). # [[Sosy/Sos maślano-cytrynowy|Sos maślano-cytrynowy (beurre blanc au citron)]] # [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] - nazwa sosu Mikado pochodzi od dawnego, historycznego tytułu cesarza Japonii # [[Sosy/Sos musztardowo-śmietanowy|Sos musztardowo-śmietanowy (sauce à la crème et moutarde)]] # [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise, sauce moutarde)]] # [[Sosy/Sos maślano-winny|Sos maślano-winny (beurre blanc)]] # [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] # [[Sosy/Sos pieczarkowy|Sos pieczarkowy (sauce aux champignons)]] # [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] - nazwa wywodzi się od nazwiska rosyjskiej dynastii carskiej Romanowów. # [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Sosy do dań == * Szparagi # Klasyczny [[Sosy/Sos holenderski|sos holenderski]] doskonale pasuje do białych szparagów. # [[Sosy/Sos bearneński|Sos bearneński]] ze względu na swój ziołowy, lekko anyżowy aromat, stanowi doskonałą, bardziej wyrazistą alternatywę dla klasycznego [[Sosy/Sos holenderski|sosu holenderskiego]]. # Roztopione masło: najbardziej tradycyjna i najprostsza wersja. Masło lekko podgrzewa się (często z odrobiną soku z cytryny) i polewa nim szparagi. # [[Sosy/Palone masło|Palone masło (beurre noisette)]] jest idealne do szparagów z bułką tartą. # Szparagi z szynką polane [[Sosy/Sos bolzański|sosem bolzańskim]] i posypane parmezanem to pyszne zestawienie. # [[Sosy/Sos maltański|Sos maltański]]. == [[Sosy/Pomoc|Słowniczek]] == == [[Sosy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} g904xncslr7xhp0fehpvx5ohqm2wd5m Sosy/Sos holenderski 0 63595 546551 544741 2026-06-12T17:55:33Z EdytaT 2664 546551 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|sos bearneński (sauce béarnaise)]] * [[Sosy/Sos boski|sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|sos cédard (sauce cédard)]] * [[Sosy/Sos choron|sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|sos kawiorowy]] * [[Sosy/Sos mikado|sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie za gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> bn5w6xsu4uasvjrvujugzc1j7p1jpk4 546554 546551 2026-06-12T18:12:05Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546554 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|sos bearneński (sauce béarnaise)]] * [[Sosy/Sos bawarski|sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|sos cédard (sauce cédard)]] * [[Sosy/Sos choron|sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|sos kawiorowy]] * [[Sosy/Sos mikado|sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie za gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 9na8826csv6r9og7ta2gd02dxgw9cb4 546556 546554 2026-06-12T18:13:17Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546556 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|sos bearneński (sauce béarnaise)]] * [[Sosy/Sos bawarski|sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|sos kawiorowy]] * [[Sosy/Sos mikado|sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie za gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 96kf1shx4me6liwrbf0rel3mhoy08y1 546557 546556 2026-06-12T18:13:45Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546557 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|Sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie za gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> b04tdkbp6jsalh1h04qu4mqmvjtkair 546558 546557 2026-06-12T19:02:24Z EdytaT 2664 /* Kompozycje smakowe */ 546558 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|Sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 0uzrlcbyqcrx16324j93rle44fkbjal 546562 546558 2026-06-12T19:29:15Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546562 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|Sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] * [[Sosy/Sos maltański|Sos maltański (sauce maltais)]] * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 0x9r1ti8smfx6amddn5e3ijdwrwvcp5 546563 546562 2026-06-12T19:29:33Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546563 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|Sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> qmubl7ew6c54w7wssdhfxazvr6mggr1 546564 546563 2026-06-12T19:30:08Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546564 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|Sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - z pomarańczą. * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> kldnbsqaigmnd56qtn4obdbgq1az4c9 546565 546564 2026-06-12T19:32:26Z EdytaT 2664 546565 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - [[Zioła i przyprawy/Estragon|estragonem]], [[Zioła i przyprawy/Trybula|trybulą]] i [[Zioła i przyprawy/Szalotka|szalotką]] * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|Sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - z pomarańczą. * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> omtsjcrgb7iqqz02suizopznlrobsad 546566 546565 2026-06-12T19:32:39Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546566 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - z [[Zioła i przyprawy/Estragon|estragonem]], [[Zioła i przyprawy/Trybula|trybulą]] i [[Zioła i przyprawy/Szalotka|szalotką]] * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] * [[Sosy/Sos choron|Sos choron (sauce Choron)]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - z pomarańczą. * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> k9l331d97lubso3lgad0m4tnjzxd0ln 546567 546566 2026-06-12T19:48:17Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546567 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - z [[Zioła i przyprawy/Estragon|estragonem]], [[Zioła i przyprawy/Trybula|trybulą]] i [[Zioła i przyprawy/Szalotka|szalotką]]. * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] - z dodatkiem [[Zioła i przyprawy/Wino białe|białego wina]] i ziół. * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] - z bulionem drobiowym (glace de volaille) i [[Zioła i przyprawy/Śmietana]]|ubitą śmietaną]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] - z pieczarkami, [[Zioła i przyprawy/Cytryna|sokiem z cytryny]] i bulionem drobiowym (glace de volaille). * [[Sosy/Sos choron|Sos choron (sauce Choron)]] - z [[Zioła i przyprawy/Koncentrat pomidorowy|koncentratem pomidorowym]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] - z kawiorem. * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - z pomarańczą. * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] - ze [[Zioła i przyprawy/Cytryna|skórka z cytryny]] lub [[Zioła i przyprawy/Mandarynka|mandarynki]]. * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] - z [[Zioła i przyprawy/Śmietana|ubitą śmietaną]]. * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] z [[Zioła i przyprawy/Musztarda|musztardą]] i [[Zioła i przyprawy/Śmietana|ubitą śmietaną]]. * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] - również z kawiorem. * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] - z dodatkiem zblendowanej [[Zioła i przyprawy/Pietruszka|pietruszki]], [[Zioła i przyprawy/Trybula|trybuli]], [[Zioła i przyprawy/Estragon|estragonu]] i trochę szpinaku. == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> ta96cbvsgduvifxoj6x8f83uvafswl6 546568 546567 2026-06-12T19:48:52Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546568 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - z [[Zioła i przyprawy/Estragon|estragonem]], [[Zioła i przyprawy/Trybula|trybulą]] i [[Zioła i przyprawy/Szalotka|szalotką]]. * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] - z dodatkiem [[Zioła i przyprawy/Wino białe|białego wina]] i ziół. * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] - z bulionem drobiowym (glace de volaille) i [[Zioła i przyprawy/Śmietana]]|ubitą śmietaną]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] - z pieczarkami, [[Zioła i przyprawy/Cytryna|sokiem z cytryny]] i bulionem drobiowym (glace de volaille). * [[Sosy/Sos choron|Sos choron (sauce Choron)]] - z [[Zioła i przyprawy/Koncentrat pomidorowy|koncentratem pomidorowym]] * [[Sosy/Sos kawiorowy|Sos kawiorowy]] - z kawiorem. * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - z pomarańczą. * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] - ze [[Zioła i przyprawy/Cytryna|skórką z cytryny]] lub [[Zioła i przyprawy/Mandarynka|mandarynki]]. * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] - z [[Zioła i przyprawy/Śmietana|ubitą śmietaną]]. * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] z [[Zioła i przyprawy/Musztarda|musztardą]] i [[Zioła i przyprawy/Śmietana|ubitą śmietaną]]. * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] - również z kawiorem. * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] - z dodatkiem zblendowanej [[Zioła i przyprawy/Pietruszka|pietruszki]], [[Zioła i przyprawy/Trybula|trybuli]], [[Zioła i przyprawy/Estragon|estragonu]] i trochę szpinaku. == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 15c4ilyui53ywa93dsijp1v1hn7hqqi 546569 546568 2026-06-12T19:50:41Z EdytaT 2664 /* Warianty sosu holenderskiego */ 546569 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - z [[Zioła i przyprawy/Estragon|estragonem]], [[Zioła i przyprawy/Trybula|trybulą]] i [[Zioła i przyprawy/Szalotka|szalotką]]. * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] - z dodatkiem [[Zioła i przyprawy/Wino białe|białego wina]] i ziół. * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] - z bulionem drobiowym (glace de volaille) i [[Zioła i przyprawy/Śmietana|śmietaną]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] - z pieczarkami, [[Zioła i przyprawy/Cytryna|sokiem z cytryny]] i bulionem drobiowym (glace de volaille). * [[Sosy/Sos choron|Sos choron (sauce Choron)]] - z [[Zioła i przyprawy/Koncentrat pomidorowy|koncentratem pomidorowym]]. * [[Sosy/Sos kawiorowy|Sos kawiorowy]] - z kawiorem. * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - z pomarańczą. * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] - ze [[Zioła i przyprawy/Cytryna|skórką z cytryny]] lub [[Zioła i przyprawy/Mandarynka|mandarynki]]. * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] - z [[Zioła i przyprawy/Śmietana|śmietaną]]. * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] z [[Zioła i przyprawy/Musztarda|musztardą]] i [[Zioła i przyprawy/Śmietana|śmietaną]]. * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] - również z kawiorem. * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] - z dodatkiem zblendowanej [[Zioła i przyprawy/Pietruszka|pietruszki]], [[Zioła i przyprawy/Trybula|trybuli]], [[Zioła i przyprawy/Estragon|estragonu]] i trochę szpinaku. == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 4ylx2hwpfvg45n1sw6px8df7dn8709z 546573 546569 2026-06-12T20:04:59Z EdytaT 2664 /* Kompozycje smakowe */ 546573 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos holenderski}} [[Plik:Holandar saltsa.jpg|thumb|Sos holenderski]] {{wikipedia|Sos holenderski}} {{wikisłownik|sos holenderski}} {{Wikibooks|Książka_kucharska/Sos_holenderski|sos holenderski}} {{Wikiźródła|365 obiadów za 5 złotych/Sos holenderski|Sos holenderski w ''365 obiadów za 5 złotych''}} == Sos holenderski (sauce Hollandaise) == * Ten wykwintny sos maślany powstał prawdopodobnie w XVIII wieku w Normandii. * Jest jednym z pięciu legendarnych [[Sosy/Pomoc#S|sosów bazowych]] kuchni francuskiej. * Jest podawany na ciepło. == Warianty sosu holenderskiego == * [[Sosy/Sos bearneński|Sos bearneński (sauce béarnaise)]] - z [[Zioła i przyprawy/Estragon|estragonem]], [[Zioła i przyprawy/Trybula|trybulą]] i [[Zioła i przyprawy/Szalotka|szalotką]]. * [[Sosy/Sos bawarski|Sos bawarski (sauce Bavaroise)]] - z dodatkiem [[Zioła i przyprawy/Wino białe|białego wina]] i ziół. * [[Sosy/Sos boski|Sos boski (sos holenderski z truflami, sauce divine)]] - z bulionem drobiowym (glace de volaille) i [[Zioła i przyprawy/Śmietana|śmietaną]] * [[Sosy/Sos cédard|Sos Cédard (sauce Cédard)]] - z pieczarkami, [[Zioła i przyprawy/Cytryna|sokiem z cytryny]] i bulionem drobiowym (glace de volaille). * [[Sosy/Sos choron|Sos choron (sauce Choron)]] - z [[Zioła i przyprawy/Koncentrat pomidorowy|koncentratem pomidorowym]]. * [[Sosy/Sos kawiorowy|Sos kawiorowy]] - z kawiorem. * [[Sosy/Sos maltański|Sos maltański (sauce maltaise)]] - z pomarańczą. * [[Sosy/Sos mikado|Sos mikado (sauce mikado)]] - ze [[Zioła i przyprawy/Cytryna|skórką z cytryny]] lub [[Zioła i przyprawy/Mandarynka|mandarynki]]. * [[Sosy/Sos muślinowy|Sos muślinowy (sauce mousseline)]] - z [[Zioła i przyprawy/Śmietana|śmietaną]]. * [[Sosy/Sos musztardowy|Sos musztardowy (sauce dijonnaise)]] z [[Zioła i przyprawy/Musztarda|musztardą]] i [[Zioła i przyprawy/Śmietana|śmietaną]]. * [[Sosy/Sos Romanoff|Sos Romanoff (sauce Romanoff)]] - również z kawiorem. * [[Sosy/Sos wenecki|Sos wenecki (sauce vénitienne)]] - z dodatkiem zblendowanej [[Zioła i przyprawy/Pietruszka|pietruszki]], [[Zioła i przyprawy/Trybula|trybuli]], [[Zioła i przyprawy/Estragon|estragonu]] i trochę szpinaku. == Kompozycje smakowe == * Klasycznie, elegancko i szybko: :* 250 g masła klarowanego (ważne: roztopionego, ale nie gorącego!) :* 2 żółtka (bardzo świeże, najlepiej wielkości M lub L) :* 1–2 łyżki soku z [[Zioła i przyprawy/Cytryna|cytryny]] (lub soku z [[Zioła i przyprawy/Limonka|limonki]]) :* 1–2 łyżki wody lub wytrawnego [[Zioła i przyprawy/Wino|białego wina]] :* [[Zioła i przyprawy/Sól|sól]] i szczypta (białego) [[Zioła i przyprawy/Pieprz|pieprzu]] lub [[Zioła i przyprawy/Pieprz cayenne|pieprzu cayenne]] * Tradycyjnie dla wzbogacenia smaku: :* Mała szalotka, odrobina [[Zioła i przyprawy/Ocet|octu]] z białego wina, 1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]] i kilka ziaren białego [[Zioła i przyprawy/Pieprz|pieprzu]]. Składniki należy odparować do odpowiedniej konsystencji. * Ziołowo: :* Wzbogać sos holenderski ziołami ([[Zioła i przyprawy/Czosnek niedźwiedzi|czosnek niedźwiedzi]] lub [[Zioła i przyprawy/Pietruszka|pietruszka]]). [[Plik:Spargel sauce hollandaise.jpg|thumb|Szparagi z sosem holenderskim]] == Potrawy == * Szparagi! * Gotowana szynka * Delikatna cielęcina * Panierowane sznycle * Dania mięsne, również gotowane w garnku lub smażone na patelni, zwłaszcza klopsiki królewskie lub filet wieprzowy. * Dania warzywne, zwłaszcza zapiekany kalafior lub brokuły * Dania ziemniaczane lub zapiekanki (z mięsem lub bez) == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 0wvokbr4barbm1n6zhm6unm4fcw1mgx Sosy/Sos bearneński 0 63619 546559 544597 2026-06-12T19:04:58Z EdytaT 2664 546559 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos bearneński}} [[Plik:Béarner Sauce.jpg|thumb|Sos bearneński]] {{wikipedia|Sos bearneński}} {{wikisłownik|sos bearneński}} == Sos bearneński (sauce béarnaise) == * Sos berneński to klasyczny sos maślany kuchni francuskiej. Jest to aromatyczna odmiana słynnego [[Sosy/Sos holenderski|sosu holenderskiego]], jednak przez dodanie świeżego [[Zioła i przyprawy/Estragon|estragonu]], [[Zioła i przyprawy/Trybula|trybuli]] i [[Zioła i przyprawy/Szalotka|szalotki]] ma znacznie bardziej wyrazisty smak. * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: podstawę stanowią żółtka jajek i płynne (zazwyczaj klarowane) masło. Dodaje się do tego redukcję (zredukowany wywar) z białego wina, octu z białego wina, szalotki i ziaren pieprzu. Typowymi ziołami do doprawiania są przede wszystkim świeży [[Zioła i przyprawy/Estragon|estragon]] i [[Zioła i przyprawy/Trybula|trybula]]. Sos jest kremowy, gęsty i ma delikatną nutę kwaskowatości połączoną z typowym, lekko anyżowym aromatem estragonu. [[Plik:Chateaubriand with Bearnaise.jpg|thumb|Chateaubriand z sosem bearneńskim]] == Potrawy == * Szparagi! * Steki wołowe, chateaubriand * Ryba z grilla == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> tk38hz32rjkue14496mtgoccvsz5g7z 546581 546559 2026-06-13T08:03:21Z EdytaT 2664 546581 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos bearneński}} [[Plik:Béarner Sauce.jpg|thumb|Sos bearneński]] {{wikipedia|Sos bearneński}} {{wikisłownik|sos bearneński}} == Sos bearneński (sauce béarnaise) == * Sos berneński to klasyczny sos maślany kuchni francuskiej. Jest to aromatyczna odmiana słynnego [[Sosy/Sos holenderski|sosu holenderskiego]], jednak ma znacznie bardziej wyrazisty smak. * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: podstawę stanowią żółtka jajek i płynne (zazwyczaj klarowane) masło. Dodaje się do tego zredukowany wywar z białego wina, octu z białego wina, [[Zioła i przyprawy/Szalotka|szalotki]] i [[Zioła i przyprawy/Pieprz|ziaren pieprzu]]. Typowymi ziołami do doprawiania są przede wszystkim świeży [[Zioła i przyprawy/Estragon|estragon]] i [[Zioła i przyprawy/Trybula|trybula]]. * Sos jest kremowy, gęsty i ma delikatną nutę kwaskowatości połączoną z typowym, lekko anyżowym aromatem estragonu. == Przepisy == * Szalotkę, wodę, ocet z białego wina, ziarna pieprzu gotuj na wolnym ogniu przez około 15 minut, aż pozostanie 1–2 łyżki, a następnie przecedź. * Sklaruj masło lub użyj masła klarowanego, podgrzej do temperatury około {{C|75°}} w [[Sosy/Pomoc#K|kąpieli wodnej]]. * Dodaj żółtka ubijając na kremową masę. Nie nie dopuścić do zważenia! * Przypraw [[Zioła i przyprawy/Sól|solą]], [[Zioła i przyprawy/Pieprz cayenne|pieprzem cayenne]] i [[Zioła i przyprawy/Gałka muszkatołowa|gałką muszkatołową]], na koniec [[Zioła i przyprawy/Trybula|świeżą trybulą]] lub [[Zioła i przyprawy/Estragon|estragonem]]. * Możesz trzymać sos w piekarniku w temperaturze {{C|70°}}-{{C|80°}} przez około 15 minut. [[Plik:Chateaubriand with Bearnaise.jpg|thumb|Chateaubriand z sosem bearneńskim]] == Potrawy == * Steki wołowe, chateaubriand * Ryba z grilla * Warzywa :* Szparagi! == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> iq3jmuzk0fgwzuf4botimv0jyl7d9br 546582 546581 2026-06-13T08:04:37Z EdytaT 2664 546582 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos bearneński}} [[Plik:Béarner Sauce.jpg|thumb|Sos bearneński]] {{wikipedia|Sos bearneński}} {{wikisłownik|sos bearneński}} == Sos bearneński (sauce béarnaise) == * Sos berneński to klasyczny sos maślany kuchni francuskiej. Jest to aromatyczna odmiana słynnego [[Sosy/Sos holenderski|sosu holenderskiego]], jednak ma znacznie bardziej wyrazisty smak. * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: podstawę stanowią żółtka jajek i płynne (zazwyczaj klarowane) masło. Dodaje się do tego zredukowany wywar z białego wina, octu z białego wina, [[Zioła i przyprawy/Szalotka|szalotki]] i [[Zioła i przyprawy/Pieprz|ziaren pieprzu]]. Typowymi ziołami do doprawiania są przede wszystkim świeży [[Zioła i przyprawy/Estragon|estragon]] i [[Zioła i przyprawy/Trybula|trybula]]. * Sos jest kremowy, gęsty i ma delikatną nutę kwaskowatości połączoną z typowym, lekko anyżowym aromatem estragonu. == Przepisy == * [[Zioła i przyprawy/Szalotka|Szalotkę]], wodę, ocet z białego wina, ziarna pieprzu gotuj na wolnym ogniu przez około 15 minut, aż pozostanie 1–2 łyżki, a następnie przecedź. * Sklaruj masło lub użyj masła klarowanego, podgrzej do temperatury około {{C|75°}} w [[Sosy/Pomoc#K|kąpieli wodnej]]. * Dodaj żółtka ubijając na kremową masę. Nie nie dopuścić do zważenia! * Przypraw [[Zioła i przyprawy/Sól|solą]], [[Zioła i przyprawy/Pieprz cayenne|pieprzem cayenne]] i [[Zioła i przyprawy/Gałka muszkatołowa|gałką muszkatołową]], na koniec [[Zioła i przyprawy/Trybula|świeżą trybulą]] lub [[Zioła i przyprawy/Estragon|estragonem]]. * Możesz trzymać sos w piekarniku w temperaturze {{C|70°}}-{{C|80°}} przez około 15 minut. [[Plik:Chateaubriand with Bearnaise.jpg|thumb|Chateaubriand z sosem bearneńskim]] == Potrawy == * Steki wołowe, chateaubriand * Ryba z grilla * Warzywa :* Szparagi! == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> irmv7qy0slsroqhqwcm2f5n97nh0g74 546583 546582 2026-06-13T08:28:56Z EdytaT 2664 546583 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos bearneński}} [[Plik:Béarner Sauce.jpg|thumb|Sos bearneński]] {{wikipedia|Sos bearneński}} {{wikisłownik|sos bearneński}} == Sos bearneński (sauce béarnaise) == * Sos berneński to klasyczny sos maślany kuchni francuskiej. Jest to aromatyczna odmiana słynnego [[Sosy/Sos holenderski|sosu holenderskiego]], jednak ma znacznie bardziej wyrazisty smak. * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: podstawę stanowią żółtka jajek i płynne (zazwyczaj klarowane) masło. Dodaje się do tego zredukowany wywar z białego wina, octu z białego wina, [[Zioła i przyprawy/Szalotka|szalotki]] i [[Zioła i przyprawy/Pieprz|ziaren pieprzu]]. Typowymi ziołami do doprawiania są przede wszystkim świeży [[Zioła i przyprawy/Estragon|estragon]] i [[Zioła i przyprawy/Trybula|trybula]]. * Sos jest kremowy, gęsty i ma delikatną nutę kwaskowatości połączoną z typowym, lekko anyżowym aromatem estragonu. == Przepisy == * 2 [[Zioła i przyprawy/Szalotka|szalotki]], 100 ml wody, ocet z białego wina, ziarna pieprzu gotuj na wolnym ogniu przez około 15 minut, aż pozostanie 1–2 łyżki, a następnie przecedź. * Sklaruj masło lub użyj masła klarowanego, podgrzej do temperatury około {{C|75°}} w [[Sosy/Pomoc#K|kąpieli wodnej]]. * Dodaj żółtka ubijając na kremową masę. Nie nie dopuścić do zważenia! * Przypraw [[Zioła i przyprawy/Sól|solą]], [[Zioła i przyprawy/Pieprz cayenne|pieprzem cayenne]] i [[Zioła i przyprawy/Gałka muszkatołowa|gałką muszkatołową]], na koniec [[Zioła i przyprawy/Trybula|świeżą trybulą]] lub [[Zioła i przyprawy/Estragon|estragonem]]. * Możesz trzymać sos w piekarniku w temperaturze {{C|70°}}-{{C|80°}} przez około 15 minut. [[Plik:Chateaubriand with Bearnaise.jpg|thumb|Chateaubriand z sosem bearneńskim]] == Potrawy == * Steki wołowe, chateaubriand * Ryba z grilla * Warzywa :* Szparagi! == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 8ruwzhx3h4tf2pj0529i7ga47aq93ne Microsoft Windows/Windows NT 0 63671 546527 2026-06-12T14:02:41Z Niojs123 37938 Utworzono nową stronę "Microsoft Windows NT (New Technology) to rodzina systemów 32- i 64-bitowych firmy Microsoft, początkowo przeznaczonych do zastosowań profesjonalnych, obecnie z tej rodziny pochodzą także najpopularniejsze systemy dla użytkowników domowych. Rodzina systemów NT wywodzi się z systemu OS/2, opracowanego przez IBM we współpracy z Microsoftem. Początkowe wersje Windows NT w wersji 3.x mogły być instalowane na partycji HPFS (System plików OS/2), właśnie d…" 546527 wikitext text/x-wiki Microsoft Windows NT (New Technology) to rodzina systemów 32- i 64-bitowych firmy Microsoft, początkowo przeznaczonych do zastosowań profesjonalnych, obecnie z tej rodziny pochodzą także najpopularniejsze systemy dla użytkowników domowych. Rodzina systemów NT wywodzi się z systemu OS/2, opracowanego przez IBM we współpracy z Microsoftem. Początkowe wersje Windows NT w wersji 3.x mogły być instalowane na partycji HPFS (System plików OS/2), właśnie dlatego, że rodzina NT bazowała na kodzie OS/2. Pierwszy system operacyjny z tej rodziny ukazał się 27 lipca 1993. c7pd8vgc49cnjsh0j07ps9xn1zthew2 Sosy/Pomoc 0 63672 546546 2026-06-12T16:27:07Z EdytaT 2664 Utworzono nową stronę " {{Podrozdział|[[Sosy]]|Słowniczek}} {{SpisAlfabetyczny}} == S == * sosy bazowe - francuskie sosy podstawowe (les sauces mères) to pięć klasycznych sosówsztuki kulinarnej, które na początku XX wieku ujednolicił Auguste Escoffier. Stanowią one podstawę, z której poprzez dodanie ziół, przypraw, sera lub wina powstają setki innych sosów pochodnych (Petites Sauces). == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude>" 546546 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Słowniczek}} {{SpisAlfabetyczny}} == S == * sosy bazowe - francuskie sosy podstawowe (les sauces mères) to pięć klasycznych sosówsztuki kulinarnej, które na początku XX wieku ujednolicił Auguste Escoffier. Stanowią one podstawę, z której poprzez dodanie ziół, przypraw, sera lub wina powstają setki innych sosów pochodnych (Petites Sauces). == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> ceoxzp7ttl6h4ze7ql10edtl4240thw 546547 546546 2026-06-12T16:27:37Z EdytaT 2664 546547 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Słowniczek}} {{SpisAlfabetyczny}} == S == * sosy bazowe - francuskie sosy podstawowe (les sauces mères) to pięć klasycznych sosów sztuki kulinarnej. Stanowią one podstawę, z której poprzez dodanie ziół, przypraw, sera lub wina powstają setki innych sosów pochodnych (Petites Sauces). == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> j6djbqxhkjhjkjklnxwe7gqbwr2wpk1 546548 546547 2026-06-12T16:31:13Z EdytaT 2664 546548 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Słowniczek}} {{SpisAlfabetyczny}} == S == * sosy bazowe - francuskie sosy podstawowe (les sauces mères) to pięć klasycznych sosów sztuki kulinarnej. Stanowią one podstawę, z której poprzez dodanie ziół, przypraw, sera lub wina powstają setki innych sosów pochodnych (Petites Sauces) (zob. też [[w:Sosy bazowe|Sosy bazowe]] w Wikipedii). == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> itgkcga883e2sx7nz2prthx9eviwhr0 Sosy/Sos maltański 0 63673 546549 2026-06-12T16:40:28Z EdytaT 2664 Utworzono nową stronę " {{Podrozdział|[[Sosy]]|Sos maltański}} == Sos maltański (sauce maltaise) == * Sos maltańskim to klasyczna odmiana [[Sosy/Sos holenderski|sosu holenderskiego]], w której [[Zioła i przyprawy/Cytryna|cytrynę]] lub [[Zioła i przyprawy/Ocet|ocet]] zastępuje się sokiem i startą skórką [[Zioła i przyprawy/Pomarańcza|pomarańczy]] (tradycyjnie pomarańczy krwistej). * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: == Przepisy == == Po…" 546549 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos maltański}} == Sos maltański (sauce maltaise) == * Sos maltańskim to klasyczna odmiana [[Sosy/Sos holenderski|sosu holenderskiego]], w której [[Zioła i przyprawy/Cytryna|cytrynę]] lub [[Zioła i przyprawy/Ocet|ocet]] zastępuje się sokiem i startą skórką [[Zioła i przyprawy/Pomarańcza|pomarańczy]] (tradycyjnie pomarańczy krwistej). * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: == Przepisy == == Potrawy == * Warzywa :* Szparagi == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> f0nqebgnoutfmiq4sjrqgcpykqg7f6i 546560 546549 2026-06-12T19:12:02Z EdytaT 2664 546560 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos maltański}} == Sos maltański (sauce maltaise) == * Sos maltański to pomarańczowy wariant [[Sosy/Sos holenderski|sosu holenderskiego]]. * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: jedyną, ale decydującą różnicą w stosunku do [[Sosy/Sos holenderski|sosu holenderskiego]] jest zastąpienie [[Zioła i przyprawy/Cytryna|cytryny]] lub [[Zioła i przyprawy/Ocet|octu]] sokiem z czerwonych (krwistych) pomarańczy i skórką pomarańczową. * Olejki eteryczne z pomarańczy nadają mu delikatną, lekko kwaskowatą, owocową nutę, która doskonale równoważy smak klasycznego sosu na bazie masła. == Przepisy == == Potrawy == * Warzywa :* Szparagi == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> e221p3npapwgo5xdy7wz9sx795nswcb 546561 546560 2026-06-12T19:28:02Z EdytaT 2664 546561 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos maltański}} == Sos maltański (sauce maltaise) == * Sos maltański to pomarańczowy wariant [[Sosy/Sos holenderski|sosu holenderskiego]], absolutny klasyk wiosennej kuchni. * Jest podawany na ciepło. == Kompozycje smakowe == * Klasycznie: jedyną, ale decydującą różnicą w stosunku do [[Sosy/Sos holenderski|sosu holenderskiego]] jest zastąpienie [[Zioła i przyprawy/Cytryna|cytryny]] lub [[Zioła i przyprawy/Ocet|octu]] sokiem z czerwonych (krwistych) pomarańczy i skórką pomarańczową. * Olejki eteryczne z pomarańczy nadają mu delikatną, lekko kwaskowatą, owocową nutę, która doskonale równoważy smak klasycznego sosu na bazie masła. == Przepisy == == Potrawy == * Duszona ryba * Delikatne warzywa :* Szparagi, szczególnie zielone == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> hsdwihflte89apzkcdyaclkcgv5dtw5 546572 546561 2026-06-12T20:02:35Z EdytaT 2664 546572 wikitext text/x-wiki {{Podrozdział|[[Sosy]]|Sos maltański}} == Sos maltański (sauce maltaise) == * Sos maltański to pomarańczowy wariant [[Sosy/Sos holenderski|sosu holenderskiego]], absolutny klasyk wiosennej kuchni. * Jego nazwa wywodzi się od śródziemnomorskiej wyspy Malta, gdzie tamtejsze owoce cytrusowe (w tym pomarańcze krwiste) są szczególnie cenione w klasycznej kuchni. * Jest podawany na ciepło. * W kuchni staropolskiej i myśliwskiej istnieje również inny „sos maltański” – słodko-pikantny, zimny sos na bazie miodu, chrzanu, imbiru i soków owocowych, który był podawany do pieczonych mięs i wędlin. == Kompozycje smakowe == * Klasycznie: jedyną, ale decydującą różnicą w stosunku do [[Sosy/Sos holenderski|sosu holenderskiego]] jest zastąpienie [[Zioła i przyprawy/Cytryna|cytryny]] lub [[Zioła i przyprawy/Ocet|octu]] sokiem z czerwonych (krwistych) pomarańczy i skórką pomarańczową. * Olejki eteryczne z pomarańczy nadają mu delikatną, lekko kwaskowatą, owocową nutę, która doskonale równoważy smak klasycznego sosu na bazie masła. == Przepisy == * Podstawą jest klasyczny [[Sosy/Sos holenderski|sos holenderski]] z żółtek, roztopionego (klarowanego) masła oraz redukcji z [[Zioła i przyprawy/Wino białe|białego wina]], [[Zioła i przyprawy/Szalotki|szalotki]] i [[Zioła i przyprawy/Pieprz|pieprzu]]. * Na koniec sos doprawia się sokiem ze świeżo wyciśniętych [[Zioła i przyprawy/Pomarańcza|czerwonych pomarańczy]] (tradycyjnie) lub zwykłych pomarańczy oraz odrobiną drobno startej skórki pomarańczowej. == Potrawy == * Duszona ryba * Owoce morza * Delikatne warzywa :* Szparagi, szczególnie zielone == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> lunkie5hpdc7kt6znaf6uoi72lj1no5 Wikipedysta:AllDragonsAreDead 2 63674 546571 2026-06-12T19:54:13Z Malarz pl 9827 Malarz pl przeniósł stronę [[Wikipedysta:AllDragonsAreDead]] do [[Wikipedysta:Senvido]]: Automatycznie przeniesiono stronę podczas zmiany nazwy użytkownika z "[[Special:CentralAuth/AllDragonsAreDead|AllDragonsAreDead]]" na "[[Special:CentralAuth/Senvido|Senvido]]" 546571 wikitext text/x-wiki #PATRZ [[Wikipedysta:Senvido]] edwsyc8g2k30ocemqp6zeg4x47w8zao