Version 18 (modified by 8 years ago) ( diff ) | ,
---|
TDMCC
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.26
GCC: 5.4
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. 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.
10. 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 8 years ago.
Download all attachments as: .zip