Last version:
FLUKA 2023.3.4, April 10th 2024
(last respin 2023.3.4)
flair-2.3-0d 13-Sep-2023

News:

-- Fluka Release
( 10.04.2024 )

FLUKA 2023.3.4 has been released.


font_small font_med font_big print_ascii

[ <--- prev -- ]  [ HOME ]  [ -- next ---> ]

[ full index ]


ROT-DEFIni

Defines rotations and translations to be applied to binnings and lattices

See also EVENTBIN, ROTPRBIN, USRBIN, and LATTICE (in Chap. (8))

     WHAT(1) : assigns a transformation index and the corresponding
               rotation axis
              =< 0.0 : the card is ignored if SDUM is empty, otherwise SDUM is
                       kept as the rotation name, and the first free rotation
                       number is used
              > 1000           : interpreted as j + i * 1000
              > 100 and < 1000 : interpreted as i + j * 100
                                 (note the inversion of i and j!)
              > 0 and =< 100   : interpreted as i, and j assumed to be = 0
                       where  i = index of the rotation
                              j = 1 rotation with respect to x axis
                                = 2 rotation with respect to y axis
                                = 0 or 3 rotation with respect to z axis
                              (see Note 4)
               Default = 0.0 (no transformation defined)

     WHAT(2) = Polar angle of the rotation (Theta, 0...180 degrees)
               Default = no default

     WHAT(3) = Azimuthal angle of the rotation (Phi, -180...180 degrees)
               Default = no default

     WHAT(4) = X_offset for the translation
               Default = no default

     WHAT(5) = Y_offset for the translation
               Default = no default

     WHAT(6) = Z_offset for the translation
               Default = no default

     SDUM :    name of the transformation
               Default: a name will provided by the program

     Default (option ROT-DEFIni not given): no transformation is defined

Notes:

  • 1) FLUKA binnings (spatial meshes independent of the problem geometry, designed to score average or event-by-event quantities) are generally defined as Cartesian structures parallel to the coordinate axes, or as cylindrical structures parallel to the z-axis. However, it is possible to define binnings with any arbitrary position and direction in space, by means of transformations described by commands ROT-DEFIni and ROTPRBIN. Command ROT-DEFIni defines rotations/translations to be applied to binnings (requested by the user by means of EVENTBIN or USRBIN). Each transformation defined by ROT-DEFIni is assigned a number WHAT(1) which can be applied to one or more binnings. The correspondence between transformation index and binning number is assigned via option ROTPRBIN.

  • 2) Command ROT-DEFIni can be used also to define roto-translations to be applied to lattice cells. Command LATTICE (see description in Chap. 8, Combinatorial Geometry) sets the correspondence between transformation index and lattice cell.

  • 3) Command ROT-DEFIni can be used also to define roto-translations to be applied to bodies in the geometry, as requested by the $Start_transform....$End_transform directive (see Chap. 8, Combinatorial Geometry).

  • 4) The transformation matrices are: (cth = cos(Theta), sth = sin(Theta), cph = cos(Phi), sph = sin(Phi))

              j = 1 :
              | X_new |   |  cth  sth   0  | |   1   0     0  | | X_old+X_offset |
              | Y_new | = | -sth  cth   0  | |   0  cph   sph | | Y_old+Y_offset |
              | Z_new |   |   0    0    1  | |   0 -sph   cph | | Z_old+Z_offset |

              j = 2 :
              | X_new |   |   1    0    0  | |  cph  0   -sph | | X_old+X_offset |
              | Y_new | = |   0   cth  sth | |   0   1     0  | | Y_old+Y_offset |
              | Z_new |   |   0  -sth  cth | |  sph  0    cph | | Z_old+Z_offset |

              j = 3 :
              | X_new |   |  cth   0  -sth | |  cph  sph   0  | | X_old+X_offset |
              | Y_new | = |   0    1    0  | | -sph  cph   0  | | Y_old+Y_offset |
              | Z_new |   |  sth   0   cth | |   0    0    1  | | Z_old+Z_offset |

              Rij = Tik Pkj
              | X_new |   |  cph cth   sph cth    -sth    | | X_old+X_offset |
              | Y_new | = |   -sph       cph        0     | | Y_old+Y_offset |
              | Z_new |   |  cph sth   sph sth     cth    | | Z_old+Z_offset |

              and the inverse R(^-1)ij = P(^-1)ik T(^-1)kj
              | X_old |   |  cph -sph   0  | |  cth   0   sth | |X_new| |X_offset|
              | Y_old | = |  sph  cph   0  | |   0    1    0  | |Y_new|-|Y_offset|
              | Z_old |   |   0    0    1  | | -sth   0   cth | |Z_new| |Z_offset|

              | X_old |   |  cph cth    -sph     cph sth  | | X_new | | X_offset |
              | Y_old | = |  sph cth     cph     sph sth  | | Y_new |-| Y_offset |
              | Z_old |   |   -sth        0        cth    | | Z_new | | Z_offset |

For example: (assume zero offset and [x,y,z] = old frame, [x',y',z'] = new frame)

Theta = pi/2, Phi = 0 :

              j = 1:  x' =  y      j = 2:  x' =  x      j = 3:  x' = -z
                      y' = -x              y' =  z              y' =  y
                      z' =  z              z' = -y              z' =  x

Theta = 0, Phi = pi/2:

              j = 1:  x' =  x      j = 2:  x' = -z      j = 3:  x' =  y
                      y' =  z              y' =  y              y' = -x
                      z' = -y              z' =  x              z' =  z

That is, the vector which has position angles Theta and Phi with respect to the j_th axis in the original system, will become the j_th axis in the rotated system. For the special case Theta=0 this implies a rotation of Phi in the original frame. In practice it is more convenient to think about the inverse rotation, the one which takes the j_th versor into the versor with Theta and Phi

  • 5) Note that a transformation can be defined recursively, for example with two cards pointing to the same transformation. If Pij is the rotation corresponding to the first card and Tij the one corresponding to the second card, the overall rotation will be Rij = Tik Pkj

Example (number based):

 *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 ROT-DEFI       201.0       0.0      90.0    -100.0      80.0    -500.0
 USRBIN          11.0     201.0      70.0      30.0       0.0    1000.0tot-dose
 USRBIN           0.0       0.0       0.0      10.0       1.0       6.0&
 ROTPRBIN        -1.0       1.0       0.0       1.0       1.0       1.0
 *  Here the transformation is applied to a cylindrical binning.
 *  Track-lengths are scored in the binning with its axis
 *  parallel to the x-axis of the coordinate frame:
 *    Xmin = 100.0, Xmax = 1100.0
 *    Rmin =   0.0, Rmax =   30.0
 *    ( Y , Z ) coordinate of the binning axis = ( -80.0 , 500.0 )

The same example, name based:

 *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 ROT-DEFI       201.0       0.0      90.0    -100.0      80.0    -500. FromZtoX
 USRBIN          11.0     201.0      70.0      30.0       0.0    1000.0tot-dose
 USRBIN           0.0       0.0       0.0      10.0       1.0       6.0&
 ROTPRBIN        -1.0  FromZtoX       0.0  tot-dose       0.0       0.0

© FLUKA Team 2000–2024

Informativa cookies