Seminar 1a - 1. letnik, II. stopnja Monte Carlo transportni preračuni Avtor: Rok Krpan Mentor: doc. dr. Luka Snoj Somentor: doc. dr. Igor Lengar Marec, 2015 Povzetek V seminarju je opisana Monte Carlo metoda za opravljanje nevtronskih preračunov. Na kratko so opisane razlike med determinističnimi metodami in med Monte Carlo metodo. Opisan je potek Monte Carlo simulacije ter kako program med izvajanjem simulacije beleži želene količine. Na koncu je podan primer uporabe programa, ki za izračune uporablja Monte Carlo simulacije.
Kazalo 1 Uvod 2 2 Reševanje transportne enačbe 2 2.1 Difuzijska aproksimacija............................... 3 3 Monte Carlo metode 3 3.1 Primerjava Monte Carlo in determinističnih metod................ 4 3.2 Potek Monte Carlo simulacije............................ 5 3.3 Določanje lege delca................................. 6 3.4 Določanje dolžine poti................................ 6 3.5 Izbira nuklida za interakcijo............................. 7 3.6 Določanje vrste interakcije.............................. 7 3.7 Vzorčenje ( Tallying )................................ 8 3.8 Vrste vzorčenja.................................... 8 3.9 Izračun pomnoževalnega faktorja.......................... 9 4 Monte Carlo programi 10 4.1 Primeri uporabe programa MCNP kot podpora kalibraciji senzorjev na Joint European Torus................................... 10 5 Zaključek 11 1 Uvod Monte Carlo metode so računalniški algoritmi, ki za pridobitev numeričnih rezultatov temeljijo na naključno ponavljajočem vzorčenju. V glavnem se uporabljajo za reševanje analitično težko rešljivih ali nerešljivih fizikalnih in matematičnih problemov. Enačba, ki opisuje gibanje nevtronov in reakcije nevtronov z atomi snovi je analitično skoraj nerešljiva. Z določenimi predpostavkami se lahko pretvori v lažje rešljivo obliko, ampak tudi ta ima analitične rešitve le za enostavne geometrije, ki s stvarnim svetom imajo kaj malo opraviti. Monte Carlo metode omogočajo reševanje geometrijsko zapletenih tridimenzionalnih problemov, saj za izračune uporabljajo stohastičen proces. Problemi se rešujejo lokalno, rešitve pa so na koncu povprečene. Z vedno boljšimi računalniškimi sistemi so možnosti za natančnejše opise sistemov brez poenostavitev kot so homogenizacija geometrije in diskretizacija energije. Monte Carlo izračuni se uporabljajo v zaščiti pred sevanjem in dozimetriji, radiografiji, medicinski fiziki, varnosti jedrskih reaktorjev, za načrtovanje detektorskih sistemov in napovedovanje odziva detektorskih sistemov, za iskanje nafte preko nevtronskega sipanja, nevtronske preračune v fisijskih in fuzijskih reaktorjih, preračunov jedrskega gretja itd. 2 Reševanje transportne enačbe Gibanje in reakcije nevtronov v splošnem opisuje transportna oziroma Boltzmanova enačba, ki je integralno-diferencialne oblike [1]: 2
1 dφ( r, E, Ω, t) + Ω v dt φ( r, E, Ω, t) + Σ T ( r, E)φ( r, E, Ω, t) = S( r, E, Ω, t) + de Σ S ( r, E E, Ω Ω, t)φ( r, E, Ω, t)dω Slika 1: Skica sistema [2] pri čemer je r radij vektor, E energija nevtronov, t čas, φ kotni fluks (skalar, ki opisuje fluks nevtronov z energijo de okrog E in smer znotraj d Ω okrog Ω), Σ T ( r, E) je makroskopski totalni presek, Σ S ( r, E E, Ω Ω, t) je makroskopski sipalni presek, ki opisuje sipanje nevtronov energije E k energiji E in od kota Ω v kot Ω. 2.1 Difuzijska aproksimacija Transportna enačba je za analitično reševanje neprimerna, saj vsebuje kotne in časovne odvisnosti. Če predpostavimo stacionarne pogoje ter zanemarimo kotne in energijske odvisnosti dobimo difuzijsko enačbo [1]: D( r, E) φ( r, E) + Σ T ( r, E)φ( r, E) = S 0 ( r, E) + de Σ 0 S( r, E E)φ( r, E ) Enačba velja le za primere, ko je anizotropija majhna, kar za velike reaktorje običajno velja. Difuzijska enačba je analitično rešljiva le za enostavne gemetrije, kot so valji, krogle in kvadri. Poleg enostavne geometrije moramo uvesti še dodatne predpostavke kot so diskretizacija energije in vpeljava grupnih presekov. [1] 3 Monte Carlo metode Monte Carlo metode se uporabljajo za podvojevanje teoretično statističnih procesov, kot so interakcije delcev s snovjo, in so še posebej uporabne za računanje kompleksnih modelov, ki jih ni mogoče modelirati s programi, ki za preračune uporabljajo deterministične metode. Posamezni verjetnostni dogodki so simulirani zaporedno. Simulacija se izvaja na računalniških sistemih, saj je število potrebnih dogodkov za opis pojava zelo veliko, kar povzroči dolge računske čase. Proces statističnega vzorčenja temelji na generaciji naključnih števil, podobno kot pri metanju kocke, od tod tudi ime Monte Carlo [3]. V transportnih izračunih je Monte Carlo numerični eksperiment. Sestavljen je iz sledenja generiranim delcem od rojstva pa vse do smrti z določenim procesom (absorpcija, pobeg iz sistema). Verjetnostne porazdelitve so naključno vzorčene z uporabo transportnih podatkov, ki določajo izide vsakega dogodka v življenju delca [3]. Rezultati so določeni iz lastnosti simuliranih delcev z uporabo centralnega limitnega teorema. Želene rezultate preračunov predpiše uporabnik s podatki v vhodni datoteki [3]. Monte Carlo metode so sposobne obdelave velikih kompleksnih tridimenzionalnih sistemov. Poleg tega zvezna porazdelitev energije, prostora in kota ne povzroča napak povzročenih z diskretizacijo kot pri večgrupnih aproksimacijah. Posledično so napake Monte Carlo simulacij le zaradi negotovosti v jedrskih presekih, statističnih napak ter približkov računskih programov simulacij naravnih procesov [3]. 3
3.1 Primerjava Monte Carlo in determinističnih metod Deterministične metode temeljijo na numeričnem reševanju integralno-diferencialne oblike transportne enačbe ter difuzijske enačbe. Metode sestojijo iz ocenjevanja transportne enačbe v diskretnih kotnih smereh. Značilne so poenostavitve (diskretizacija energije, vpeljava grupnih presekov,..), ki vodijo do varčnih računalniških algoritmov in hitrih izračunov na osebnih računalnikih [4]. Rezultati deterministične metode so enačbe, ki opisujejo količine (porazdelitev fluksa, moči) v vsaki točki prostora. Rezultati take oblike omogočajo analize občutljivosti in negotovosti. Napake determinističnih metod so sistematske. Izhajajo iz nedoločenosti jedrskih presekov, diskretizacije po energiji in prostoru ter iz lastnosti te metode, ki ne omogoča modeliranja zahtevnih geometrij, zaradi česar je potrebna homogenizacija celic prostora. Zelo velik doprinos k napaki rezultatov imajo poenostavitve tri dimenzionalnega sistema na dvo ali celo eno dimenzionalen sistem [4]. Ne samo da so Monte Carlo (MC) metode in deterministične metode zelo različne v načinu reševanja problemov, različni so tudi rezultati. Deterministični izračuni podajo rezultate (npr. porazdelitev fluks in moči) v obliki enačb, ki veljajo za vsako točko v prostoru problema, medtem ko MC izračuni podajo vrednosti le za celice in količine predpisane s strani uporabnika [3]. Monte Carlo metode so sposobne reševanja kompleksnih tri dimenzionalnih sistemov. Poleg tega zvezna porazdelitev energije, prostora in kota ne povzroča napak povzročenih z diskretizacijo. Slika 2: Primerjava izračuna porazdelitve moči v reaktorju TRIGA z determinističnim programom TRIGLAV (zgoraj) in z Monte Carlo programom MCNP (spodaj) [5]. Na sliki 2 je razvidna razlika v rezultatih preračunov po obeh metodah. Pri rezultatih deterministične metode so vidne posledice poenostavitev, medtem ko je pri MC preračunih razvidna natančna geometrija reaktorske sredice. Za preračune sredice, tj. načrtovanje jedrskih lastnosti reaktorja (predvsem obogatitev goriva) pred menjavo goriva, so dovolj natančne deterministične metode, medtem ko za izračune pri katerih je potrebna večja natančnost (npr. izračun koničnih faktorjev moči) pa si z determinističnimi metodami ne moremo pomagati. Tu nam pridejo prav Monte Carlo transportni preračuni. 4
3.2 Potek Monte Carlo simulacije Monte Carlo simulacije temeljijo na generaciji naključih števil. Naključna števila določajo katera interakcija bo potekla (če bo), kje bo potekla glede na fizikalne lastnosti in verjetnosti (preseke) vključenih materialov, pod kakšnim kotom se bo delec sipal po interakciji (če bo interakcijo preživel), kolikšno energijo bo imel po interakciji, ali bo nastal kak sekundaren delec, dolžine poti med zaporednimi interakcijami itd [3, 4]. Vsaka zgodovina se začne z vzorčenjem porazdelitve izvora za določitev začetne energije, pozicije in smeri delca. Po stohastičnem procesu, ki določi povprečno dolžino proste poti do mesta interakcije, sta določena točka interakcije in material na mestu interakcije. Z vzorčenjem jedrskih presekov je določeno jedro s katerim bo delec interagiral ter kake vrste bo ta interakcija (sipanje, zajetje, cepitev). Če bo potekla reakcija zajetja, je beleženja zgodovine konec, če pa bo potekla reakcija sipanja, bo preko porazdelitve sipalnega kota in generacije naključnega števila določena nova smer delca. V primeru elastičnega sipanja je skladno z zakonom o ohranitvi energije in gibalne količine izbrana tudi energija delca po sipanju. S tako določeno energijo, smerjo in razdaljo do naslednjega trka se postopek večkrat ponovi, dokler se delec na absorbira ali pa zapusti sistema [4]. Slika 3 prikazuje naključni sprehod nevtrona na vzorcu cepljivega materiala. V točki 1 nevtron trči. Siplje se v smeri puščice, ki je naključno izbrana iz porazdelitve sipalnega kota delcev. Pri tem procesu nastane tudi foton, ki ga program shrani za nadaljnjo analizo. Pri dogodku 2 pride do cepitve, kar pomeni smrt nevtrona ter nastanek dveh novih nevtronov in enega fotona. Po en nevtron in foton sta shranjena za nadaljnjo analizo. Prvo nastali nevtron je zajet v dogodku 3, shranjeni nevtron iz dogodka 2 pa je ponovno vključen v simulacijo in preko naključnega vzorčenja pobegne iz obravnavanega volumna v točki 4. Foton, ki je nastal pri cepitvi, se siplje v točki 5 in pri dogodku 6 pobegne iz vzorca. V simulacijo je ponovno priklican foton, ki je nastal pri dogodku 1 ter je v točki 7 zajet. Dnevnik dogodkov: Rojstvo nevtrona 1.Sipanje nevtrona, izsevanje fotona 2.Preces cepitve, izsevanje fotona 3.Zajetje nevtrona 4.Pobeg nevtrona 5.Sipanje fotona 6.Pobeg fotona 7.Zajetje fotona Slika 3: Zgodovina delca v Monte Carlo simulaciji [6]. 5
Slika 4: Upočasnjevanje nevtrona v grafitu. Na začetku je energija nevtrona 14 MeV, na koncu pa 0.0087 ev. (levo samo upočanjevanje, desno celotna simulacija). 3.3 Določanje lege delca Pri Monte Carlo simulacijah je potrebno poznati položaj delca ob vsakem trenutku. Prostor problema se s ploskvami z enačbami F (x, y, z ) = 0 razdeli na celice. Število celic je odvisno od velikosti in kompleksnosti modela (od nekaj 100 pa do nekaj 10.000). Lego delca (x, y, z) se določi glede na ploskve in s tem se dobi podatke v kateri celici se delec nahaja. Če je vrednost F (x, y, z) < 0, se delec nahaja znotraj ploskve. Če je vrednost F (x, y, z) > 0, se delec nahaja izven ploskve, če pa je vrednost F (x, y, z) = 0, se delec nahaja na ploskvi [5]. Slika 5: Lega delca glede na ploskev. 3.4 Določanje dolžine poti Za delec pri koordinatah (x 0, y 0, z 0 ) s smernim vektorjem (u, v, w) v celici I z materialom M se določi pot do naslednje interakcije s pomočjo totalnega makroskopskega preseka Σ T za dani material M, ki podaja verjetnost za interakcijo na enoto dolžine. Totalni makroskopski presek je vsota totalnih makroskopskih presekov vseh izotopov i, ki sestavljajo material M. Totalni makroskopski presek izotopa pa je produkt številske gostote atomov posameznega izotopa i in mikroskopskega totalnega preseka za izotop [5]: Σ T = i Σ i T = i n i σ i T 6
Za določitev totalnega makroskopskega preseka materiala M, moramo poznati izotopsko sestavo tega materiala. Posledično moramo poznati izotopske sestave vseh materialov v problemu. Recimo, da želimo generirati serijo naključnih števil, ki so porazdeljena skladno z dolžinami prostih poti, ki jih bojo nevtralni delci prepotovali med trki. Vemo, da če je dolžina povprečne proste poti 0 < l <, je funkcija verjetnostne gostote produkt verjetnosti za interakcijo in verjetnosti, da nevtron ali foton opravita pot dolžine 1 cm brez interakcije [4]: Kumulativna verjetnost porazdelitve pa [4]: p(l) = e Σ T l Σ T F (l) = 1 e Σ T l Kumulativna verjetnost nam poda verjetnost, da nevtralen delec na poti dolžine l interagira. Monte Carlo simulacija temelji na generaciji naključnih števil ξ, ki so enakomerno porazdeljena med 0 in 1. Ker je 1 ξ ravno tako enakomerno porazdeljen med 0 in 1 in lahko zapišemo [4]: ξ = 1 3.5 Izbira nuklida za interakcijo 0 e Σ T l Σ T dl = 1 e Σ T l l = 1 Σ T ln(ξ) Če je material M, v katerem bo potekla interakcija, sestavljen iz N različnih nuklidov, ki so homogeno razporejeni čez volumen celice in je ξ naključno izbrano število na intervalu med 0 in 1, potem je k-ti nuklid izbran za interakcijo če velja [2]: k 1 N k Σ T i < ξ Σ T i < Pri čemer je Σ T i makroskopski totalni presek i-tega nuklida. 3.6 Določanje vrste interakcije Totalni diferencialni presek izotopa k, ki bo sodeloval pri interakciji, je vsota diferencialnih presekov za vse interakcije [5, 7]: Σ T i σ T = σ elast + σ neelast + σ zajetje + σ fisija +... Verjetnost p j za reakcijo tipa j je kvocient diferencialnega preseka za reakcijo j in totalnega diferencialnega preseka [5, 7]: p j = σ j σ T ξ je naključno izbrano število na intervalu med 0 in 1. Za izbiro interakcije tipa j program rešuje enačbo za j tako, da velja [5, 7]: j 1 σ i σ T < ξ N σ i σ T < Energija E in smerni vektor (u, v, w ) elastično sipanega delca sta določena iz zakonov o ohranitvi energije in gibalne količine. Energija E in smerni vektor (u, v, w ) izhodnih delcev pri ostalih interakcijah (neelastično sipanje, zajetje nevtrona, izsevanje nabitega delca, cepitev jedra,..) so določeni s stohastičnimi procesi in tehnikami naključnega vzorčenja. 7 j σ i σ T
3.7 Vzorčenje ( Tallying ) Namen sledenja delcu je računanje pričakovane ali srednje vrednosti neke količine (fluks, tok, pomnoževalni faktor,...). Rezultat je povprečje N izmerjenih vrednosti: N x = 1 N x i Pri čemer je x i prispevek i-te zgodovine k zahtevani količini. večanjem števila zgodovin kot: σ rel 1 N Negotovost količine x pada z V Monte Carlo izračunane količine niso izračunane v točkah, saj volumen točke je enak 0 in posledično noben delec ne gre skozi točko, temveč v celicah določenega volumna. Količine so ocenjene iz števila trkov, dolžin poti delcev ali katere druge količine, ki je sorazmerna z volumnom. Če hočemo izračunati porazdelitev ene količine skozi celoten prostor problema, je potrebno prostor razdeliti na manjše celice ter izračunati količino v vsaki posamezni celici. Z željo po dobri prostorski ločljivosti rezultatov se manjša volumen celic s čimer se zmanjša število delcev, ki prepotujejo celico. Posledično se veča statistična napaka merjene količine in je potrebno povečanje števila simuliranih delcev ali pa uporaba katere izmed metod redukcije variance [5]. Tipične vrednosti relativnih napak rezultatov primernih za točkaste detektorje znašajo manj kot 0.05, kar pomeni, da v primeru celic volumna nekaj cm 3 mora biti število simuliranih delcev reda 10 10. 3.8 Vrste vzorčenja a) Fluks Povprečen fluks skozi celico je ocenjen preko vsote poti vseh delcev skozi celico [5]: φ = 1 V Pri čemer je T i dolžina poti posameznega delca, V pa volumen celice. Fluks nevtronov izračunan z MC predstavlja povprečje prispevkov velikega števila poti nevtronov med potekom simulacije. Fluks skozi celico se lahko izračuna tudi preko števila trkov, ki se zgodijo v celici znanega volumna, ali pa z ocenjevanjem prehodom delcev čez ploskev [7]. b) Hitrost reakcije i T i Slika 6: Dolžina poti skozi celico [5]. Hitrost reakcije pove koliko dogodkov določene reakcije se zgodi na enoto časa. Izračunana je tako, da se fluks pomnoži s presekom za reakcijo [5]: σ j φ = 1 V 8 T i σ j i
c) Energija oddana pri reakciji Fluks pomnožen s presekom za reakcijo ter z energijo oddano pri reakciji. Ta količina je KERMA (Kinetic Energy Released in Matter) in omogoča izračun prejetih doz [5]. 3.9 Izračun pomnoževalnega faktorja Pomnoževalni faktor nam pove, ali bo v nekem reaktorju lahko potekala nadzorovana verižna reakcija ali ne. Efektivni pomnoževalni faktor k eff je definiran kot razmerje števila nevtronov dveh zaporednih generacij [1]: k eff = N i+1 N i Če je k eff < 1, je sistem podkritičen, kar pomeni, da bo po dolgem času populacija nevtronov v takem sistemu eneka 0. Če je k eff = 1, je sistem kritičen, populacija nevtronov bo s časom konstantna in če je k eff > 1 je sistem nadkritičen, kar pomeni, da bo število nevtronov večje iz generacije v generacijo. Monte Carlo metoda računa pomnoževalni faktor tako, da se postavi začetna ocena efektivnega pomnoževalnega faktorja sistema (običajno k 0 = 1) ter se vzorči vsa mesta definirana za začeten izvor nevtronov. Na začetku simulacije se nekaj deset ciklov zavrže, zato da se celoten model poplavi z nevtroni. Število zavrženih ciklov je odvisno od velikosti in kompleksnosti sistema. Ko je model homogeno poplavljen z nevtroni, se prične sledenje vsem nevtronom v vsakem ciklu (generaciji) ter merjenje koliko novih nevtronov nastane pri cepitvah. Med cepitvijo nastali nevtroni se shranijo za kasnejšo simulacijo. Za vsak posamezen cikel se določi k eff, kasneje pa se iz vseh vrednosti določi povprečje in napako. Za preprečevanje rasti števila nevtronov proti neskončno v nadkritičnih sistemih oz. padec števila nevtronov na 0 v podkritičnih sistemih je po vsakem ciklu število nevtronov renormalizirano. Slika 7: Računanje efektivnega pomnoževalnega faktorja z Monte Carlo metodo (modra črta) in z deterministično metodo (rdeča črta) v odvisnosti od števila iteracij [7]. Slika 7 prikazuje postopek računanja k eff z Monte Carlo simulacijo in z deterministično metodo. Pri obeh metodah se postavi začetna ocena (običajno k 0 = 1). Izračuna po deterministični metodi je konec, ko se rezultat naslednje iteracije razlikuje poljubno malo od rezultata prejšnje iteracije. Pri MC pa se po homogenizaciji modela z nevtroni prične beleženje k eff za vsak posamezen cikel. Število potrebnih MC ciklov je nastavljeno s strani uporabnika in sicer 9
glede na želje velikosti statistične napake. Vidimo, da medtem ko se vrednost k eff izračunana z determinističnimi metodami približuje neki limiti, se vrednost dobljena z MC spreminja iz cikla v cikel. 4 Monte Carlo programi Nekaj programov, ki za nevtronske preračune uporabljajo Monte Carlo simulacije: OpenMC je odprtokodni program razvit na MIT leta 2011. [8] SERPENT je bil razvit na VTT Technical Research Centre na Finskem leta 2004. MCNP oz. Monte Carlo N-Particle je najpogosteje uporabljan program razvit na Los Alamos National Laboratory v Los Alamosu. 4.1 Primeri uporabe programa MCNP kot podpora kalibraciji senzorjev na Joint European Torus V sodelovanju Instituta Jožef Stefan z EUROfusion je v okviru projekta JET3 bil narejen MCNP model fuzijskega reaktorja Joint European Torus. Računal se je vpliv robotske roke na nevtronski fluks znotraj vakuumske posode reaktorja. Rezultati izračunov so se uporabili za kalibracijo fisijskih celic izven vakuumske posode za devterij-devterijev izvor nevtronov. Slika 8 prikazuje fuzijski reaktor JET v prerezu. Na levi je prerez v ravnini xz, na desni pa v ravnini xy. Vidna je vakuumska posoda z vrati ter komponente reaktorja znotraj posode (antene, diverter,..). Okrog posode so razne tuljave in plašč reaktorja ( shell ). Zunanje krogle na sliki desno so detektorji nevtronskega fluksa. Slika 8: Vizualni prikaz MCNP modela JET v grafičnem urejevalniku programa MCNP. [Vir: IJS MCNP model JET.] 10
Slika 9 prikazuje vakuumsko posodo fuzijskega reaktorja JET ter robotsko roko za daljinsko rokovanje. Izrac unan je bil vpliv robotske roke na fluks nevtronov za razlic ne lege roke znotraj vakuumske posode. Bila sta narejena dva modela, en z robotsko roko, drugi pa brez robotske roke. V obeh modelih je bil izrac unan fluks nevtronov preko celotnega prostora modela. Prostorski porazdelitvi fluksov iz obeh modelov sta nato bili ods teti ter grafic no predstavljeni v programu. Obarvani del na sliki je zmanjs anje oz. senc enje nevtronskega fluksa, ki ga povzroc a robotska roka. Slika 9: Vpliv robotske roke na nevtronski fluks v fuzijskem reaktorju JET. [Vir: Lengar I.] 5 Zakljuc ek Z Monte Carlo metodami se izognemo direktnemu res evanju transportne enac be. Prerac uni omogoc ajo natanc no modeliranje obravnavanih sistemov, medtem ko so pri deterministic nih metodah nujno potrebne poenostavitve geometrije in diskretizacija energije. Rezultati MC prerac unov so natanc ne prostorske porazdelitve kolic in, ki dajo dober vpogled v lastnosti reaktorskih sistemov. Edina ovira so dolgi rac unski c asi, ki jih potrebujemo za rezultate z majhnimi statistic nimi napakami. Ampak vedeti moramo, da se rac unske moc i rac unalnikov vec ajo. 11
Literatura [1] Trkov A., Snoj L., Ravnik M., Reaktorska in radiacijska fizika, študijsko gradivo, Fakulteta za matematiko in fiziko, Univerza v Ljubljani, Ljubljana, 2013 [2] Kodeli, I., Boltzmanova transportna enačba in perturbacijska teorija s primerom uporabe v fuzijskih preračunih, Predavanje, IJS Reaktor Podgorica, 9. april 2014 [3] E.Booth et al:mcnp - A General Monte Carlo N-Particle Transport Code, Volume I: Overview and Theory, University of California, Los Alamos National Laboratory, ZDA, April 2003 [4] Lewis E. E., Miller W. F. jr., Computational methods of neutron transport, John Wiley Sons, 1984 [5] Snoj L., Trkov A.: Uvod v Monte Carlo transport nevtronov, Predavanja za študente fizike fisijskih reaktorjev, 2014 [6] E.Booth et al:mcnp - A General Monte Carlo N-Particle Transport Code, Volume II: User s Guide, ZDA : University of California, Los Alamos National Laboratory, April 2003 [7] Brown F. B., Fundamentals of Monte Carlo Particle Transport, LA-UR-05-4983, Los Alamos National Laboratory [8] The OpenMC Monte Carlo Code, https://mit-crpg.github.io/openmc/ (datum obiska: 20.2.2015)