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
Attachments (4)
- bme_nti.png (9.8 KB ) - added by 9 years ago.
- gui_page1.png (43.8 KB ) - added by 8 years ago.
- gui_page2.png (47.1 KB ) - added by 8 years ago.
- Guardyan.pdf (1.5 MB ) - added by 7 years ago.
Download all attachments as: .zip