CERN homepage INFN homepage
FLUKA: 8.6} Region data Previous Index Next

8.6} Region data


 The various regions are described in terms of differences, intersections
 and unions of bodies. As in the case of body description, the user has the
 choice between free format and two kinds of fixed format. One of the latter
 is the traditional format used by the original Combinatorial Geometry as
 implemented for example in MORSE. The other fixed format is similar to it, but
 has been extended to allow body numbers larger than 10000. Both fixed
 formats are now superseded by the more convenient free region input format,
 recently introduced. Free format is based on body mnemonic "names" instead
 of sequential numerical identifiers and allows the use of parentheses to
 perform more complex boolean operations. However, the two fixed formats are
 still available for back compatibility reasons.
 With any input format, a line having an asterisk (*) in column 1 is
 treated as a comment card.

                        FIXED FORMAT REGION INPUT
                        -------------------------
 Each region is described as a combination of one or more bodies, by means
 of the three operator symbols:
                              -,   +,   OR
 referring respectively to the boolean operations of subtraction (or
 complement), intersection and union.

 Each body is referred to by its sequential number in the body description
 table (see above the description of fixed format body input).
 Input for each region extends on one or more cards, in a format which
 depends on the value of IDBG on the Geometry Title card (see above).
 If IDBG = 0, 10 or -10, region input format is (2X,A3,I5,9(A2,I5));
 if IDBG = 100 or -100, region input format is (2X,A3,I5,7(A2,I7));
  * where the 3 characters in columns 3-5 are:
    - on the first input card of a given region, an arbitrary non-blank
      string chosen by the user (it can be used, together with optional
      comment cards, to help identifying  the region or the region
      material).
      Note that regions are identified in the code by an integer number
      corresponding to the order of their input definition: therefore it
      can be useful (but not mandatory) to have that number appearing in
      the string. For instance, if the 5th region is air, it could be
      labelled AI5.
    - on all continuation cards, columns 3-5 must be blank.
  * the integer in columns 6-10 (variable NAZ) is the number of regions which
    can be entered by a particle leaving any of the bodies defined for the
    region being described (leave blank in continuation cards). The NAZ
    number is used to allocate memory for this so-called "contiguity list",
    and it is not essential that it be exact (if left blank, it is set to 5).
    Any number is accepted, but if the final sum of these integers is close to
    the actual sum, tracking speed can be slightly improved.
  * in columns 11-73, alternate as many 2-character fields ('OR' or
    blank) and integer fields (body numbers preceded by + or - sign),
    as are needed to complete the description of that region (see below
    for an explanation of symbol meaning). If one card is not sufficient,
    any number of continuation cards can be added (identified by a
    blank field in column 3-5).

 After the last region description, end with a card having the code END
 in columns 3-5.

 - If a body number appears in a zone description preceded by a +
   operator, it means that the zone being described is wholly contained
   inside the body (boolean intersection).
 - If a body number appears in a zone description preceded by a -
   operator, it means that the zone being described is wholly outside
   the body (boolean complement).

 Obviously, in the description of each region the symbol + must appear at
 least once. Examples:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
BA1 4 +7 +3
* (the above zone is the part of space common to body 7 and 3)
MU2 7 +3 -4 -7 +20
* (the above zone is the part of space common to body 3 and 20,
* excluding however that which is inside body 4 and that which is
* inside 7)
AIR 5 +19
* (the latter zone coincides entirely with body 19)
- In some instances a region may be described in terms of subregions (or "zones") lumped together. The OR operator is used as a boolean union operator in order to combine subregions (partially overlapping or not). Subregions (also called "zones" in this manual) are formed as intersections or differences as explained above, and then the region is formed by a union of these subregions. When OR operators are used there are always two or more of them, and they refer to all body numbers following them until the next OR or the end of the region description, each body being preceded by its + or - sign. Examples:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
SA7 11OR +4 +6 -7 -8OR +6 +3 -21
* <---- first subregion -----><- second subregion ->
G18 2OR +9OR +15OR +1OR +8 -2OR +8 -3OR +8 +18
* < 1st >< 2nd >< 3rd ><--- 4th ----><--- 5th ----><--- 6th ---->
OR +12 -10 -11 -13 -14
*< blank ><---- 7th and last subregion -----> (continuation line)
Region END card Region data must be terminated by a card with the string END in column 3-5. FREE FORMAT REGION INPUT ------------------------ Each region is described as a combination of one or more bodies, by means of the three operator symbols: -, +, | referring respectively to the boolean operations of subtraction (or complement), intersection and union. Each body is referred to by its "name" (an alphanumeric string of up to 8 characters, the first character being alphabetical) in the body description table (see above the description of free format body input). Input for each region starts on a new line and extends on as many continuation lines as are needed. It is of the form: REGNAME NAZ boolean zone expression or REGNAME NAZ | boolean zone expression | boolean zone expression | ... where REGNAME, NAZ and the remaining part are separated by one or more blanks. - REGNAME is the region "name" (an arbitrary unique alphanumeric character string chosen by the user). The region name must begin by an alphabetical character and must not be longer than 8 characters. - NAZ is an integer indicating (approximately) the number of regions which can be entered by a particle leaving any of the bodies appearing in the region description that follows. The NAZ number is used to allocate memory for this so-called "contiguity list", and it is not essential that it be exact. Any number is accepted, but if the final sum of these integers is close to the actual sum, tracking speed can be slightly improved. If the input value of NAZ is equal to 0, it is set equal to 5. - "boolean zone expression" is a sequence of one or more body names preceded by the operators + (intersection) or - (complement or subtraction). A zone expression can be contained inside one or more sets of left and right parentheses. Several zone expressions can be combined by the union operator | (corresponding to OR in fixed format input). When | operators are used there are always two or more of them, and they refer to all bodies following them until the next | or the end of the region description, each body being preceded by its + or - sign. In evaluating the expressions, the highest operator precedence is given to parentheses (the most inner ones first), followed by the | operator. In each zone expression, at least one body name preceded by + must be present. If one line is not sufficient, any number of continuation lines can be added. Blanks are ignored. Meaning of the operators: - If a body name is preceded by a + operator in an expression describing a zone (or a zone component surrounded by parentheses) it means that the zone or zone component being described is wholly contained inside the body (boolean intersection). - If a body name is preceded by a - operator in an expression describing a zone (or a zone component surrounded by parentheses) it means that the zone or zone component being described is wholly outside the body (boolean complement). Obviously, in the description of each region the symbol + must appear at least once. The same is true for each zone (subregion delimited by | operators) and for each zone component (subzone delimited by parentheses) Examples of regions consisting of a single zone: lastlayr 4 +bigball +slab * Region "lastlayr" is the part of space common to body "bigball" and body * "slab" MidVacuu 7 +cylind2 -slit -sqrhole +Plane1 * Region "MidVacuu" is the part of space common to bodies "cylind2" and * "Plane1", excluding however that which is inside body "slit" and that which * is inside body "sqrhole" H2Osphere 5 +marble * Region "H2Osphere" coincides entirely with body "marble" Examples of regions consisting of the union of several zones, possibly (but not necessarily) partially overlapping: Corners 6 | +dice +topNorth | +dice +topEast | +dice +topSouth | +dice +topWest | +dice +botNorth | +dice +botEast | +dice +botSouth | +dice +botWest * Region "Corners" is made of the 8 corners of a cube, each of which is * obtained by the intersection of a cubic body "dice" and a tilted plane * described by vector pointing to the centre of the cube twoparts 0 | +leftpart -outerbox | +rghtpart +topplane * Region "twoparts" is the sum of two parts of space: the space points which * are inside body "leftpart" but not inside body "outerbox", plus those which * are common to bodies "rghtpart" and "topplane" Examples of a region defined as a single zone by means of parentheses: AirAroun 5 + tunnel + Column - (+outrpipe-innrpipe) * Region "AirAroun" contains the space points located inside the intersection * of body "tunnel" and body "Column", with the exception of those which are * inside body "outrpipe" but not inside body "innrpipe" CmplexRg | +longcyl + (+shortcyl +vertPla1 -vertPla2) | (+Brick | + ceeling - floor) * Region CmplexRg is the union of two zones. The first zone is the * intersection of body "longcyl" with a portion of space contained inside * both bodies "shortcyl" and "vertPla1" but not inside body "vertPla2". * The second zone is the union of the space points inside body "Brick" * and the space points contained by body "ceeling" but located outside * body "floor". Region END card Region data must be terminated by a line with the string END. Region Volumes -------------- This is an optional set of cards which must be input if (and only if) flag IVLFLG in the CG Title card has been given a value 3. As many volume definition cards must be given as is needed to input a volume for every region. The input variable is an array VLREGS(I) = volume of the Ith region. The format is (7E10.5). Volume data are used by FLUKA only to normalise energy or star densities in regions requested by the SCORE command.

Previous Index Next