]>
Commit | Line | Data |
---|---|---|
da32329d AM |
1 | |
2 | ======= Photonuclear Processes ======= | |
3 | ||
4 | Simulation of photonuclear interactions with STARlight is possible through an interface with DPMJet or Pythia. | |
5 | These interfaces can be enabled through options passed to cmake during the configuration process. However, due | |
6 | to DPMJet depending on a different version of Pythia from what is used in the Pythia interface, both cannot be | |
7 | enabled at the same time. | |
8 | ||
9 | The gfortran compiler is required to use the photonuclear interfaces. | |
10 | ||
11 | ||
12 | ======= 1. Photonuclear interactions with DPMJet ======= | |
13 | ||
14 | ||
15 | ------- 1.1. Obtaining and installing DPMJet ------- | |
16 | ||
17 | ||
18 | The DPMJet package can be obtained by contacting the authors as explained here: | |
19 | http://sroesler.web.cern.ch/sroesler/dpmjet3.html | |
20 | ||
21 | Once you have the code proceed with these steps: | |
22 | ||
23 | Changle the line containing the OPT variable in the DPMJet Makefile: | |
24 | ||
25 | OPT = -c -C -std=legacy -O -O3 -g -fexpensive-optimizations -funroll-loops -fno-automatic -fbounds-check -v -fPIC | |
26 | ||
27 | ----- 64-bit ----- | |
28 | ||
29 | You should make sure that all -m32 options are removed from the Makefile. | |
30 | ||
31 | Unfortunately the DPMJet package depends on a floating point exception trap implementation, | |
32 | and only a 32-bit version of that is included in the package. An example implementation can be found here: | |
33 | ||
34 | http://www.arsc.edu/arsc/support/news/hpcnews/hpcnews376/ | |
35 | ||
36 | Under "Fortran Floating Point Traps for Linux" there is a code example. A file based on this, fpe.c, | |
37 | can be found in the external directory in Starlight. Move that to your DPMJet directory and run: | |
38 | ||
39 | $ gcc -o fpe.o fpe.c | |
40 | ||
41 | ----- End 64-bit ----- | |
42 | ||
43 | Then in the DPMJet directory run: | |
44 | ||
45 | $ make | |
46 | ||
47 | ------- 1.2. Compiling Starlight with DPMJet interface ------- | |
48 | ||
49 | To enable the compilation of the DPMJet interface please follow these steps: | |
50 | ||
51 | CMake uses an environment variable $DPMJETDIR to locate the DPMJet object files. | |
52 | ||
53 | $ export DPMJETDIR=<path to dpmjet> | |
54 | ||
55 | Then create a build directory for Starlight | |
56 | ||
57 | $ mkdir <build-dir> | |
58 | ||
59 | and change into it | |
60 | ||
61 | $ cd <build-dir> | |
62 | ||
63 | Run CMake with the option to enable DPMJet | |
64 | ||
65 | $ cmake <path-to-starlight-source> -DENABLE_DPMJET=ON | |
66 | ||
67 | Then build it | |
68 | ||
69 | $ make | |
70 | ||
71 | ||
72 | ------- 1.3. Running Starlight with DPMJet interface ------- | |
73 | ||
74 | ||
75 | To run Starlight with the DPMJet interface a couple of files are needed in the directory | |
76 | where you want to run Starlight. | |
77 | ||
78 | The files needed are: | |
79 | slight.in (Starlight config file. An example suitable for DPMJet can be found in config/slight.in.dpmjet) | |
80 | my.input (DPMJet config file. An example can be found in config/my.input) | |
81 | dpmjet.dat (Can be found in the DPMJet source directory) | |
82 | ||
83 | In the slight.in file the relevant production modes (PROD_MODE) for DPMJET is: | |
84 | ||
85 | 5: A+A single excitation | |
86 | 6: A+A double excitation | |
87 | 7: p+A single excitation | |
88 | ||
89 | In addition the minimum and maximum gamma energies must be set. It is important that | |
90 | these are within the interval set in the my.input file | |
91 | ||
92 |