Re: [fluka-discuss]: Beam definition

From: Jilberto Antonio Zamora Saá <jzamorasaa_at_jinr.ru>
Date: Thu, 03 Jan 2019 16:28:21 -0300

Dear Cesc

I'm running an example that uses a user pre-define source (the file
hsource.f). I can compile, link and run the example, such as you
recommended me.
I'm using a usrbim card in order to score electrons, however, the result
is exactly the same as when I run without a user pre-define source.

I think that I missing something in the "inp" file, which is attached,
could you help me, please.

thank in advance,
Jilberto

---
*******************************************************************
  Dr. Jilberto Zamora Saa
  Dzhelepov Laboratory of Nuclear Problems
  Joint Institute for Nuclear Research
  141980 Dubna, Moscow region, Russia
  phone: +(496)2162589 (Office)
  phone: +7(915)4671294 (Mobile)
  email: jzamorasaa_at_jinr.ru
********************************************************************
El 03-01-2019 9:36 am, Francesc Salvat-Pujol escribió:
> Dear Jilberto,
> 
>  $FLUPRO/flutil/rfluka -e ex08 (...)
> 
> where (...) stands for whichever other options you normally pass and 
> the
> input filename (without .inp). Check out
> 
>  $FLUPRO/flutil/rfluka -h
> 
> for more explicit details. Don't worry about the "cannot remove
> ex08.map". It probably just appears the first time you link your custom
> binary.
> 
> Cheers,
> 
> Cesc
> 
> On Mon, Dec 31 2018, at 11:06 -0300, Jilberto Antonio Zamora Saá wrote:
>> 
>> Dear Cesc
>> 
>> I already runned and I got the following output
>> 
>> sirjazs_at_jilberto-Lenovo:~/fluka_work_DIR/test/Beam-Test/ex08$
>> $FLUPRO/flutil/lfluka -m fluka -o ex08 source.o
>> $FLUPRO = /home/sirjazs/FLUKA
>> now linking
>> /home/sirjazs/FLUKA
>> gfortran
>> ar x /home/sirjazs/FLUKA/libflukahp.a fluka.o
>> rm: cannot remove 'ex08.map': No such file or directory
>> gfortran -msse2 -mfpmath=sse -fPIC -O3 -g -mtune=generic
>> -fexpensive-optimizations -funroll-loops -fstrength-reduce -Wall
>> -Wuninitialized -Wno-tabs -Wline-truncation -Wno-unused-function
>> -Wno-unused-parameter -Wno-unused-dummy-argument -Wno-integer-division
>> -Wno-unused-variable -Wno-conversion -Wunused-label -Waggregate-return
>> -Wcast-align -Wsystem-headers -ftrapping-math -frange-check
>> -fbackslash -fdump-core -fbacktrace -ffpe-trap=invalid,zero,overflow
>> -finit-local-zero -ffixed-form -frecord-marker=4 -funderscoring
>> -fno-automatic -fd-lines-as-comments -fbounds-check
>> -I/home/sirjazs/FLUKA/flukapro -v -o ex08 -Xlinker -Map -Xlinker
>> ex08.map fluka.o source.o -L/home/sirjazs/FLUKA -lflukahp
>> Driving: gfortran -msse2 -mfpmath=sse -fPIC -O3 -g -mtune=generic
>> -fexpensive-optimizations -funroll-loops -fstrength-reduce -Wall
>> -Wuninitialized -Wno-tabs -Wline-truncation -Wno-unused-function
>> -Wno-unused-parameter -Wno-unused-dummy-argument -Wno-integer-division
>> -Wno-unused-variable -Wno-conversion -Wunused-label -Waggregate-return
>> -Wcast-align -Wsystem-headers -ftrapping-math -frange-check
>> -fbackslash -fdump-core -fbacktrace -ffpe-trap=invalid,zero,overflow
>> -finit-local-zero -ffixed-form -frecord-marker=4 -funderscoring
>> -fno-automatic -fd-lines-as-comments -fbounds-check
>> -I/home/sirjazs/FLUKA/flukapro -v -o ex08 -Xlinker -Map -Xlinker
>> ex08.map fluka.o source.o -L/home/sirjazs/FLUKA -lflukahp -l gfortran
>> -l m -shared-libgcc
>> Using built-in specs.
>> COLLECT_GCC=gfortran
>> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
>> OFFLOAD_TARGET_NAMES=nvptx-none
>> OFFLOAD_TARGET_DEFAULT=1
>> Target: x86_64-linux-gnu
>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu
>> 7.4.0-1ubuntu1~16.04~ppa1'
>> --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs
>> --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++
>> --prefix=/usr --with-gcc-major-version-only --program-suffix=-7
>> --program-prefix=x86_64-linux-gnu- --enable-shared
>> --enable-linker-build-id --libexecdir=/usr/lib
>> --without-included-gettext --enable-threads=posix --libdir=/usr/lib
>> --enable-nls --with-sysroot=/ --enable-clocale=gnu
>> --enable-libstdcxx-debug --enable-libstdcxx-time=yes
>> --with-default-libstdcxx-abi=new --enable-gnu-unique-object
>> --disable-vtable-verify --enable-libmpx --enable-plugin
>> --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto
>> --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
>> --with-multilib-list=m32,m64,mx32 --enable-multilib
>> --with-tune=generic --enable-offload-targets=nvptx-none
>> --without-cuda-driver --enable-checking=release
>> --build=x86_64-linux-gnu --host=x86_64-linux-gnu
>> --target=x86_64-linux-gnu
>> Thread model: posix
>> gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~16.04~ppa1)
>> Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec
>> rename spec lib to liborig
>> COLLECT_GCC_OPTIONS='-msse2' '-mfpmath=sse' '-fPIC' '-O3' '-g'
>> '-mtune=generic' '-fexpensive-optimizations' '-funroll-loops' '-Wall'
>> '-Wuninitialized' '-Wno-tabs' '-Wline-truncation'
>> '-Wno-unused-function' '-Wno-unused-parameter'
>> '-Wno-unused-dummy-argument' '-Wno-integer-division'
>> '-Wno-unused-variable' '-Wno-conversion' '-Wunused-label'
>> '-Waggregate-return' '-Wcast-align' '-Wsystem-headers'
>> '-ftrapping-math' '-frange-check' '-fbackslash' '-fbacktrace'
>> '-ffpe-trap=invalid,zero,overflow' '-finit-local-zero' '-ffixed-form'
>> '-frecord-marker=4' '-funderscoring' '-fno-automatic'
>> '-fd-lines-as-comments' '-fbounds-check' '-I'
>> '/home/sirjazs/FLUKA/flukapro' '-v' '-o' 'ex08'
>> '-L/home/sirjazs/FLUKA' '-shared-libgcc' '-march=x86-64'
>> COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
>> LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
>> COLLECT_GCC_OPTIONS='-msse2' '-mfpmath=sse' '-fPIC' '-O3' '-g'
>> '-mtune=generic' '-fexpensive-optimizations' '-funroll-loops' '-Wall'
>> '-Wuninitialized' '-Wno-tabs' '-Wline-truncation'
>> '-Wno-unused-function' '-Wno-unused-parameter'
>> '-Wno-unused-dummy-argument' '-Wno-integer-division'
>> '-Wno-unused-variable' '-Wno-conversion' '-Wunused-label'
>> '-Waggregate-return' '-Wcast-align' '-Wsystem-headers'
>> '-ftrapping-math' '-frange-check' '-fbackslash' '-fbacktrace'
>> '-ffpe-trap=invalid,zero,overflow' '-finit-local-zero' '-ffixed-form'
>> '-frecord-marker=4' '-funderscoring' '-fno-automatic'
>> '-fd-lines-as-comments' '-fbounds-check' '-I'
>> '/home/sirjazs/FLUKA/flukapro' '-v' '-o' 'ex08'
>> '-L/home/sirjazs/FLUKA' '-shared-libgcc' '-march=x86-64'
>> /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin
>> /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so
>> -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
>> -plugin-opt=-fresolution=/tmp/ccJuBBpL.res
>> -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc
>> -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm
>> -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc
>> -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s
>> -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr
>> -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker
>> /lib64/ld-linux-x86-64.so.2 -z relro -o ex08
>> /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crt1.o
>> /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o
>> /usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o -L/home/sirjazs/FLUKA
>> -L/usr/lib/gcc/x86_64-linux-gnu/7
>> -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu
>> -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib
>> -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu
>> -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -Map
>> ex08.map fluka.o source.o -lflukahp -lgfortran -lm -lgcc_s -lgcc
>> -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
>> /usr/lib/gcc/x86_64-linux-gnu/7/crtend.o
>> /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
>> COLLECT_GCC_OPTIONS='-msse2' '-mfpmath=sse' '-fPIC' '-O3' '-g'
>> '-mtune=generic' '-fexpensive-optimizations' '-funroll-loops' '-Wall'
>> '-Wuninitialized' '-Wno-tabs' '-Wline-truncation'
>> '-Wno-unused-function' '-Wno-unused-parameter'
>> '-Wno-unused-dummy-argument' '-Wno-integer-division'
>> '-Wno-unused-variable' '-Wno-conversion' '-Wunused-label'
>> '-Waggregate-return' '-Wcast-align' '-Wsystem-headers'
>> '-ftrapping-math' '-frange-check' '-fbackslash' '-fbacktrace'
>> '-ffpe-trap=invalid,zero,overflow' '-finit-local-zero' '-ffixed-form'
>> '-frecord-marker=4' '-funderscoring' '-fno-automatic'
>> '-fd-lines-as-comments' '-fbounds-check' '-I'
>> '/home/sirjazs/FLUKA/flukapro' '-v' '-o' 'ex08'
>> '-L/home/sirjazs/FLUKA' '-shared-libgcc' '-march=x86-64'
>> 
>> 
>> The aforementioned command produces an executable file called "ex08",
>> however, I do not know what I must do with this executable, can you
>> give me some directions, please!!!!
>> 
>> By the way, I'm worried by the line
>> 
>> "rm: cannot remove 'ex08.map': No such file or directory"
>> 
>> in the output, is this normal?
>> 
>> 
>> regards,
>> Jilberto
>> ---
>> *******************************************************************
>> Dr. Jilberto Zamora Saa
>> Dzhelepov Laboratory of Nuclear Problems
>> Joint Institute for Nuclear Research
>> 141980 Dubna, Moscow region, Russia
>> phone: +(496)2162589 (Office)
>> phone: +7(915)4671294 (Mobile)
>> email: jzamorasaa_at_jinr.ru
>> 
>> ********************************************************************
>> 
>> El 20-12-2018 8:20 pm, Francesc Salvat-Pujol escribió:
>>> Dear Jilberto,
>>> 
>>> I replicated your situation in a virtual machine. It appears like in
>>> Ubuntu 16.04 (LTS) there are a few interesting/known things:
>>> 
>>> - /usr/bin/awk points to /etc/alternatives/awk which points to mawk
>>> - /bin/sh  points to dash instead of bash
>>> 
>>> mawk is lacking features of awk (hence the first awk error you saw),
>>> and dash is lacking features of bash (hence the second error messages
>>> you saw).
>>> 
>>> The solution below is probably substandard but it seems to work and
>>> will
>>> allow you to get past the errors. Assuming you are running on a 
>>> laptop
>>> that you can manage at will:
>>> 
>>> - sudo update-alternatives --config awk
>>> 
>>>   This should allow you to select gawk instead of mawk. If you do not
>>>   see gawk listed, do "sudo apt install gawk"
>>> 
>>> - sudo dpkg-reconfigure dash
>>> 
>>>   It will ask if you want dash as default system shell. Tell it "no".
>>>   This last step is considered potentially "dangerous". In
>>>     https://wiki.ubuntu.com/DashAsBinSh
>>>   they are conservative enough and warn there can be a (low) chance
>>>   that some system script relies on some specific feature of dash vs
>>>   bash... If you spot anything weird, revert as needed. Keep a 
>>> healthy
>>>   backup anyway.
>>> 
>>> Cheers,
>>> 
>>> Cesc
>>> 
>>> On Thu, Dec 20 2018, at 15:56 -0300, Jilberto Antonio Zamora Saá 
>>> wrote:
>>>> 
>>>> Dear Cesc
>>>> 
>>>> Yeah, Im using Ubuntu 16.04.
>>>> 
>>>> I got the following outputs
>>>> 
>>>> sirjazs_at_LENOVO:~$  ls -l $(which awk)
>>>> lrwxrwxrwx 1 root root 21 nov 16 11:35 /usr/bin/awk ->
>>>> /etc/alternatives/awk
>>>> sirjazs_at_LENOVO:~$  ls -l /usr/bin/*awk*
>>>> lrwxrwxrwx 1 root root     21 nov 16 11:35 /usr/bin/awk ->
>>>> /etc/alternatives/awk
>>>> -rwxr-xr-x 1 root root 117768 mar 24  2014 /usr/bin/mawk
>>>> lrwxrwxrwx 1 root root     22 nov 16 11:35 /usr/bin/nawk ->
>>>> /etc/alternatives/nawk
>>>> sirjazs_at_LENOVO:~$  ls -l /bin/*awk*
>>>> ls: cannot access '/bin/*awk*': No such file or directory
>>>> 
>>>> I will update my OS to ubuntu 18.04 and see what happend.
>>>> 
>>>> cheers,
>>>> Jilberto
>>>> 
>>>> 
>>>> 
>>>> ---
>>>> *******************************************************************
>>>> Dr. Jilberto Zamora Saa
>>>> Dzhelepov Laboratory of Nuclear Problems
>>>> Joint Institute for Nuclear Research
>>>> 141980 Dubna, Moscow region, Russia
>>>> phone: +(496)2162589 (Office)
>>>> phone: +7(915)4671294 (Mobile)
>>>> email: jzamorasaa_at_jinr.ru
>>>> 
>>>> ********************************************************************
>>>> 
>>>> El 20-12-2018 3:47 pm, Francesc Salvat-Pujol escribió:
>>>>> Hey Jilberto,
>>>>> 
>>>>> It could be that your linux distribution is using some interesting
>>>>> flavor of awk. Just for curiosity: are you running Ubuntu? If
>>>>> so, which
>>>>> version? Could you paste the output of
>>>>> 
>>>>> ls -l $(which awk)
>>>>> ls -l /usr/bin/*awk*
>>>>> ls -l /bin/*awk*
>>>>> 
>>>>> Are you using the latest FLUKA tarball (i.e. downloaded after Nov 
>>>>> 22
>>>>> 2018 from the FLUKA website)? If not, update. In the 
>>>>> not-too-distant
>>>>> past we spotted a similar situation and we protected the scripts
>>>>> accordingly. Should the problem persist, let us know (and if you 
>>>>> are
>>>>> linking the gfortran version of FLUKA paste also the output of
>>>>> "gfortran --version").
>>>>> 
>>>>> Season greetings,
>>>>> 
>>>>> Cesc
>>>>> 
>>>>> On Thu, Dec 20 2018, at 13:55 -0300, Jilberto Antonio Zamora Saá
>>>>> wrote:
>>>>>> 
>>>>>> Dear Francesc
>>>>>> 
>>>>>> I have tried to run examples that I found in previous fluka 
>>>>>> courses,
>>>>>> however when I tryed to compile the source I got the following
>>>>>> message:
>>>>>> 
>>>>>> sirjazs_at_LENOVO:~/fluka-work/Beam-Test/ex08$ $FLUPRO/flutil/fff
>>>>>> source.f
>>>>>> awk: line 0: regular expression compile failed (missing '(')
>>>>>> )
>>>>>> /home/sirjazs/FLUKA/flutil/fff: 105: [: -le: unexpected operator
>>>>>> /home/sirjazs/FLUKA/flutil/fff: 119: 
>>>>>> /home/sirjazs/FLUKA/flutil/fff:
>>>>>> [[: not found
>>>>>> sirjazs_at_LENOVO:~/fluka-work/Beam-Test/ex08$
>>>>>> 
>>>>>> 
>>>>>> the files that I'm using are attached :-)
>>>>>> 
>>>>>> 
>>>>>> Do you have any idea about what it is happening?
>>>>>> 
>>>>>> 
>>>>>> saludos,
>>>>>> Jilberto
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ---
>>>>>> *******************************************************************
>>>>>> Dr. Jilberto Zamora Saa
>>>>>> Dzhelepov Laboratory of Nuclear Problems
>>>>>> Joint Institute for Nuclear Research
>>>>>> 141980 Dubna, Moscow region, Russia
>>>>>> phone: +(496)2162589 (Office)
>>>>>> phone: +7(915)4671294 (Mobile)
>>>>>> email: jzamorasaa_at_jinr.ru
>>>>>> 
>>>>>> ********************************************************************
>>>>>> 
>>>>>> El 09-11-2018 5:48 pm, Francesc Salvat-Pujol escribió:
>>>>>>> Hola Jilberto,
>>>>>>> 
>>>>>>> For inspiration you may first want to examine a slightly simpler 
>>>>>>> 1D
>>>>>>> case
>>>>>>> (sampling from a tabulated energy spectrum), as shown e.g. in
>>>>>>> 
>>>>>>> http://www.fluka.org/web_archive/earchive/new-fluka-discuss/6798.html
>>>>>>> 
>>>>>>> which contains an example spectrum and a custom source.f
>>>>>>> routine that
>>>>>>> samples from it. Note also the modification of the input file
>>>>>>> mentioned
>>>>>>> in the link. If you make a diff (or e.g. vim -d) with the
>>>>>>> distributed
>>>>>>> source.f (under usermvax/ in your FLUKA directory) you will see 
>>>>>>> the
>>>>>>> modifications. In a nutshell, there is:
>>>>>>> 
>>>>>>> - a block that loads a source spectrum from the provided file at
>>>>>>> initialization and prepares a cumulative function for sampling
>>>>>>> later,
>>>>>>> 
>>>>>>> - a block which samples the kinetic energy from the histogram and
>>>>>>> 
>>>>>>> - a block which carefully sets the sampled kinetic energy and
>>>>>>> calculates the modulus of the linear momentum (of course with the
>>>>>>> relativistic expression).
>>>>>>> 
>>>>>>> You then compile your custom source.f
>>>>>>> 
>>>>>>> $FLUPRO/flutil/fff source.f
>>>>>>> 
>>>>>>> If there are no errors, this produces an object file which you 
>>>>>>> then
>>>>>>> bundle into your custom binary.
>>>>>>> 
>>>>>>> $FLUPRO/flutil/lfluka -m fluka -o tuejecutable source.o
>>>>>>> 
>>>>>>> Depending on what you do, link with ldpmqmd (see the
>>>>>>> manual). Run as
>>>>>>> usual, but passing "-e tuejecutable" additionally.
>>>>>>> 
>>>>>>> If I follow you correctly, you need instead to sample from a
>>>>>>> tabulated
>>>>>>> 2D distribution h(E,theta), given in terms of the energy E and a
>>>>>>> (polar?) angle theta. So it's a slight generalization of the
>>>>>>> foregoing.
>>>>>>> Stay alert for the integrals and the sampling of the polar
>>>>>>> angle (see
>>>>>>> below).
>>>>>>> 
>>>>>>> I assume that the theta dependency is not trivial, i.e., that
>>>>>>> you have
>>>>>>> sufficiently different behaviors in theta at different energies
>>>>>>> (otherwise the stuff below can be greatly simplified...).
>>>>>>> 
>>>>>>> Presumably you have h(E,theta) tabulated on a reasonably dense
>>>>>>> grid of
>>>>>>> energies E_i and angles theta_j. On paper, at each tabular
>>>>>>> energy you
>>>>>>> would do an integration on the sphere (azimuthal angle aside), à 
>>>>>>> la
>>>>>>> 
>>>>>>> g(E_i) = \int_0^pi d theta  sin(theta)  h(E_i,theta) ,
>>>>>>> 
>>>>>>> so that g(E) gives you an energy distribution regardless of angle
>>>>>>> (treated below). In practice you evaluate it numerically in as
>>>>>>> reasonable a way as you can, but in any event not forgetting
>>>>>>> about the
>>>>>>> solid-angle element. In the same spirit as in the 1D case
>>>>>>> above, you
>>>>>>> may
>>>>>>> now use the tabulated g(E_i) to generate a cumulative
>>>>>>> distribution for
>>>>>>> the sampling of the kinetic energy.
>>>>>>> 
>>>>>>> Once you have a sampled kinetic energy Esampled, you look for the
>>>>>>> "active" tabular interval verifying E_i <= Esampled <
>>>>>>> E_{i+1}. Use a
>>>>>>> homogeneously distributed random number (search in the manual for
>>>>>>> FLRNDM) to take E_i with probability
>>>>>>> (E_{i+1}-Esampled)/(E_{i+1}-E_i),
>>>>>>> and E_{i+1} otherwise (I do not write down exactly how
>>>>>>> because every
>>>>>>> time I get it wrong, but the idea is along these lines...).
>>>>>>> 
>>>>>>> At each tabular energy E_i, you can keep the cumulative angular
>>>>>>> distribution in memory (do not forget the solid-angle element 
>>>>>>> when
>>>>>>> integrating...) and use it to sample the polar angle in exactly 
>>>>>>> the
>>>>>>> same
>>>>>>> spirit as above. It then remains to sample the azimuthal angle.
>>>>>>> Unless
>>>>>>> you have something else in mind, you can sample e.g.
>>>>>>> homogeneously in
>>>>>>> [0,2pi). With this you have all you need to set the initial
>>>>>>> direction in
>>>>>>> your source.f in terms of the director cosines using the 
>>>>>>> variables
>>>>>>> TXFLK, TYFLK, TZFLK.
>>>>>>> 
>>>>>>>       ===============================================
>>>>>>>       *************** WARNING... ********************
>>>>>>>       ===============================================
>>>>>>> 
>>>>>>> Things can go wrong when setting up schemes like the above
>>>>>>> by hand...
>>>>>>> Debug and test intensively before running any simulation. Make 
>>>>>>> e.g.
>>>>>>> a 2D
>>>>>>> histogram of the sampled energies and angles and convince
>>>>>>> yourself that
>>>>>>> you are indeed sampling what was intended.
>>>>>>> 
>>>>>>> As a final note, I do not know what degrees of freedom you have 
>>>>>>> in
>>>>>>> preparing the input 2D source histogram, but any time
>>>>>>> there's a polar
>>>>>>> angle theta involved, a way to sleep well is to tabulate,
>>>>>>> integrate,
>>>>>>> and
>>>>>>> sample in terms of mu=cos(theta). Doing the change of variables 
>>>>>>> you
>>>>>>> immediately see e.g.
>>>>>>> 
>>>>>>> g(E_i) = \int_{-1}^1  d mu    h(E_i,mu) ,
>>>>>>> 
>>>>>>> that is, the term "sin(theta) d theta" in the solid-angle element
>>>>>>> becomes trivially "d mu" and you can mostly forget about
>>>>>>> faux pas :)
>>>>>>> 
>>>>>>> Hope this is reasonably helpful/accurate!
>>>>>>> 
>>>>>>> Un saludo,
>>>>>>> 
>>>>>>> Cesc
>>>>>>> 
>>>>>>> PS: scoring-wise, there should be nothing special.
>>>>>>> 
>>>>>>> On Fri, Nov 09 2018, at 12:17 -0300, jilberto Zamora Saa wrote:
>>>>>>>> 
>>>>>>>> Dear FLUKA experts,
>>>>>>>> 
>>>>>>>> How I should do in case I want to define my own beam of 
>>>>>>>> particles,
>>>>>>>> let say, I would like to provide a spectrum of muons which 
>>>>>>>> depend
>>>>>>>> on energy and Zenit angle and then use it to see the fluence in 
>>>>>>>> a
>>>>>>>> detector.
>>>>>>>> 
>>>>>>>> any help is welcome
>>>>>>>> 
>>>>>>>> regards,
>>>>>>>> Jilberto
>>>>>>> 
>>>>>>> --
>>>>>>> Francesc Salvat Pujol
>>>>>>> CERN-EN/STI
>>>>>>> CH-1211 Geneva 23
>>>>>>> Switzerland
>>>>>>> Tel: +41 22 76 64011
>>>>>>> Fax: +41 22 76 69474
>>>>> 
>>>>>> * 
>>>>>> ..+....1....+....2....+....3....+....4....+....5....+....6....+....7...
>>>>>> TITLE
>>>>>> FLUKA Course Exercise
>>>>>> *
>>>>>> * use names everywhere and free format for geometry
>>>>>> DEFAULTS
>>>>>> NEW-DEFA
>>>>>> *
>>>>>> * beam definitions
>>>>>> BEAM            -3.5 -0.082425      -1.7       0.0       0.0
>>>>>> 1.0PROTON
>>>>>> BEAMPOS          0.0       0.0      -0.1       0.0       0.0
>>>>>> GEOBEGIN
>>>>>> COMBNAME
>>>>>>  0    0             Cylindrical Target
>>>>>> *
>>>>>> * Bodies
>>>>>> * ------
>>>>>> *
>>>>>> * General definitions:
>>>>>> *  blackhole to include geometry
>>>>>> SPH BLK        0.0 0.0 0.0 10000.0
>>>>>> *  void
>>>>>> RPP VOI        -1000.0 1000.0 -1000.0 1000.0 -1000.0 1000.0
>>>>>> *
>>>>>> * Lead target:
>>>>>> *  cylinder to contain target
>>>>>> ZCC TARG       0.0 0.0 5.0
>>>>>> *  planes limiting the target
>>>>>> XYP ZTlow      0.0
>>>>>> XYP ZThigh     10.0
>>>>>> *  planes segmenting the target
>>>>>> XYP T1seg      1.0
>>>>>> XYP T2seg      2.0
>>>>>> END
>>>>>> *
>>>>>> * Regions
>>>>>> * -------
>>>>>> *
>>>>>> * Blackhole
>>>>>> BLKHOLE      5  +BLK -VOI
>>>>>> *
>>>>>> * Target segment 1
>>>>>> TARGS1       5  +TARG -ZTlow +T1seg
>>>>>> * Target segment 2
>>>>>> TARGS2       5  +TARG -T1seg +T2seg
>>>>>> * Target segment 3
>>>>>> TARGS3       5  +TARG -T2seg +ZThigh
>>>>>> *
>>>>>> * Air around target
>>>>>> INAIR        5  +VOI -( +TARG -ZTlow +ZThigh )
>>>>>> END
>>>>>> GEOEND
>>>>>> #if 0
>>>>>> * 
>>>>>> ..+....1....+....2....+....3....+....4....+....5....+....6....+....7...
>>>>>> * switch on to debug this geometry
>>>>>> GEOEND           6.0       0.0      11.0      -6.0       0.0
>>>>>> -6.0DEBUG
>>>>>> GEOEND         120.0       1.0     170.0
>>>>>> &
>>>>>> #endif
>>>>>> *
>>>>>> * material definitions
>>>>>> MATERIAL                             1.0
>>>>>> WATER
>>>>>> COMPOUND         2.0  HYDROGEN       1.0    OXYGEN
>>>>>> WATER
>>>>>> MATERIAL                        0.001225
>>>>>> AIR
>>>>>> COMPOUND     -0.9256  NITROGEN   -0.2837    OXYGEN  -0.01572
>>>>>> ARGONAIR
>>>>>> ASSIGNMA    BLCKHOLE   BLKHOLE
>>>>>> ASSIGNMA       WATER    TARGS1
>>>>>> ASSIGNMA    ALUMINUM    TARGS2
>>>>>> ASSIGNMA        LEAD    TARGS3
>>>>>> ASSIGNMA         AIR     INAIR
>>>>>> *
>>>>>> * 
>>>>>> ..+....1....+....2....+....3....+....4....+....5....+....6....+....7...
>>>>>> *
>>>>>> * scoring
>>>>>> *
>>>>>> *  target: energy deposition and fluence
>>>>>> USRBIN          11.0    ENERGY     -40.0      10.0       0.0
>>>>>> 15.0TargEne
>>>>>> USRBIN           0.0       0.0      -5.0     100.0       1.0
>>>>>> 200.0&
>>>>>> USRBIN          11.0  HAD-CHAR     -40.0      10.0       0.0
>>>>>> 15.0TargChH
>>>>>> USRBIN           0.0       0.0      -5.0     100.0       1.0
>>>>>> 200.0&
>>>>>> USRBIN          11.0   NEUTRON     -40.0      10.0       0.0
>>>>>> 15.0TargN
>>>>>> USRBIN           0.0       0.0      -5.0     100.0       1.0
>>>>>> 200.0&
>>>>>> *
>>>>>> *  charged hadron fluence at boundaries between target segments
>>>>>> USRBDX          99.0  HAD-CHAR     -50.0    TARGS1    TARGS2
>>>>>> 78.5398Sp1ChH
>>>>>> USRBDX          10.0     0.001      40.0
>>>>>> &
>>>>>> USRBDX          99.0  HAD-CHAR     -50.0    TARGS2    TARGS3
>>>>>> 78.5398Sp2ChH
>>>>>> USRBDX          10.0     0.001      40.0
>>>>>> &
>>>>>> *  charged hadron fluence exiting lead target
>>>>>> USRBDX          99.0  HAD-CHAR     -50.0    TARGS3     INAIR
>>>>>> 329.87Sp3ChH
>>>>>> USRBDX          10.0     0.001      40.0
>>>>>> &
>>>>>> *  double-differential charged hadron fluence entering lead target
>>>>>> USRBDX          99.0  HAD-CHAR     -54.0    TARGS2    TARGS3
>>>>>> 78.5398Sp2ChHA
>>>>>> USRBDX          10.0     0.001      40.0
>>>>>> 3.0&
>>>>>> *  charged hadron fluence in lead target
>>>>>> USRTRACK        -1.0  HAD-CHAR     -55.0    TARGS3    628.31
>>>>>> 40.0TrChH
>>>>>> USRTRACK        10.0     0.001
>>>>>> &
>>>>>> *
>>>>>> *  charged pion angular distribution exiting lead target
>>>>>> USRYIELD       124.0   PIONS+-     -57.0    TARGS3     INAIR
>>>>>> 1.0YieAng
>>>>>> USRYIELD       180.0       0.0      18.0      10.0       0.0
>>>>>> 3.0&
>>>>>> *
>>>>>> *  residual nuclei in lead target
>>>>>> RESNUCLE         3.0     -60.0                        TARGS3
>>>>>> activ
>>>>>> *
>>>>>> * Exercise: scoring
>>>>>> * -----------------
>>>>>> *
>>>>>> *  electron spectra, see difference between current and fluence
>>>>>> scoring
>>>>>> USRBDX          99.0     E+&E-     -51.0    TARGS2    TARGS3
>>>>>> 78.5398Sp2El
>>>>>> USRBDX          10.0     0.001      40.0
>>>>>> &
>>>>>> USRBDX          -1.0     E+&E-     -52.0    TARGS2    TARGS3
>>>>>> 78.5398Sp2ElC
>>>>>> USRBDX          10.0     0.001      40.0
>>>>>> &
>>>>>> *
>>>>>> *  energy deposition by region, check with values in the output
>>>>>> USRBIN           2.0    ENERGY      41.0    TARGS3
>>>>>> TbyReg
>>>>>> USRBIN        TARGS1                           1.0
>>>>>> &
>>>>>> *
>>>>>> *  energy deposited by electrons only
>>>>>> USRBIN           2.0    ENERGY       42.    TARGS3
>>>>>> TbyRegE
>>>>>> USRBIN        TARGS1                           1.0
>>>>>> &
>>>>>> AUXSCORE      USRBIN  ELECTRON             TbyRegE
>>>>>> RANDOMIZ         1.0
>>>>>> START         1000.0                                     0.0
>>>>>> STOP
>>>>> 
>>>>>> *$ CREATE SOURCE.FOR
>>>>>> *COPY SOURCE
>>>>>> *
>>>>>> *=== source
>>>>>> ===========================================================*
>>>>>> *
>>>>>>    SUBROUTINE SOURCE ( NOMORE )
>>>>>> 
>>>>>>    INCLUDE '(DBLPRC)'
>>>>>>    INCLUDE '(DIMPAR)'
>>>>>>    INCLUDE '(IOUNIT)'
>>>>>> *
>>>>>> *----------------------------------------------------------------------*
>>>>>> *
>>>>>> *
>>>>>> *     Copyright (C) 1990-2006      by    Alfredo Ferrari & Paola
>>>>>> Sala  *
>>>>>> *     All Rights Reserved.
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *     New source for FLUKA9x-FLUKA200x:
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *     Created on 07 january 1990   by    Alfredo Ferrari & Paola
>>>>>> Sala  *
>>>>>> *                                                   Infn - Milan
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *     Last change on 03-mar-06     by    Alfredo Ferrari
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *  This is just an example of a possible user written source
>>>>>> routine.  *
>>>>>> *  note that the beam card still has some meaning - in the scoring
>>>>>> the *
>>>>>> *  maximum momentum used in deciding the binning is taken from the
>>>>>> *
>>>>>> *  beam momentum.  Other beam card parameters are obsolete.
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *----------------------------------------------------------------------*
>>>>>> *
>>>>>>    INCLUDE '(BEAMCM)'
>>>>>>    INCLUDE '(FHEAVY)'
>>>>>>    INCLUDE '(FLKSTK)'
>>>>>>    INCLUDE '(IOIOCM)'
>>>>>>    INCLUDE '(LTCLCM)'
>>>>>>    INCLUDE '(PAPROP)'
>>>>>>    INCLUDE '(SOURCM)'
>>>>>>    INCLUDE '(SUMCOU)'
>>>>>> *
>>>>>>    LOGICAL LFIRST
>>>>>> *
>>>>>> c   defining and saving spectrum arrays
>>>>>>    DIMENSION ENEPOI(0:1000),ENEPRO(0:1000),ENECUM(0:1000)
>>>>>>    SAVE ENEPOI, ENEPRO, ENECUM
>>>>>> c   saving spectrum dimension
>>>>>>    SAVE IMAX
>>>>>> *
>>>>>>    SAVE LFIRST
>>>>>>    DATA LFIRST / .TRUE. /
>>>>>> *======================================================================*
>>>>>> *
>>>>>> *
>>>>>> *                 BASIC VERSION
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *======================================================================*
>>>>>>    NOMORE = 0
>>>>>> *  
>>>>>> +-------------------------------------------------------------------*
>>>>>> *  |  First call initializations:
>>>>>>    IF ( LFIRST ) THEN
>>>>>> *  |  *** The following 3 cards are mandatory ***
>>>>>>       TKESUM = ZERZER
>>>>>>       LFIRST = .FALSE.
>>>>>>       LUSSRC = .TRUE.
>>>>>> *  |  *** User initialization ***
>>>>>>    END IF
>>>>>> *  |
>>>>>> *  
>>>>>> +-------------------------------------------------------------------*
>>>>>> *  Push one source particle to the stack. Note that you could
>>>>>> as well
>>>>>> *  push many but this way we reserve a maximum amount of space
>>>>>> in the
>>>>>> *  stack for the secondaries to be generated
>>>>>> * Npflka is the stack counter: of course any time source is
>>>>>> called it
>>>>>> * must be =0
>>>>>>    NPFLKA = NPFLKA + 1
>>>>>> * Wt is the weight of the particle
>>>>>>    WTFLK  (NPFLKA) = ONEONE
>>>>>>    WEIPRI = WEIPRI + WTFLK (NPFLKA)
>>>>>> * Particle type (1=proton.....). Ijbeam is the type set by the 
>>>>>> BEAM
>>>>>> * card
>>>>>> *  
>>>>>> +-------------------------------------------------------------------*
>>>>>> *  |  (Radioactive) isotope:
>>>>>>    IF ( IJBEAM .EQ. -2 .AND. LRDBEA ) THEN
>>>>>>       IARES  = IPROA
>>>>>>       IZRES  = IPROZ
>>>>>>       IISRES = IPROM
>>>>>>       CALL STISBM ( IARES, IZRES, IISRES )
>>>>>>       IJHION = IPROZ  * 1000 + IPROA
>>>>>>       IJHION = IJHION * 100 + KXHEAV
>>>>>>       IONID  = IJHION
>>>>>>       CALL DCDION ( IONID )
>>>>>>       CALL SETION ( IONID )
>>>>>> *  |
>>>>>> *  
>>>>>> +-------------------------------------------------------------------*
>>>>>> *  |  Heavy ion:
>>>>>>    ELSE IF ( IJBEAM .EQ. -2 ) THEN
>>>>>>       IJHION = IPROZ  * 1000 + IPROA
>>>>>>       IJHION = IJHION * 100 + KXHEAV
>>>>>>       IONID  = IJHION
>>>>>>       CALL DCDION ( IONID )
>>>>>>       CALL SETION ( IONID )
>>>>>>       ILOFLK (NPFLKA) = IJHION
>>>>>> *  |  Flag this is prompt radiation
>>>>>>       LRADDC (NPFLKA) = .FALSE.
>>>>>> *  |
>>>>>> *  
>>>>>> +-------------------------------------------------------------------*
>>>>>> *  |  Normal hadron:
>>>>>>    ELSE
>>>>>>       IONID = IJBEAM
>>>>>>       ILOFLK (NPFLKA) = IJBEAM
>>>>>> *  |  Flag this is prompt radiation
>>>>>>       LRADDC (NPFLKA) = .FALSE.
>>>>>>    END IF
>>>>>> *  |
>>>>>> *  
>>>>>> +-------------------------------------------------------------------*
>>>>>> * From this point .....
>>>>>> * Particle generation (1 for primaries)
>>>>>>    LOFLK  (NPFLKA) = 1
>>>>>> * User dependent flag:
>>>>>>    LOUSE  (NPFLKA) = 0
>>>>>> * User dependent spare variables:
>>>>>>    DO 100 ISPR = 1, MKBMX1
>>>>>>       SPAREK (ISPR,NPFLKA) = ZERZER
>>>>>> 100  CONTINUE
>>>>>> * User dependent spare flags:
>>>>>>    DO 200 ISPR = 1, MKBMX2
>>>>>>       ISPARK (ISPR,NPFLKA) = 0
>>>>>> 200  CONTINUE
>>>>>> * Save the track number of the stack particle:
>>>>>>    ISPARK (MKBMX2,NPFLKA) = NPFLKA
>>>>>>    NPARMA = NPARMA + 1
>>>>>>    NUMPAR (NPFLKA) = NPARMA
>>>>>>    NEVENT (NPFLKA) = 0
>>>>>>    DFNEAR (NPFLKA) = +ZERZER
>>>>>> * ... to this point: don't change anything
>>>>>> * Particle age (s)
>>>>>>    AGESTK (NPFLKA) = +ZERZER
>>>>>>    AKNSHR (NPFLKA) = -TWOTWO
>>>>>> * Group number for "low" energy neutrons, set to 0 anyway
>>>>>>    IGROUP (NPFLKA) = 0
>>>>>> c   sampling uniformly between 30 and 70 MeV
>>>>>>    XYZ=FLRNDM(XYZ)
>>>>>>    ESAMPLE=3D-2+XYZ*(4D-2)
>>>>>> * Kinetic energy of the particle (GeV)
>>>>>>    TKEFLK (NPFLKA) = ESAMPLE
>>>>>> * Particle momentum
>>>>>>    PMOFLK (NPFLKA) = SQRT ( TKEFLK (NPFLKA) * ( TKEFLK (NPFLKA)
>>>>>>   &                       + TWOTWO * AM (IONID) ) )
>>>>>> * Cosines (tx,ty,tz)
>>>>>>    TXFLK  (NPFLKA) = UBEAM
>>>>>>    TYFLK  (NPFLKA) = VBEAM
>>>>>>    TZFLK  (NPFLKA) = WBEAM
>>>>>> *     TZFLK  (NPFLKA) = SQRT ( ONEONE - TXFLK (NPFLKA)**2
>>>>>> *    &                       - TYFLK (NPFLKA)**2 )
>>>>>> * Polarization cosines:
>>>>>>    TXPOL  (NPFLKA) = -TWOTWO
>>>>>>    TYPOL  (NPFLKA) = +ZERZER
>>>>>>    TZPOL  (NPFLKA) = +ZERZER
>>>>>> * Particle coordinates
>>>>>>    XFLK   (NPFLKA) = XBEAM
>>>>>>    YFLK   (NPFLKA) = YBEAM
>>>>>>    ZFLK   (NPFLKA) = ZBEAM
>>>>>> *  Calculate the total kinetic energy of the primaries: don't 
>>>>>> change
>>>>>>    IF ( ILOFLK (NPFLKA) .EQ. -2 .OR. ILOFLK (NPFLKA) .GT. 100000 )
>>>>>>   &   THEN
>>>>>>       TKESUM = TKESUM + TKEFLK (NPFLKA) * WTFLK (NPFLKA)
>>>>>>    ELSE IF ( ILOFLK (NPFLKA) .NE. 0 ) THEN
>>>>>>       TKESUM = TKESUM + ( TKEFLK (NPFLKA) + AMDISC
>>>>>> (ILOFLK(NPFLKA)) )
>>>>>>   &          * WTFLK (NPFLKA)
>>>>>>    ELSE
>>>>>>       TKESUM = TKESUM + TKEFLK (NPFLKA) * WTFLK (NPFLKA)
>>>>>>    END IF
>>>>>>    RADDLY (NPFLKA) = ZERZER
>>>>>> *  Here we ask for the region number of the hitting point.
>>>>>> *     NREG (NPFLKA) = ...
>>>>>> *  The following line makes the starting region search much more
>>>>>> *  robust if particles are starting very close to a boundary:
>>>>>>    CALL GEOCRS ( TXFLK (NPFLKA), TYFLK (NPFLKA), TZFLK (NPFLKA) )
>>>>>>    CALL GEOREG ( XFLK  (NPFLKA), YFLK  (NPFLKA), ZFLK  (NPFLKA),
>>>>>>   &              NRGFLK(NPFLKA), IDISC )
>>>>>> *  Do not change these cards:
>>>>>>    CALL GEOHSM ( NHSPNT (NPFLKA), 1, -11, MLATTC )
>>>>>>    NLATTC (NPFLKA) = MLATTC
>>>>>>    CMPATH (NPFLKA) = ZERZER
>>>>>>    CALL SOEVSV
>>>>>>    RETURN
>>>>>> *=== End of subroutine Source
>>>>>> =========================================*
>>>>>>    END
>>>>> 
>>>>> 
>>>>> --
>>>>> Francesc Salvat Pujol
>>>>> CERN-EN/STI
>>>>> CH-1211 Geneva 23
>>>>> Switzerland
>>>>> Tel: +41 22 76 64011
>>>>> Fax: +41 22 76 69474
>>>> 
>>>> __________________________________________________________________________
>>>> You can manage unsubscription from this mailing list at
>>>> https://www.fluka.org/fluka.php?id=acc_info
>>>> 
>>> 
>>> --
>>> Francesc Salvat Pujol
>>> CERN-EN/STI
>>> CH-1211 Geneva 23
>>> Switzerland
>>> Tel: +41 22 76 64011
>>> Fax: +41 22 76 69474
>>> 
>>> __________________________________________________________________________
>>> You can manage unsubscription from this mailing list at
>>> https://www.fluka.org/fluka.php?id=acc_info
>> 
>> __________________________________________________________________________
>> You can manage unsubscription from this mailing list at 
>> https://www.fluka.org/fluka.php?id=acc_info
>> 
> 
> --
> Francesc Salvat Pujol
> CERN-EN/STI
> CH-1211 Geneva 23
> Switzerland
> Tel: +41 22 76 64011
> Fax: +41 22 76 69474
> 
> __________________________________________________________________________
> You can manage unsubscription from this mailing list at
> https://www.fluka.org/fluka.php?id=acc_info




__________________________________________________________________________
You can manage unsubscription from this mailing list at https://www.fluka.org/fluka.php?id=acc_info

Received on Thu Jan 03 2019 - 22:28:26 CET

This archive was generated by hypermail 2.3.0 : Thu Jan 03 2019 - 22:28:32 CET