wiki:GuarDyan_fejlesztoi

GUARDYAN (GPU Assisted Reactor Dynamic Analysis)

1. Working Copy

Ahhoz legyen egy working copy-d, létre kell hoznod awingen egy mappát, belelépned majd kiadni a következő parancsot:
svn co http : localhost/svn/T DM CC_SDK/branches/qtv2 .
Ha egy másik ágat szeretnél fejleszteni, akkor értelemszerűen a TDMCC_SDK utáni részt kell módosítani.

2. Környezeti változók beállítása

A forrásfájlok között található egy set_env fájl, mellyel be kell állítanunk fordításhoz és futtatáshoz a környezeti változókat, jelen esetben a cuda elérési útja van megadva. Futtatás és fordítás előtt ki kell adni a . ./set_env parancsot.

3. Függőségek

Boost program options: 1.54
CUDA: 8.0
NVIDIA driver: 375.66
GCC: 5.4.0
Qt: 5.5.1

4. Fordítás

A környezeti változók beállítása után (mely az adott terminálra vonatkozik csak) indíthatunk egy qtcreator-t és szerkeszthetjük, fordíthatjuk és debu- golhatjuk a programot. 5Parancssorból dolgozva a rebuild fájlt használva és a ./rebuild parancsot kiadva fordíthatjuk újra a kódot. Ez jelenleg négy parancsot tartalmaz:

  • colormake -f Makefile clean : törli a lefordított állományokat
  • colormake -f Makefile distclean : törli a generált Makefile-okat
  • qmake -r -spec linux-g++-64 CONFIG+="create_pc create_prl linkq_pkgconfig" : újra legenerálja a Makefile-okat a változtatások alapján. A CONFIG után az idézőjelbe egy debug-ot beszúrva a CPU és a GPU kód is debug módban fordul.
  • colormake -f Makefile -j 1 : lefordítja a programot az új Makefile-ok alapján. A -j opció megmondja a fordítónak, hogy hány CPU szálat használhat.

A colormake, mint ahogy a neve is mutatja színezve jelöli a fordítás lépé- seit, így az error-ok és a warning-ok könnyebben megtalálhatóak.

5. Alkalmazás futtatása

Az alkalmazás neve TDMCCApp64, melynek elkészült egy -f kapcsolója mellyel a program kivezetett beállításait módosíthatjuk újrafordítás nélkül. Az alkalmazás futtatásához a
TDMCCApp64 -f neutrontransport.cfg
parancsot kell kiadni, ahol a -f kapcsoló után beállításokat tartalmazó fájl neve áll. A programnak megadható a -g kapcsoló, melynek hatására grafikus kezelői felülettel indul a program. A forráskódok mellett található egy neutrontransport.cfg fájl, mely tartalmazza a lehetséges beállításokat:

  • output_file_name = output.txt : Időlépésenként a teljesítményt és annak szórását tartalmazó fájl.
  • number_of_neutrons = 4194304 : A szimulálandó neutronok száma, jelenleg kettő egész számú hatványa lehet.
  • particles_per_thread = 8 : A GPU-n egy szálan szimulált neutronok száma.
  • simulation_time = 1.0 : Szimuláció hossza másodperc egységben.
  • length_of_time_step = 5e-4 : Egy időlépés hossza másodperc egységben.
  • length_of_time_step_feedback = 5e-4 : Egy szakasz hossza másodpercben.
  • sigma_a = 0.16382 : Abszorpciós hatáskeresztmetszet 1/cm egységben.
  • sigma_t = 1.0 : Teljes hatáskeresztmetszet 1/cm egységben.
  • sigma_f = 0.25 : Hasadási hatáskeresztmetszet 1 cm egységben.
  • beta = 0.0065 : Későneutron hányad.
  • lambda = 0.1115: Későneutron csoport bomlási állandója 1/s egységben.
  • length_x = 5.0' : Geometria mérete az x-tengely mentén centiméter egységben.
  • length_y = 10.0 : Geometria mérete az y-tengely mentén centiméter egységben.
  • length_z = 12.0 : Geometria mérete az z-tengely mentén centiméter egységben.
  • length_r = 50.0 : Geometria radiális mérete centiméter egységben.
  • splitlimit = 400.0 : Trajektória felhasításának határa.
  • roulettelimit = 10.0 : Orosz rulett határa.
  • roulette_restore_value = 10.0 : Orosz rulett értéke.
  • device_index = -1 : GPU eszköz indexe, -1 esetén automatikusan választ a szabad GPU-k közül.
  • volume_size_x = 64 : Térfogat x-irányú felbontása.
  • volume_size_y = 64 : Térfogat y-irányú felbontása.
  • volume_size_z = 64 : Térfogat z-irányú felbontása.
  • create_volume = 0 : Neutronsűrűség térfogati eloszlásának kimentése. Ha az értéke 1, akkor szakaszonként kimenti a program.
  • velocity_group1 = 2.2e5 : Egy neutroncsoport esetén a neutron sebessége cm/s egységben.
  • velocity_group2 = 1.95e9 : Kétcsoport közelítésben a második csoport neutronjainak sebessége cm/s egységben.
  • create_histogram = 0 : Hisztogram készítési opció. Ha az értéke 1 akkor szakaszonként fájlba menti a program a neutronok súlyából készített hisztogramot.
  • histogram_size = 1024 : A hisztogram osztásainak száma.
  • source_type = 0 : Forrás indítása egyenletes eloszlásból (0 ) vagy koszinuszosból (1 ).
  • reflector = 1 : Külső felület reflektáló (1 ), vákuum (0 ).
  • reactor = Box : Reaktor geometria alakja: Box (téglatest), Sphere (gömb) vagy Cylinder (henger) lehet az értéke.
  • print_history_period = 10 : Neutron history kiírásának periódusa időlépés egységekben.
  • history_collision_length = 50 : Egy history-ban kigyűjtött láncok ütközési hossza.
  • history_time = 1.0e-4 : Egy history maximális időbeli hossza másodperc egységben.
  • number_of_energy_groups = 2 : Energia csoportok száma, 1 vagy 2 lehet az értéke.
  • print_history_start = 99 : Az értéke megmondja hogy a history kiírása hányadik szakasztól kezdődjön.

A paraméterek sorrendje nem számít, a "#" jellel hagyhatunk figyelmen kívül egy beállítást, ekkor a program a default beállítást fogja használni erre az adott paraméterre, az egyenlőségjel megadása kötelező.

6. Geometria leíró formátuma

7. Anyagi leíró formátuma

8. Grafikus felület

9. Tagek számozása

A létrehozás dátuma majd ponttal elválasztva az adott napon kiadott verzio száma: pl.: 17.05.05.01 2017.május 5-én kiadott első verzió.

10. Kimenetek formátuma

output.txt

Egy szöveges fájl, mely három oszlopot tartalmaz, az első oszlopban található a szakasz kezdetének időpontja a másodikban a leadott teljesítmény, a harmadikban pedig a teljesítmény szórása.

volume_t*.raw

A neutronsűrűség térbeli eloszlása a .cfg fájlban megadott volume_size_x, volume_size_y, volume_size_z paramétereknek megfelelően.

histogram_t*.txt

A súlyokból képzett histogram_size méretű hisztogramot tartalmazó fájl.

history_t*.raw

Bináris fájl a neutronok történetéről. A fájl egy fejléccel kezdődik mely tartalmazza a neutronok számát (unsigned long long) és az egy neutronhoz tartozó tulajdonságok számát (unsigned int). A fejléc után az abban megadott számú neutron adatai következnek a következő sorrendben: neutron lánc indexe (unsigned int), reakció típúsa (char), x-koordináta (float), y-koordináta (float), z-koordináta (float), időpont (float), súly (float). A reakció típusa azt mondja meg, hogy a neutron az adott lépésben milyen reakcióban vett részt, hasadásban (f ), elasztikus szórásban (e), inelasztikus szórásban (i) vagy prekurzorrá vált (p).

material_volume.raw

Anyagindexeket tartalmazó térbeli eloszlás a .cfg fájlban megadott volume_size_x, volume_size_y, volume_size_z paramétereknek megfelelően.

11. Egyéb

Last modified 7 years ago Last modified on Sep 27, 2017, 2:48:10 PM

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.