wiki:GuarDyan_fejlesztoi

Version 17 (modified by gtolnai, 7 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 kez-

dő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)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.