Strona główna

Bartosz Reichel
Badania naukowe
Publikacje
Dydaktyka
Seminaria

KNSF SFT "Atom"

Interatomic potentials
Program JMATRIX

e-Doświadczenia
    w fizyce

EGAS 2009

Oferta współpracy

Administracja stroną

Program komputerowy do obliczeń rozproszeniowych przesunięć fazowych metodą J-macierzy
(zarówno wersją nierelatywistyczną jak i relatywistyczną)

Aktualizacja: 29/01/2007

Ogólne informacje

Metoda J-macierzy jest jedną z algebraicznych metod mających zastosowanie w kwantowej teorii rozpraszania. Pozwala ona na przybliżone rozwiązanie problemu rozproszeniowego na radialnym potencjale V=V(r), dążącym do zera szybciej niż potencjał kulombowski. Metoda opiera się na fakcie, że operator radialnej energii kinetycznej, rozwinięty w odpowiednio dobranych bazach, jest trójdiagonalny - tworzy tzw. macierz Jacobiego. Kompletny opis teoretyczny metody znajduje się w dziale dokumentacja.

Celem jednego z projektów naukowych realizowanych w Katedrze jest dalszy rozwój metody J-macierzy oraz programu komputerowego JMATRIX (wraz z dodatkowymi narzędziami), pozwalającego na przeprowadzanie obliczeń relatywistycznych oraz nierelatywistycznych przesunięć fazowych, przy użyciu tej metody. Projekt został rozpoczęty w 1999 roku. Po wyprowadzeniu przez Pawła Horodeckiego wersji relatywistycznej metody (patrz publikacje), pojawiła się potrzeba jej numerycznego sprawdzenia. Autorem pierwszej wersji kodu numerycznego (stworzonego w ramach pracy magisterskiej) jak i wszystkich następnych, jest Paweł Syty. Przeprowadzone testowe obliczenia numeryczne na modelowych potencjałach rozpraszających udowodniły poprawność metody, uwidoczniły jednak skalę problemów, które wiążą się z jej programowaniem. Po opublikowaniu pierwszych wyników, projekt został zawieszony a autorzy zajęli się inną problematyką. W międzyczasie powstała kolejna, usprawniona wersja programu, nie wykorzystana jednak w praktyce.

W bieżącym roku projekt został ponownie przywrócony do realizacji. Kod źródłowy został znacznie usprawniony, obliczenia przyspieszone, wprowadzono do programu nowe, użyteczne funkcje. Trwają również prace nad usprawnieniem samej metody, w celu przyspieszenia zbieżności wyników.

Niniejsza strona ma na celu upublicznienie wyników naszych prac nad metodą J-macierzy, w szczególności programu komputerowego JMATRIX. Dodatkowo, w celach poglądowych zamieszczone zostały notebooki dla pakietu Mathematica firmy Wolfram Research, realizujące to samo zadanie oraz inne materiały związane z metodą.

Autor zezwala na bezpłatne używanie oraz dowolną modyfikację zamieszczonych kodów źródłowych i notebooków, pod następującymi warunkami.

Funkcje programu

  • Możliwość obliczeń zarówno relatywistyczną jak i nierelatywistyczną wersją metody J-macierzy
  • Dwie dostępne bazy: Gaussa i Laguerre'a
  • Możliwość śledzenia zbieżności numerycznych przesunięć fazowych w miarę zwiększania rozmiaru bazy
  • Predefiniowane potencjały modelowe: prostokątna studnia, potencjał typu kulombowskiego oraz Yukawy
  • Możliwość podania dowolnego potencjału rozpraszającego danego wzorem analitycznym
  • Zapisywanie obciętego potencjału do pliku w celu późniejszego ponownego jego użycia
  • Obliczenia dla całego zestawu energii pocisku przy relatywnie małym koszcie obliczeniowym
  • W przypadku studni potencjału obliczanie analitycznej wartości przesunięcia fazowego oraz błędu średniego kwadratowego
  • Uśrednianie wyników numerycznych
  • W pełni skomentowany, przenośny i niezależny od zewnętrznych bibliotek kod źródłowy napisany w Fortranie 95
  • Łatwa kompilacja przy użyciu dostarczonego pliku Makefile
  • Używa jednego, prostego pliku wejściowego, wyniki zapisywane są do plików i wyświetlane na ekranie
  • Przystosowany do uruchamiania w środowiskach wieloprocesorowych (przy użyciu standardu programowania równoległego OpenMP)

Kod źródłowy (Fortran 95)

Bieżąca wersja: 2.01 / 28.01.2007 [skompresowane archiwum tar] [archiwum rar]     [lista zmian]

W celu zbudowania pliku wykonywalnego ze źródeł, wymagany jest kompilator Fortranu 95. W dziale odnośniki zebrane zostały darmowe kompilatory tego języka. Powyższe archiwum zawiera dodatkowo podstawową dokumentację i przykładowy plik wejściowy.

Poprzednie wersje (zdezaktualizowane):
1.0 / 17.02.1999 [skompresowane archiwum tar] [archiwum rar] (Fortran 77)
1.5 / 30.07.2003 [skompresowane archiwum tar] [archiwum rar] (Fortran 90)
2.0 / 24.01.2007 [skompresowane archiwum tar] [archiwum rar]

Binaria

Poniżej zamieszczone zostały binaria dla popularnych systemów operacyjnych, skompilowane na podstawie bieżących źródeł. Dla uzyskania maksymalnej wydajności zalecane jest jednak samodzielne skompilowanie programu na docelowej maszynie. Dodatkowo, przy użyciu poniższych binariów niemożliwe jest podanie dowolnego potencjału, gdyż proces ten wymaga rekompilacji programu. Dla uruchomienia obliczeń należy również przygotować plik wejściowy, przykładowy plik znajduje się tutaj.

Linux x86 [archiwum gzip] [archiwum rar]
Linux x86 OpenMP [archiwum gzip] [archiwum rar]
Linux x86_64/EMT64 [archiwum gzip] [archiwum rar]
Linux x86_64/EMT64   OpenMP   [archiwum gzip]  [archiwum rar]
Windows   x86 [archiwum gzip] [archiwum rar]

Notebooki dla programu Mathematica 5

Zamieszczone poniżej notebooki mogą być przydatne dla lepszego zrozumienia metody, jednak w rzeczywistych obliczeniach kod napisany w Fortranie 95 okazuje się znacząco szybszy i zalecane jest jego używanie. Jeżeli nie posiadasz pakietu Mathematica, do odczytu plików możesz użyć darmowego programu MathReader.

Wersja 2.0 / 24.01.2007 (przypadek relatywistyczny) [notebook]
Wersja 2.0 / 24.01.2007 (przypadek nierelatywistyczny) [notebook]

Dokumentacja (w języku angielskim)

Plik readme [plik tekstowy] (dla wersji 1.5, nowa wersja w przygotowaniu)
Pełna dokumentacja [Adobe PDF]   (dla wersji 1.5, nowa wersja w przygotowaniu)
Lista zmian w programie [plik tekstowy]
Lista "do zrobienia" [plik tekstowy]
Przykładowy plik wejściowy  [plik tekstowy]

Publikacje

Poniższa lista publikacji jest dość krótka, ponieważ projekt nie był rozwijany w latach 2000-2006.

P. Syty, Programowanie metody J-macierzy, praca dyplomowa, Politechnika Gdańska (1999)
P. Syty, The J-matrix method: numerical computations, TASK Quarterly 3 No. 3 (1999)
P. Horodecki, Relativistic J-matrix method, Phys. Rev. A 62, 052716 (2000)

Przykładowe wyniki (wykresy w formacie Adobe PDF)

1. Rozpraszanie na potencjale w kształcie prostokątnej studni: V(r)=V0 dla a<=r<=b, 0 dla r<a lub r>b. Obliczenia nierelatywistyczne i relatywistyczne dla V0=-1, a=0.8, b=1. Parametry rozpraszanej cząstki: l=1, kappa=1, E=3 a.u.

Obliczenia nierelatywistyczne, ustalona energia,
zwiększany rozmiar bazy do N=4000
[baza Gaussa]
[baza Laguerre'a]
Jak wyżej, powiększenie w okolicach N=4000 + wynik analityczny [baza Gaussa]
[baza Laguerre'a]
Jak wyżej, błąd średni kwadratowy [obie bazy]
Ustalony rozmiar bazy, N=4000,
energia zmieniana w zakresie E=0-25 a.u. + wynik analityczny
[obie bazy]
Ustalona energia, zwiększany rozmiar bazy do N=1000,
porównanie wyników relatywistycznych i nierelatywistycznych
[baza Gaussa]
[baza Laguerre'a]

2. Rozpraszanie na obciętym potencjale kulombowskim: V(r)=-Z/r dla r<=r0, 0 dla r>r0. Obliczenia nierelatywistyczne dla Z=30, r0=1. Parametry rozpraszanej cząstki: l=1, kappa=1, E=3 a.u.

Obliczenia nierelatywistyczne, ustalona energia,
zwiększany rozmiar bazy do N=3000
[baza Gaussa]
[baza Laguerre'a]
Jak wyżej, powiększenie w okolicach N=3000 + wynik uśredniony [baza Gaussa]
[baza Laguerre'a]
Ustalony rozmiar bazy, N=3000,
energia zmieniana w zakresie E=0-10 a.u.
[obie bazy]

3. Rozpraszanie relatywistyczne na obciętym potencjale kulombowskim: V(r)=-Z/r for r<=r0, 0 for r>r0. Obliczenia relatywistyczne dla Z=30, r0=1. Parametry rozpraszanej cząstki: różne l i kappa, E=0.4 a.u.

W przygotowaniu

4. Rozpraszanie na potencjale Yukawy: V(r)=-g2Exp(-mr)/r dla r<=r0, 0 dla r>r0. Obliczenia nierelatywistyczne dla g=1, m=1, r0=1. Parametry rozpraszanej cząstki: l=1, kappa=1, E=3 a.u.

W przygotowaniu

Narzędzia

Dodatkowe narzędzia (np. programy ułatwiające tworzenie plików wejściowych) zostaną wkrótce opublikowane.

Odnośniki

The G95 project - darmowy kompilator Fortranu 95, dostępny na wiele platform sprzętowych i programowych
GFortran - darmowy kompilator Fortranu 95/2003 składnik GCC (GNU Compiler Collection)
Intel(r) Fortran Compiler - darmowy dla celów niekomercyjnych kompilator Fortranu 95 dla Linuksa

Informacje kontaktowe

Wszelkie uwagi dotyczące metody, programu komputerowego oraz tej strony WWW będą mile widziane. Proszę je kierować na adres e-mail autora programu: sylas@mif.pg.gda.pl

Webmaster v. 1.3.0