Table of Contents |
---|
Opis
PHITS (eng. Particle and Heavy Ion Transport Code System) je aplikacija za Monte Carlo simulaciju prijenosa čestica, razvijena u suradnji između JAEA (Japan Atomic Energy Agency), RIST (The Research Organization for Information Science and Technology), KEK (The High Energy Accelerator Research Organization) te nekoliko drugih instituta.
Aplikacija provodi simulaciju prijenosa čestica kroz široki energetski raspon, a koristeći nekoliko modela nuklearnih reakcija i biblioteka nuklearnih podataka. PHITS podržava istraživanja u području tehnologije akceleratora čestica, radioterapije, kozmičkog zračenja te drugim područjima koja su povezana s fenomenima prijenosa čestica i teških iona.
Na računalnom klasteru Supek, PHITS je kompajliran s Fortran kompajlerima te koristi GNU + MPICH ili Intel + Open MPI knjižnice. Aplikacija je pripremljena s podrškom za MPI paralelizaciju, što znači da se može širiti van jednog računalnog čvora.
Warning | ||
---|---|---|
| ||
Korištenje PHITS-a ograničeno je na registrirane korisnike. Više informacija na: |
Verzije
...
Verzija |
---|
...
Modul |
---|
...
Izvršna datoteka |
---|
...
Prevodioc | Supek | Padobran | Podrška | Paralelizacija |
---|
...
3.31 | scientific/phits/3.31-gnu | phits_LinGfort_MPI | GNU + MPICH | CPU | MPI | ||
scientific/phits/3.31-intel | phits_LinIfort_MPI | Intel + Open MPI | |||||
3.33 | scientific/phits/3.33-gnu | phits_LinGfort_MPI | GNU + MPICH | ||||
scientific/phits/3.33-intel | phits_LinIfort_MPI | Intel + Open MPI | |||||
3.341 | scientific/phits/3.341-gnu | phits_LinGfort_MPI | GNU + MPICH | ||||
scientific/phits/3.341-intel | phits_LinIfort_MPI | Intel + Open MPI |
Službena dokumentacija
Primjeri
Primjer input datoteke
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[ T i t l e ]
minimized input file for lecture
[ P a r a m e t e r s ]
icntl = 0 # (D=0) 3:ECH 5:NOR 6:SRC 7,8:GSH 11:DSH 12:DUMP
maxcas = 50 # (D=10) number of particles per one batch
maxbch = 2 # (D=10) number of batches
[ S o u r c e ]
s-type = 1 # mono-energetic axial source
proj = proton # kind of incident particle
dir = 1.0 # z-direction of beam [cosine]
r0 = 0. # radius [cm]
z0 = 0. # minimum position of z-axis [cm]
z1 = 0. # maximum position of z-axis [cm]
e0 = 150. # energy of beam [MeV/u]
[ M a t e r i a l ]
mat[1] H 2 O 1
[ S u r f a c e ]
10 so 10.
[ C e l l ]
100 1 -1.0 -10
101 -1 10
[ T - T r a c k ]
mesh = xyz # mesh type is xyz scoring mesh
x-type = 2 # x-mesh is linear given by xmin, xmax and nx
nx = 200 # number of x-mesh points
xmin = -20. # minimum value of x-mesh points
xmax = 20. # maximum value of x-mesh points
y-type = 1 # y-mesh is given by the below data
ny = 1 # number of y-mesh points
-5.0 5.0
z-type = 2 # z-mesh is linear given by zmin, zmax and nz
nz = 200 # number of z-mesh points
zmin = -20. # minimum value of z-mesh points
zmax = 20. # maximum value of z-mesh points
t-type = 2 # t-mesh is linear given by tmin, tmax and nt
nt = 1 # number of t-mesh points
tmin = 0.0 # minimum value of t-mesh points
tmax = 1.0 # maximum value of t-mesh points
part = all
e-type = 1 # e-mesh is given by the below data
ne = 1 # number of e-mesh points
0.0 1000.0
unit = 1 # unit is [1/cm^2/source]
axis = xz # axis of output
file = track_xz.out # file name of output for the above axis
title = Track Detection using [T-track] tally
gshow = 3 # 0: no 1:bnd, 2:bnd+mat, 3:bnd+reg 4:bnd+lat
epsout = 1 # (D=0) generate eps file by ANGEL
[ E n d ] |
Note | ||
---|---|---|
| ||
Primjeri niže podrazumjevaju da se u direktoriju pozivanja skripte nalazi input datoteka naziva: |
...
Napomene
Warning |
---|
...
MPI pokretač za GNU verziju:
mpiexec phits_LinGfort_MPI
Podrazumijevano PBS ponašanje je „slobodno" razmještanje chunkova po slobodnim čvorovima. Zbog aktualnog cray-pals buga, trenutno je ograničen broj poslova koji se mogu širiti van čvora kad koriste Cray-ev mpiexec. Ako Vaš posao prijeđe taj limit te proširi svoje MPI procese na druge čvorove, prekinut će se. Kako bi sigurno izbjegli bug, potrebno je sve MPI procese smjestiti na isti čvor. Najjednostavniji način je korištenjem opcije |
GNU
U primjeru niže, aplikacija će pokrenuti 8 MPI procesa, svaki sa zatraženih 2 GiB RAM (16 GiB ukupno).
Code Block | ||||
---|---|---|---|---|
|
...
| |||
#PBS -q cpu #PBS -l select=8:mem=2gb #PBS -l place=pack cd ${PBS_O_WORKDIR} module load scientific/phits/3.31-gnu mpiexec phits_LinGfort_MPI |
Intel
...
Intel
...
mpirun -np $(cat ${PBS_NODEFILE} | wc -l) phits_LinIfort_MPI
U primjeru niže, aplikacija će pokrenuti 8 MPI procesa, svaki sa zatraženih 2 GiB RAM (16 GiB ukupno).
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#PBS -q cpu #PBS -l select=8:mem=2gb #PBS -l place=pack cd ${PBS_O_WORKDIR} module load scientific/phits/3.31-intel |
...
mpiexec phits_LinIfort_MPI |