Collimator with Hole Geometry Errors

MultiColl4.flair (46.5 KB)

I am having difficulty with a geometry that seems straightforward.

I have a partial transmission target followed by a collimator with seven hexagonal holes.

I implemented the geometry two different ways:

  1. Defining the holes and using parenthesis to subtract the hole geometry from the collimator region.

Geoviewer shows no errors but when I try to run it I get

*** Too many terms in parenthesis expansion ***

  1. Instead of using parenthesis to subtract the holes, I used multiple overlapping zones to define the spaces between the collimator holes.

Geoviewer shows no errors but when I try to run it I get

Abort called from FLKAG1 reason TOO MANY ERRORS IN GEOMETRY Run stopped!

I cannot locate any geometry errors.

Any help with identifying the problem or a better implementation would be greatly appreciated.

Hi @Dirk.A.Bartkoski your problem was quite tricky.
In your input you have defined some planes with exactly the same parameters, which you later translate into position with a start_transform. However even after the translation some planes are still same.

>w> Warning: Bodies: Fltr_Col [XYP] - Fltr_Co1 [XYP] are touching
>w> Warning: Bodies: cwRT0l1 [PLA] - cwRTm1r1 [PLA] are touching
>w> Warning: Bodies: cwRB0l1 [PLA] - cwRBp1r1 [PLA] are touching
>w> Warning: Bodies: cwLB0l1 [PLA] - cwLBm1r1 [PLA] are touching
>w> Warning: Bodies: cwRT0r1 [PLA] - cwRTp1l1 [PLA] are touching
>w> Warning: Bodies: cwRB0r1 [PLA] - cwRBm1l1 [PLA] are touching
>w> Warning: Bodies: cwLT0r1 [PLA] - cwLTm1l1 [PLA] are touching
>w> Warning: Bodies: cwLB0r1 [PLA] - cwLBp1l1 [PLA] are touching
>w> Warning: Bodies: cwRp1l1 [PLA] - cwRm1l1 [PLA] are touching
>w> Warning: Bodies: cwLp1l1 [PLA] - cwLm1l1 [PLA] are touching
>w> Warning: Bodies: cwRp1r1 [PLA] - cwRm1r1 [PLA] are touching
>w> Warning: Bodies: cwLp1r1 [PLA] - cwLm1r1 [PLA] are touching

(These warnings are from the development flair output, they will be available in the coming release)

For some holes, when you exit from the COLLMATR towards the COLLHOLE you are not using the corresponding plane, and due to precision errors from the start_transform FLUKA is unable to find the proper region leading to an error and a crash.

By replacing in the region expressions the touching planes using only one definition, FLUKA runs a bit more, but still crashes due to precision errors.
Then when I increased the WHAT(2) accuracy parameter in GEOBEGIN to 1e-2 the runs can complete ok.

My guess (I did not check it yet) is that extra precision errors appear from the use of the start_transform. Since you are only use it for a translation I would strongly recommend to use the start_translat instead.

The advantage of the start_translat is that it is applied during initialization in the parameters of the body, while the start_transform is applied during tracking transforming every step, so more prone to errors.

Please find your flair file with the touching/duplicate planes cleanup
MultiColl4_notouching.flair (47.2 KB)

1 Like

Thank you for the response. It would never have occurred to me that coincident planes would be a problem.

I was wondering, based on the 6-fold rotational symmetry of the pattern, would it be better to generate 1/6 of the hole pattern and then use Lattices to replicate the rest of the hole geometry?

Certainly, using the LATTICEs would be easier from the user side to avoid the manual replication of the geometry.
Its hard to tell if it is going to be better from the tracking side, my guess is:

  • precision wise might be the similar. Right now with your start_transform you are implying a particle transformation (the point where you lose precision) to the coordinates of the un-transformed bodies. With LATTICE you will have a similar particle transformation, but to the 1/6 of the geometry.
  • speed wise, it might be slightly slower (probably not even noticeable), because you will have an extra level of search in the geometry.

Only testing it can tell us if it is better

Thanks. I will take this into consideration.