Streszczenie
Współczynnik k_eff jest wygodnym skrótem, ale nie jest modelem reaktora. Dwa układy mogą mieć podobną wartość k_eff, a jednocześnie zupełnie inne rozkłady strumienia, inne widmo neutronów, inną aktywację materiałów, inną odpowiedź na pręty regulacyjne i inny przebieg wypalenia. Dlatego fizyka reaktorów potrzebuje kodów transportu neutronów, które liczą, gdzie neutrony są produkowane, gdzie się rozpraszają, gdzie są pochłaniane, gdzie uciekają i z jaką energią wracają do paliwa.1,2
DRAGON i MCNP dobrze pokazują dwa różne style obliczeń. DRAGON jest kodem komórki sieciowej i kasety paliwowej: liczy transport wielogrupowy, samoochronę rezonansową, homogenizację, kondensację stałych grupowych i wypalenie. MCNP jest ogólnym kodem Monte Carlo transportu cząstek: śledzi losowe historie neutronów, fotonów, elektronów i innych cząstek w geometrii trójwymiarowej, a wyniki zapisuje jako estymatory i tally z niepewnościami statystycznymi.3,4
Rozszerzenie tematu
Dlaczego k_eff nie wystarcza
W najprostszym kalkulatorze pytamy: czy układ mnoży neutrony. Odpowiedź ma postać:
k_eff < 1, k_eff = 1 albo k_eff > 1.
To jest potrzebne, ale bardzo niepełne. k_eff jest liczbą globalną. Nie mówi, czy moc jest równomierna, czy skrajne pręty paliwowe są przeciążone, czy absorber działa lokalnie, czy rezonanse U-238 są dobrze potraktowane, czy neutrony termiczne mają właściwe widmo, ani czy wynik pochodzi z dobrego modelu geometrii.
Lokalny kalkulator k_eff i dwugrupowy kalkulator reaktora są świadomie dydaktyczne. Pokazują, że produkcja, spowalnianie, absorpcja i ucieczka neutronów muszą się zbilansować, ale same informują, że nie zastępują pełnego transportu neutronów z geometrią rdzenia.5,6
Kody transportu są odpowiedzią na pytanie: co kryje się pod tą jedną liczbą.
Pełny problem transportu
Neutron w reaktorze ma położenie, kierunek, energię i czas. Nie porusza się jak "średni neutron". Każde zderzenie może zmienić jego kierunek, energię albo zakończyć jego historię przez pochłonięcie. Jeśli trafi w jądro rozszczepialne, może powstać kilka nowych neutronów o nowych energiach i kierunkach.
Pełny opis korzysta z funkcji kątowej, często zapisywanej symbolicznie jako:
Psi(r, Omega, E, t)
gdzie r oznacza położenie, Omega kierunek, E energię, a t czas. Równanie transportu Boltzmanna bilansuje straty z toru lotu, rozpraszanie do danego kierunku i energii, rozszczepienia oraz źródła zewnętrzne.1
Nie trzeba od razu rozwiązywać pełnego równania w każdej lekcji. Trzeba jednak wiedzieć, że przybliżenia dyfuzyjne, dwugrupowe i czteroczynnikowe są redukcjami tego bogatszego problemu.
Hierarchia modeli
W praktyce edukacyjnej warto myśleć o kilku poziomach:
- bilans jednej grupy: jedna energia, jedna geometria, jeden
k, - model dwugrupowy: neutrony szybkie i termiczne,
- dyfuzja: strumień przestrzenny, ale uproszczony rozkład kierunków,
- transport wielogrupowy: energia podzielona na grupy, geometria i kierunki liczone dokładniej,
- Monte Carlo ciągłoenergetyczne: losowe historie cząstek na danych przekrojach zależnych od energii,
- sprzężone modele rdzenia: transport, termohydraulika, wypalenie, kontrola i sprzężenia zwrotne.
Każdy poziom odpowiada na inne pytanie. Jeśli ktoś pyta, dlaczego moderator ciężkowodny ma korzystniejszy bilans neutronowy, często wystarczy model dyfuzji i spowalniania. Jeśli pyta, jak kaseta paliwowa generuje stałe grupowe do symulatora rdzenia, potrzebny jest kod typu DRAGON. Jeśli pyta, jak rozkłada się fluencja w złożonej geometrii osłony albo detektora, naturalny staje się MCNP, OpenMC albo podobny kod Monte Carlo.
Deterministycznie czy Monte Carlo
Metody deterministyczne rozwiązują przybliżoną postać równania transportu na siatce energii, przestrzeni i kierunków. Wynikiem jest pole strumienia spełniające dyskretyzowane równania. Błąd wynika z przybliżeń: liczby grup energii, siatki przestrzennej, kwadratury kątowej, sposobu traktowania rezonansów, warunków brzegowych i homogenizacji.
Monte Carlo robi coś innego. Losuje historie wielu cząstek: miejsce narodzin, kierunek, drogę do kolejnego zderzenia, typ reakcji, energię po rozproszeniu, ewentualne rozszczepienie i nowe neutrony. Wynikiem nie jest bezpośrednio "dokładne równanie", lecz estymatory statystyczne. Im więcej historii, tym mniejsza niepewność losowa, ale koszt obliczeń rośnie.
Najkrótsza różnica:
- deterministyka: mniej szumu statystycznego, dużo kontroli nad grupami i homogenizacją, ale jawne przybliżenia numeryczne;
- Monte Carlo: bardzo naturalna geometria i ciągłe energie, ale niepewność statystyczna i koszt wielu historii.
Czym jest DRAGON
Manual DRAGON opisuje kod jako zbiór modeli do symulacji zachowania neutronów w komórce elementarnej albo kasecie paliwowej reaktora.3 To jest ważne: DRAGON nie jest przede wszystkim "całym reaktorem w jednym pudełku", lecz kodem sieciowym, który przygotowuje bardzo istotny fragment łańcucha obliczeń.
Z manuala wynika, że DRAGON obejmuje typowe funkcje kodu komórki sieciowej:
- interpolację mikroskopowych przekrojów z bibliotek standardowych,
- obliczenia samoochrony rezonansowej w geometriach wielowymiarowych,
- wielogrupowe i wielowymiarowe obliczenia strumienia neutronów z możliwością uwzględnienia ucieczki,
- równoważność transport-transport albo transport-dyfuzja,
- edycję skondensowanych i zhomogenizowanych własności jądrowych,
- wypalenie paliwa i zmianę składu izotopowego.3
To jest bardzo praktyczny zestaw. Projekt rdzenia nie chce za każdym razem przenosić pełnej geometrii pręta paliwowego do każdego punktu całego reaktora. Najpierw trzeba policzyć komórkę i kasetę, a dopiero potem przenieść uśrednione, ale zachowujące reakcje, stałe do większego modelu.
Komórka sieciowa i kaseta paliwowa
Komórka sieciowa to mały, powtarzalny fragment reaktora: paliwo, koszulka, moderator, czasem absorber albo kanał chłodziwa. W reaktorach lekkowodnych takim elementem może być pin-cell albo fragment kasety. W CANDU może to być bardziej złożona geometria kanału paliwowego i moderatora.
Kod sieciowy odpowiada na pytania:
- jakie widmo neutronów powstaje w tej geometrii,
- ile neutronów pochłania paliwo, moderator, koszulka i domieszki,
- jaka jest skuteczność rezonansowego pochłaniania w
U-238, - jak zmienia się skład paliwa z wypaleniem,
- jakie stałe grupowe trzeba przekazać do obliczeń rdzenia.
To jest warstwa pomiędzy biblioteką danych jądrowych a symulatorem całego rdzenia. Bez niej model rdzenia byłby albo zbyt prosty, albo zbyt kosztowny.
Samoochrona rezonansowa
W zakresie rezonansowym przekrój czynny może zmieniać się gwałtownie. Jeśli w paliwie znajduje się dużo U-238, neutrony o energiach rezonansowych są silnie pochłaniane już na brzegu ziaren albo prętów paliwowych. W głębi materiału lokalny strumień w tych energiach może być obniżony. To jest samoochrona rezonansowa.
Prosty kalkulator, który bierze jedną wartość przekroju, tego nie widzi. Kod sieciowy musi potraktować:
- geometrię paliwo-moderator,
- temperaturę,
- rozkład energii neutronów,
- rezonanse,
- heterogeniczność materiałów.
Manual DRAGON wymienia obliczenia samoochrony rezonansowej w geometriach wielowymiarowych jako jedną z podstawowych funkcji kodu.3 To jest jeden z powodów, dla których DRAGON pasuje do artykułu o danych i modelach: pokazuje, jak dane ENDF stają się efektywnymi stałymi dla konkretnej siatki paliwowej.
Metoda prawdopodobieństw zderzeń i metoda charakterystyk
W DRAGON zaimplementowano dwa główne sposoby rozwiązania strumienia neutronów: metodę prawdopodobieństw zderzeń CPM oraz metodę charakterystyk MOC.3
W metodzie prawdopodobieństw zderzeń liczy się prawdopodobieństwo, że neutron urodzony albo rozproszony w jednym regionie dozna następnego zderzenia w innym regionie. To dobrze pasuje do komórek i geometrii podzielonych na jednorodne strefy.
Metoda charakterystyk integruje równanie transportu po liniach przechodzących przez geometrię. Zamiast opisywać tylko średni przepływ, śledzi wkłady wzdłuż wielu kierunków i torów. W manualu DRAGON obie metody opierają się na założeniu płaskiego źródła w regionach, ale różnią się sposobem numerycznego całkowania transportu po kierunkach i przestrzeni.3
Dydaktycznie warto pokazać to jako alternatywę wobec Monte Carlo: nadal rozwiązujemy równanie deterministycznie, ale musimy zdecydować, jak reprezentujemy kierunki, regiony i źródła.
Homogenizacja i kondensacja
Pełna geometria komórki ma paliwo, koszulkę, moderator, szczeliny, domieszki i lokalne rozkłady strumienia. Symulator całego rdzenia nie zawsze chce widzieć każdy taki szczegół. Dlatego kod sieciowy wykonuje homogenizację i kondensację.
Homogenizacja zastępuje złożony układ mieszaniną efektywną tak, aby zachować ważne wielkości, zwłaszcza szybkości reakcji. Kondensacja zmniejsza liczbę grup energii, np. z kilkudziesięciu albo kilkuset do kilku grup użytecznych w obliczeniach rdzeniowych.
Manual DRAGON opisuje edycję skondensowanych i zhomogenizowanych własności jądrowych dla dalszych obliczeń reaktorowych oraz procedury równoważności transport-dyfuzja.3 To jest technicznie ważniejsze niż sama nazwa programu: bez dobrej homogenizacji szybki model rdzenia może być szybki, ale błędny.
Burnup w kodzie transportowym
Wypalenie nie jest tylko osobnym kalkulatorem inwentarza. W czasie pracy paliwo zmienia skład, a wraz z nim zmieniają się przekroje efektywne, widmo i reaktywność. Dlatego kod sieciowy może sprzęgać transport z równaniami Batemana.
DRAGON ma moduł wypalenia, który rozwiązuje równania Batemana dla zmian składu izotopowego mieszanin w siatce albo poza rdzeniem.3 To łączy go z artykułem o ORIGEN i FISPACT, ale z innym akcentem: tu transport dostarcza strumieni i przekrojów efektywnych dla konkretnej geometrii.
W serwisie edukacyjnym można to ująć tak:
ORIGEN-litepokazuje inwentarz w czasie,DRAGONpokazuje, skąd w reaktorze biorą się efektywne przekroje i strumienie,- pełny łańcuch łączy transport, wypalenie i model rdzenia.
DRAGON i DONJON
Manual DRAGON podkreśla, że kod jest modularny i może być sprzęgany z innymi kodami produkcyjnymi, w tym z kodem skończonego reaktora DONJON.3 To dobrze pokazuje strukturę przemysłowego workflow:
- biblioteka danych jądrowych,
- kod komórki/kasety,
- homogenizacja i stałe grupowe,
- kod rdzenia,
- obliczenia cyklu paliwowego, sterowania i bezpieczeństwa.
Student powinien zrozumieć, że nie ma jednego uniwersalnego "programu reaktorowego". Jest łańcuch kodów, a każdy etap upraszcza poprzedni w kontrolowany sposób.
Czym jest MCNP
Oficjalna strona LANL opisuje MCNP, czyli Monte Carlo N-Particle, jako ogólny kod transportu wielu cząstek: neutronów, fotonów, elektronów, jonów i innych cząstek elementarnych, z geometrią trójwymiarową opisaną przez konstrukcyjną geometrię bryłową oraz opcjonalne siatki.4
W przypadku neutronów MCNP zwykle korzysta z danych ciągłoenergetycznych, które obejmują kanały reakcji z ocen jądrowych. Dla neutronów termicznych może używać dodatkowych danych rozpraszania termicznego zależnych od materiału, czyli efektów wiązań chemicznych i temperatury.4
To jest inny świat niż dwugrupowy kalkulator. Użytkownik nie mówi tylko "grupa szybka" i "grupa termiczna". Kod losuje oddziaływania na podstawie danych zależnych od energii i materiału.
Tallies i niepewność statystyczna
W Monte Carlo wynik nie jest automatycznie jedną deterministyczną liczbą. Użytkownik definiuje, co chce mierzyć: strumień w objętości, prąd przez powierzchnię, ogrzewanie, dawkę, reakcje, widmo, mesh tally, pulse height i inne estymatory. Oficjalna strona MCNP wymienia między innymi tallies powierzchniowe, objętościowe, punktowe, grzanie cząstkowe i rozszczepieniowe, tallies siatkowe i radiograficzne.4
Każdy tally ma niepewność statystyczną, bo powstaje z wielu losowych historii. To zmienia sposób czytania wyniku:
- wynik ma wartość średnią,
- ma oszacowany błąd względny,
- wymaga sprawdzenia zbieżności,
- może być wrażliwy na rzadkie ścieżki,
- czasem wymaga technik redukcji wariancji.
Monte Carlo nie zwalnia z metrologii. Wręcz przeciwnie: wymusza jawne myślenie o niepewności.
k-eigenvalue i fixed source
Kody Monte Carlo mogą rozwiązywać różne klasy problemów. Dla reaktorów ważny jest tryb k-eigenvalue, czyli obliczenie mnożenia neutronów i rozkładu źródła rozszczepień. Dla osłon, detektorów i źródeł promieniowania częsty jest tryb fixed source, gdzie źródło jest zadane, a kod liczy transport i odpowiedzi detektorów albo dawek.
OpenMC, w oficjalnym opisie, deklaruje obliczenia fixed source, k-eigenvalue i subcritical multiplication oraz modele oparte o konstrukcyjną geometrię bryłową albo CAD.7 MCNP również wymienia fixed-source i k-eigenvalue jako standardowe możliwości.4
Dydaktycznie to ważny podział. Ten sam kod Monte Carlo może służyć do analizy rdzenia, osłony, detektora i aktywacji, ale pytanie wejściowe i tally są zupełnie inne.
OpenMC i Serpent jako punkty odniesienia
OpenMC jest społecznościowym kodem Monte Carlo do transportu neutronów i fotonów. Oficjalna strona podkreśla równoległość MPI/OpenMP, interfejsy Python oraz C/C++, generowanie przekrojów wielogrupowych, automatyzację workflow, deplecję, sprzęganie multiphysics i narzędzia do danych jądrowych ENDF, ACE i HDF5.7
Serpent 2 jest z kolei kodem Monte Carlo znanym szczególnie z fizyki reaktorowej, wypalenia i generowania stałych grupowych. Oficjalna wiki podkreśla, że jest to oprogramowanie własnościowe i objęte ograniczeniami eksportowymi, a dokumentacja obejmuje m.in. syntax, output, grupy energetyczne, burnup, sprzężenia multiphysics, symulacje przejściowe, czułość i redukcję wariancji.8
W tym artykule MCNP służy jako główny przykład, ale warto znać te dwa punkty odniesienia. OpenMC jest świetny dydaktycznie, bo ma otwarte API i ekosystem akademicki. Serpent jest ważny dla generowania stałych grupowych i wypalenia w obliczeniach reaktorowych.
Co daje porównanie DRAGON - MCNP
Porównanie nie polega na pytaniu, który kod jest "lepszy". To są różne narzędzia.
DRAGON:
- jest kodem komórki/kasety,
- pracuje w języku wielogrupowym,
- dobrze pasuje do homogenizacji i stałych grupowych,
- ma samoochronę rezonansową,
- liczy wypalenie w kontekście siatki paliwowej,
- przygotowuje dane do większych obliczeń rdzenia.
MCNP:
- jest ogólnym kodem Monte Carlo,
- naturalnie obsługuje geometrię 3D,
- może pracować na danych ciągłoenergetycznych,
- daje tally z niepewnościami statystycznymi,
- dobrze pasuje do osłon, detektorów, krytyczności, dawek i walidacji modeli,
- kosztuje czas obliczeniowy, jeśli chcemy małe błędy w wielu lokalnych wynikach.
W praktyce często używa się obu stylów. Monte Carlo może być benchmarkiem albo narzędziem do złożonych geometrii, a kod deterministyczny może być szybkim elementem cyklicznego projektowania i symulacji rdzenia.
Dane jądrowe są wspólnym fundamentem
Niezależnie od metody, wynik zależy od danych. Kody potrzebują przekrojów czynnych, rozkładów energii, macierzy rozpraszania, danych termicznego rozpraszania, yieldów rozszczepienia i danych rozpadu. Artykuł o ENDF i GNDS opisuje tę warstwę szczegółowo.
Różnica polega na formie użycia:
- kod Monte Carlo może używać przekrojów ciągłoenergetycznych,
- kod wielogrupowy używa danych przetworzonych i zhomogenizowanych,
- kod rdzeniowy używa jeszcze bardziej skondensowanych stałych,
- kalkulator dydaktyczny często używa wybranych efektywnych liczb.
To jest łańcuch utraty i kontroli informacji. Im bardziej upraszczamy, tym bardziej musimy dokumentować zakres ważności.
Granice kalkulatorów edukacyjnych
Lokalne kalkulatory są dobre wtedy, gdy uczą mechanizmu. Dwugrupowy kalkulator reaktora rozdziela produkcję, spowalnianie, absorpcję i ucieczkę. Dyfuzja neutronów pokazuje długość spowalniania, długość dyfuzji i nieucieczkę. Kalkulator k_eff pokazuje sens czteroczynnikowej formuły Fermiego i strat geometrycznych.5,6
Nie wolno jednak udawać, że te narzędzia są projektowe. Dokumentacja lokalna słusznie opisuje ograniczenia: modele są homogeniczne, uproszczone, bez pełnej samoochrony, bez przestrzennego transportu, bez szczegółowego widma i bez pełnej geometrii rdzenia.6
W artykułach warto powtarzać tę zasadę: kalkulator jest mapą pojęć, nie symulatorem kwalifikacyjnym.
Walidacja i benchmarki
Kod transportowy nie staje się wiarygodny dlatego, że ma skomplikowaną geometrię albo miliony historii. Musi być walidowany. Walidacja oznacza porównanie z dobrze opisanymi eksperymentami, benchmarkami krytycznościowymi, pomiarami strumienia, dawki, spektrum albo aktywacji.
W przypadku kodów reaktorowych waliduje się:
k_effdla znanych układów,- rozkłady mocy,
- reakcje aktywacyjne,
- skuteczność absorberów,
- efekty temperatury i gęstości,
- przebieg wypalenia,
- stałe grupowe i ich wpływ na model rdzenia.
W przypadku Monte Carlo dochodzi kontrola niepewności statystycznej i jakości tally. Wynik z małym błędem formalnym nadal może być błędny, jeśli geometria, materiał albo biblioteka danych są niewłaściwe.
Dlaczego transport neutronów jest ważny dla aparatury
Transport neutronów nie dotyczy tylko reaktorów. Jest ważny w:
- spektrometrii neutronowej,
- kulach Bonnera,
- komorach rekombinacyjnych,
- osłonach neutronowych,
- aktywacji próbek,
- projektowaniu detektorów,
- interpretacji pól mieszanych neutron-gamma.
Artykuł o spektrometrii neutronowej pokazuje, że funkcje odpowiedzi detektorów często wymagają modelowania Monte Carlo. Detektor nie mierzy widma bezpośrednio; mierzy odpowiedź, którą trzeba odwrócić przy znajomości geometrii i materiałów.
To łączy kategorię "Dane i modele" z elektroniką i aparaturą laboratoryjną. Sygnał elektryczny z detektora jest końcem długiego łańcucha: neutron, transport, reakcja w detektorze, jonizacja albo scyntylacja, elektronika, akwizycja, unfolding.
Kiedy potrzebna jest geometria 3D
Geometria 3D jest konieczna, gdy:
- osłona ma szczeliny albo kanały,
- detektor ma kolimator,
- materiał jest warstwowy,
- ważny jest streaming,
- źródło jest objętościowe,
- kaseta paliwowa ma lokalne absorbery,
- pręty kontrolne wchodzą tylko częściowo,
- pole neutronów jest silnie anizotropowe.
W takich przypadkach model jednopunktowy może dawać złudną pewność. Monte Carlo albo dobry kod deterministyczny nie są luksusem, tylko warunkiem sensownej interpretacji.
Kiedy wystarcza model uproszczony
Uproszczenie jest dobre, jeśli pytanie jest proste i jeśli wynik nie ma być użyty operacyjnie. Przykłady:
- porównanie moderatorów,
- wpływ absorpcji na
k_eff, - sens spowalniania neutronów,
- różnica między aktywnością i ciepłem,
- rola ucieczki neutronów z małego układu,
- demonstracja niepewności statystycznej Monte Carlo.
W edukacji doktoranckiej nie chodzi o to, by wszystko liczyć największym kodem. Chodzi o to, by student wiedział, kiedy ma prawo użyć modelu prostego, a kiedy prosty model przestaje odpowiadać na pytanie. Praktyczna zasada: model jest wystarczający, jeśli jego błąd jest pomijalny wobec innych niepewności w zadaniu. Jeśli pytamy o rzędy wielkości, model jednogruopowy może wystarczyć. Jeśli pytamy o 0,5% różnicę w rozkładzie mocy wpływającą na decyzję bezpieczeństwa, kod Monte Carlo z pełnymi danymi jest niezbędny.
Polska i europejskie zasoby obliczeniowe
Polska infrastruktura obliczeniowa dla fizyki jądrowej jest skoncentrowana w NCBJ Świerk:
Licencje i narzędzia dostępne w NCBJ:
MCNP6(licencja dla zastosowań nieproliferacyjnych, LANL RSICC)SCALE(pakiet ORNL: KENO, ORIGEN, TRITON, CSAS; licencja NEA Data Bank)SERPENT(VTT Finlandia, licencja handlowa — ograniczona liczba kopii)- Własne kody adaptacyjne dla reaktora MARIA i eksperymentów neutronograficznych
Polska w sieciach europejskich:
- Uczestnictwo w OECD NEA Data Bank (dostęp do kodów i benchmarków)
- Współpraca z JRC Karlsruhe (European Spallation Data Centre)
- Projekty H2020/Horizon: EURATOM programy szkolenia w kodach TRIPOLI4 (CEA), JEFF, SCALE
- Aktywność w ENEN (European Nuclear Education Network)
Kody dostępne przez NEA Data Bank (bez licencji eksportowej):
NJOY(przetwarzanie ENDF) — wolny, gitOpenMC— wolny, open source- Wiele kodów pomocniczych (CODA, PREPRO, ACER, INTER) — wszystkie wolne
Dla studenta bez dostępu do NCBJ: kompletny workflow OpenMC + NJOY + ENDF/B-VIII.1 jest dostępny za darmo na własnym laptopie z Linuxem. NCBJ oferuje też warsztaty szkoleniowe w ramach programów ENEN i dla doktorantów EJ.3,4
Szacowanie niepewności metodą "sandwich formula"
W obliczeniach deterministycznych (wielogrupowych) niepewność wyniku można propagować analitycznie przez "sandwich formula". Dla funkcji wynikowej R (np. k_eff lub reaction rate):
$$\text{Var}(R) = \mathbf{S}^T \cdot \mathbf{C}_{\sigma} \cdot \mathbf{S}$$
gdzie:
- S jest wektorem czułości (sensitivity vector): ∂R/∂σ_i dla każdego przekroju σ_i
- C_σ jest macierzą kowariancji przekrojów czynnych (zawartą w bibliotekach ENDF/B w MF=33/34/35)
W praktyce dla k_eff reaktora LWR:
- Niepewność od U-235 (n,f): ~0.2–0.4%
- Niepewność od U-238 (n,γ): ~0.1–0.2%
- Niepewność od H₂O scattering: ~0.1–0.3%
- Całkowita niepewność jądrowa k_eff: ~0.4–0.6%
Kody do obliczeń S/U: SCALE/TSUNAMI (najpopularniejszy), SUSD3D (OECD NEA). Używa się ich obowiązkowo przy walidacji krytyczności dla celów bezpieczeństwa jądrowego.1,2
Bezpieczeństwo zakresu artykułu
Ten artykuł nie jest instrukcją tworzenia wejść do MCNP, DRAGON, Serpent ani innych kodów. Nie podaje geometrii, kart materiałowych ani parametrów obliczeń dla układów wrażliwych. Celem jest zrozumienie roli kodów w nauce i inżynierii jądrowej: co liczą, dlaczego są potrzebne i czym różnią się poziomy modelowania.
Takie rozgraniczenie jest ważne. Wiedza o tym, że pełny transport neutronów istnieje, jest podstawowa i jawna. Natomiast szczegółowe modelowanie konkretnych konfiguracji krytycznych albo broni nie jest celem serwisu edukacyjnego.
Historia kodów obliczeniowych reaktorów
Obliczenia reaktorowe nie zaczęły się od MCNP ani DRAGON. Historia kodów jest ściśle spleciona z historią programów nuklearnych:
Lata 50.–60. — era kart perforowanych:
- B1/B3/B4 (Argonne, USA): pierwsze kody dyfuzyjne dla reaktorów badawczych, późnir ich potomek
DIF3D - WIMS (Winfrith, UK, 1961–): jeden z najdłużej rozwijanych kodów komórkowych w historii, używany szczególnie w UK dla MAGNOX i AGR; WIMS-E i WIMS-AECL wciąż stosowane
- HAMMER: wczesny kod spowalniania i wielogrupowego transportu
- PDQ: transport dyfuzyjny 2D, długo stosowany w USA do projektowania rdzeni LWR
Lata 70.–80. — dojrzewanie metod deterministycznych:
- CASMO (Studsvik, Szwecja): kod komórkowy i kasetowy dla BWR/PWR, bardzo szeroko stosowany przemysłowo; aktualny CASMO5 jest wielogruopowym kodem MOC
- APOLLO (CEA, Francja): deterministyczny kod transportu dla reaktorów EPR; APOLLO2 i APOLLO3 stosowane przez EDF/Framatome
- CANDU WIMS: adaptacja WIMS dla reaktorów CANDU z ciężką wodą
Lata 80.–90. — MCNP i Monte Carlo:
- MCNP (LANL, USA, 1977→dziś): pierwszy publiczny, wielokrotnie przebudowywany od MCNP3 przez MCNP4 do MCNP5, MCNP6 i MCNP6.3 (aktualna)
- MVP (JAEA, Japonia): japoński odpowiednik MCNP, stosowany do walidacji krytyczności
- SCALE (ORNL): pakiet kodów łączący transport, wypalenie, dawkę i krytyczność (KENO, ORIGEN, TRITON); bardzo szeroko używany w USA i Europie
Lata 2000.–2020. — era open source:
- Serpent (VTT, Finlandia, 2004→): bardzo wydajny Monte Carlo, szczególnie dla burnup i stałych grupowych
- OpenMC (MIT, USA, 2011→): w pełni otwarty, aktywna społeczność, Python API
- OpenMOC (MIT): deterministyczny transport MOC, otwarty kod
- DRAGON 5 (École Polytechnique de Montréal, → dziś): aktualna wersja opisana w cytowanym manualu
Dla doktorantów: ta historia pokazuje, że kody numeryczne są produktami 70-letniej kumulacji wiedzy, nie jednorazowymi wynalazkami.3,4
Redukcja wariancji w Monte Carlo — kiedy historia nie wystarcza
W standardowym Monte Carlo każda historia ma równy wkład do estymatora. Problem pojawia się, gdy szukamy rzadkich zdarzeń — np. neutronu, który przeniknął przez 3 metry betonu. Typowe neutralne neutrony zderzają się i giną przed dojściem do detektora; tylko ułamek procenta dociera. Aby uzyskać statystycznie sensowny wynik z rozsądną liczbą historii, potrzebne są techniki redukcji wariancji:
Importance sampling (ważenie biased): system przypisuje "wagę" każdej cząstce, więc cząstki w ważnych regionach mają wyższe prawdopodobieństwo przeżycia, ale mniejszą wagę per cząstka.
Russian roulette i splitting: gdy cząstka jest w mniej ważnym regionie (niska ważność), ruletkuje się — z pewnym prawdopodobieństwem usuwa się ją (ginie), oszczędzając czas. Gdy cząstka przechodzi do ważniejszego regionu, splits się ją na kilka cząstek z niższą wagą. Efekt: czas obliczeń skupia się tam, gdzie potrzeba.
DXTRAN (Directed Cross-section Transformation): wysyła cząstki deterministycznie w kierunku detektora punktowego, kompensując wagą. Bardzo użyteczne dla małych detektorów.
Weight windows: siatka przestrzenna z zakresem wag — cząstki za "lekkie" są usuwane, za "ciężkie" są splitowane.
Correlated sampling: dla problemów różniczkowych (perturbacja geometrii lub materiału) — porównuje się dwie symulacje z częściowo wspólnymi losowymi decyzjami.
W MCNP wszystkie powyższe techniki są dostępne. W OpenMC większość jest zaimplementowana. Dla doktorantów: bez redukcji wariancji Monte Carlo dla głębokich osłon jest niepraktyczne — wyniki mają błąd 50–200%. Z dobrymi weight windows ten sam problem rozwiązuje się w czasie akceptowalnym.4
Przekroje ciągłoenergetyczne kontra grupy energetyczne
Centrale różnica między Monte Carlo a deterministyką leży w reprezentacji przekrojów czynnych:
Ciągłoenergetyczne (Monte Carlo):
- Przekrój σ(E) jest zdefiniowany w tysiącach do milionów punktów energii
- Interpolacja między punktami — dla obszarów rezonansowych gęsty siatka
- Temperatura modelu Dopplera musi być dostarczona
- Format ACE (
A Compact ENDF): skompresowane tabele z nagłówkami typów reakcji - Każde zderzenie w Monte Carlo próbkuje lokalna wartość σ(E) dla konkretnej energii cząstki
Wielogrupowe (deterministyczne):
- Zakres energii podzielony na G grup (typowo: 2, 4, 33, 69, 172, 361, 586, 1968 grup)
- Wewnątrz grupy: jeden efektywny przekrój σ_g — ważona średnia po widmie
- Ważenie widmem jest kluczowe: właściwe ważenie daje "poprawną" efektywną wartość dla typowych warunków
- Macierz rozpraszania G×G opisuje transfer energii z grupy g do grupy g'
Dlaczego ważenie ma znaczenie:
Jeśli ważymy przekrój dla grupy termicznej widmem Maxwella (720K zamiast 293K), dostaniemy inny efektywny przekrój — różnica może wynosić kilkanaście procent dla absorberów z rezonansami termicznymi. Stąd kody sieciowe takie jak DRAGON generują stałe grupowe dopasowane do konkretnych warunków reaktora, nie z uniwersalnych tablic.3
Kody dla reaktorów IV generacji
Reaktory IV generacji wymagają nowych lub rozszerzonych kodów:
Reaktory MSR (stopione sole): sól cirkuluje, więc paliwo przepływa — mamy ciągłą zmianę składu i rozszczepialne materiały w ruchu. Kody muszą obsługiwać "online refueling" i transport paliwa w obiegu. Projekty: MCNP z modułem depletion, OpenMC z "reprocessing", dedykowane kody MSR (DALTON, SCALE z MSR extensions).
Reaktory LFR (chłodzone ołowiem): przekroje Pb-206/207/208, danych scattering dla ołowiu w szerokim zakresie energii. Kody SERPENT stosowane dla EBR-inspired designs.
Reaktory HTR/HTGR (grafitowe, chłodzone gazem): paliwo w kulkach (pebble bed) — losowe upakowanie tysięcy kul paliwowych. Monte Carlo z stochastyczną geometrią (MCNP, Serpent, OpenMC z pebble-bed sampling).
Reaktory ADS (napędzane akceleratorem): źródło neutronów z spalacji — wysokoenergetyczne protony uderzają w tarczę Pb-Bi i produkują >20 neutronów/proton. Kody Monte Carlo z rozszerzonym zakresem energii: MCNPX (predecessor MCNP6), FLUKA (CERN/INFN), PHITS (JAEA) — specjalizowane dla wysokoenergetycznego transportu.
Polska planuje udział w projekcie LFR ALFRED (Astrid-like, CEA) i potencjalnie w SMR-LFR. Dla kadry technicznej: kodowe kompetencje dla reaktorów IV generacji będą wymagane w perspektywie 2035–2045.3,4
Weryfikacja krzyżowa i V&V (Verification and Validation)
Każdy kod obliczeniowy musi być weryfikowany i walidowany — to wymóg regulacyjny dla obliczeń wspomagających bezpieczeństwo:
Verification (weryfikacja): czy kod prawidłowo implementuje matematyczny model? Test: czy numeryczne wyniki są zgodne z dokładnymi rozwiązaniami analitycznymi lub zbieżnymi wynikami innych kodów? Przykłady:
- Problem Godiva (krytyczna sfera U-235 HEU): MCNP, OpenMC, Serpent powinny dać k_eff = 1,0000 ± 0,0005
- Problemy 1D dyfuzji z rozwiązaniem analitycznym
- Test energii piku resonansu Doppler-broadened vs. temperatura
Validation (walidacja): czy matematyczny model poprawnie opisuje rzeczywisty system fizyczny? Test: czy obliczenia zgadzają się z eksperymentem? Przykłady:
- ICSBEP benchmarks (>4500 zestawów krytycznych)
- IRPhEP benchmarks (eksperymenty z reaktorów)
- Pomiary aktywacji w znanych geometriach
International Comparison of MCNP Codes (ICV): regularne ćwiczenia integralne dla MCNP i innych kodów, koordynowane przez OECD NEA.
Dla regulatora (np. PAA w Polsce): obliczenia dla licencjonowanego reaktora muszą być wykonane certyfikowanym kodem z udokumentowaną walidacją dla odpowiedniego zakresu zastosowań. OpenMC jest dobre edukacyjnie, ale do obliczeń bezpieczeństwa wymagana jest formalna kwalifikacja kodu. W polskiej praktyce PAA opiera się na standardach IAEA SSG-2 (krytyczność) i IAEA SSG-26 (analiza bezpieczeństwa) — oba wymagają V&V kodów dla konkretnych zastosowań.4
Sprzężenia multiphysics
Rzeczywisty reaktor nie jest statyczny. Temperatura paliwa i chłodziwa zmienia się, gdy moc rośnie. To zmienia gęstość i temperaturę materiałów, co zmienia przekroje czynne (efekt Dopplera, efekt pustki), co zmienia transport neutronów, co zmienia moc — zamknięta pętla sprzężenia zwrotnego.
Nowoczesne kody reaktorowe muszą sprzęgać:
- Neutronikę (transport/dyfuzja) — kto i gdzie produkuje moc
- Termohydraulikę (RELAP5, TRACE, SUBCHANFLOW) — temperatura i przepływ chłodziwa
- Mechanikę (BISON, Falcon) — naprężenia, odkształcenia paliwa
- Wypalenie (ORIGEN, FISPACT, wbudowane w kod) — zmiana składu
Metody sprzężenia:
- Tight coupling (mocne): kod neutronowy i termohydrauliczny iterują do zgodności w każdym kroku czasu
- Loose coupling (słabe): kody wymieniają dane co N kroków
- Biblioteki sprzężone: OpenMC + OpenFOAM (CFD), Serpent + Matlab DYNAMOS
W polskim programie jądrowym interesującym podejściem jest VERA (Virtual Environment for Reactor Applications, CASL consortium) — pakiet MCNP+COBRA-TF+ORIGEN dla pełnoprawnych obliczeń LWR.3,4
Jak czytać wynik z kodu transportu
Doktorant otrzymujący wydruk MCNP lub DRAGON musi wiedzieć, co czytać i na co zwrócić uwagę:
Z MCNP:
keffz niepewnością 1σ: typ1.01234 ± 0.00050— pewność powinna być <0,001 dla typowych obliczeń krytyczności- Tally headers: identyfikator (
F1,F2,F4, ...), opis geometryczny, jednostki - Relative error: powinien być <0.05 dla "dobrych" wyników. Wartości >0.10 są podejrzane.
- Figure of Merit (FOM): efektywność obliczeń — wyższy FOM = szybsza zbieżność
- "Final Statistical Checks": 10 testów MCNP na jakość próbkowania — wszystkie powinny "pass"
Z DRAGON:
- Strumień wielogrupowy w kolejnych regionach
- Stałe grupowe: D_g (współczynnik dyfuzji), Σ_a,g (absorpcja), Σ_f,g (rozszczepienie), νΣ_f,g
- k∞ (komórka nieskończona) vs k_eff (z ucieczką)
- Historia wypalenia: k∞(Bu), skład izotopowy vs. MWd/tHM
Czerwone flagi:
- Duże różnice między estymatorami różnych tally dla tej samej wielkości
- Brak zbieżności (tally wciąż rośnie lub maleje z kolejnymi historiami)
- Niezerowe "flux tally" w materiałach, gdzie nie powinno być strumienia
- k_eff bez ciągłego cyklu (cycle-by-cycle variance nie jest stabilna)
Umiejętność krytycznego czytania wyniku kodu jest kompetencją zawodową — nie wystarczy uruchomić kod i zaakceptować liczbę.3,4
Jak rozbudować serwis
Najlepsze rozszerzenia dydaktyczne po tym artykule to:
- miniwizualizacja "historia neutronu" Monte Carlo z bezpiecznymi, sztucznymi prawdopodobieństwami,
- porównanie modelu dwugrupowego z wynikiem losowej symulacji na abstrakcyjnej geometrii,
- schemat workflow:
ENDF -> NJOY -> kod sieciowy -> stałe grupowe -> kod rdzenia, - panel pokazujący homogenizację komórki paliwowej bez rzeczywistych danych projektowych,
- ćwiczenie z tally i niepewnością statystyczną na neutralnym przykładzie osłony gamma albo rozpraszania neutronów w wodzie,
- mapa pojęć:
transport,dyfuzja,homogenizacja,k-eigenvalue,fixed source,burnup,depletion,tally.
Takie narzędzia są bezpieczne i bardzo użyteczne. Uczą języka, którym posługują się profesjonalne kody reaktorowe, bez udawania, że przeglądarka internetowa zastępuje certyfikowane obliczenia bezpieczeństwa jądrowego.
Podsumowanie
DRAGON, MCNP, OpenMC, Serpent i podobne kody są potrzebne, ponieważ neutrony nie są opisywane jedną liczbą. Mają energię, kierunek, przestrzeń, historię zderzeń i sprzężenie z materiałem.
Najważniejsza lekcja brzmi: k_eff jest wynikiem transportu, nie jego zamiennikiem. Dobre kalkulatory edukacyjne powinny prowadzić czytelnika od prostego bilansu do świadomości, gdzie zaczyna się prawdziwy problem transportowy. Dla polskich doktorantów przygotowujących się do pracy przy planowanej elektrowni jądrowej lub reaktorach badawczych, znajomość hierarchii modeli i ograniczeń każdego z nich jest kompetencją zawodową — a nie tylko akademicką wiedzą.
Dodatkowe materiały multimedialne
Warto przygotować animację jednej historii neutronu: narodziny, rozproszenie, spowolnienie, wychwyt, ucieczka albo rozszczepienie. Parametry powinny być sztuczne i opisowe, bez danych dla rzeczywistych układów krytycznych.
Druga wizualizacja powinna pokazać różnicę między modelem dwugrupowym a Monte Carlo: ten sam abstrakcyjny układ, raz liczony jako bilans dwóch grup, raz jako wiele losowych historii z niepewnością statystyczną.
Trzeci moduł może pokazać homogenizację: szczegółowa komórka paliwo-moderator zostaje zastąpiona jedną mieszaniną efektywną, a użytkownik obserwuje, które reakcje trzeba zachować.
Ćwiczenia praktyczne
Pierwsze ćwiczenie: wyjaśnić, dlaczego dwie konfiguracje o podobnym k_eff mogą mieć różne rozkłady mocy i różne wymagania bezpieczeństwa.
Drugie ćwiczenie: narysować prosty schemat łańcucha biblioteka danych -> kod komórki -> homogenizacja -> kod rdzenia -> wynik.
Trzecie ćwiczenie: porównać język deterministyczny i Monte Carlo. Należy wskazać po trzy źródła błędów dla każdego podejścia.
Czwarte ćwiczenie: zaprojektować bezpieczny, abstrakcyjny tally do symulacji Monte Carlo: np. liczba cząstek przechodzących przez powierzchnię w pudełku z materiałem rozpraszającym. Opisać, jak liczba historii wpływa na niepewność wyniku.
Piąte ćwiczenie: wyjaśnić, dlaczego samoochrona rezonansowa wymaga geometrii i widma energii, a nie tylko jednej wartości przekroju czynnego.
Szóste ćwiczenie: przygotować krótką notę do kalkulatora edukacyjnego, która uczciwie odróżnia model dwugrupowy od kodu transportu neutronów.
Przejdź do ćwiczenia interaktywnego
Powiązane kalkulatory i narzędzia
Powiązane artykuły
- Dane jądrowe ENDF, GNDS i droga od przekrojów czynnych do kalkulatora
- ORIGEN i FISPACT: jak liczy się aktywację, wypalone paliwo i ciepło powyłączeniowe
- Termiczna dyfuzja neutronów
- Reakcja łańcuchowa i współczynnik mnożenia k
- Spektrometria neutronowa: kule Bonnera, komory rekombinacyjne i widma neutronów