Simulating "dynamic" geometry in FLUKA

Dear FLUKA experts,

I have a query regarding the simulation of “dynamic” geometry in FLUKA, i.e., geometry that moves during the simulation. I explain further here:

As I am still in the early stages of learning FLUKA for my dissertation, I want to explore whether my goal is feasible. I aim to simulate a SPECT/CT facility for radiation protection purposes. The challenge with this setup is the presence of moving parts during exposure, specifically:

  1. The X-ray tube of the CT component.
  2. The patient, who is first scanned and centred in the SPECT component, then moved to the CT component, where they are in motion in order to capture 3D data.

I assume that implementing dynamic motion within FLUKA is not possible, and if it is, it would be complex, especially for a FLUKA novice like myself. However, could a reasonable workaround be to simulate the geometry multiple times, adjusting it incrementally (e.g., rotating the X-ray tube by 10° for each run)?

If this approach works, how would I go about accumulating the results (including statistical uncertainty) from each simulation? For instance, if my final goal is to present a 2D plot of ambient equivalent dose rate, how could I combine the results from each step into one coherent plot?

Many thanks, and I greatly appreciate any comments on the matter.

Best regards,
Samuel

1 Like

Dear @samuel_grima, thanks for an interesting question

As you mentioned, it’s much easier to implement the source movement and score results for different time spans.

Here is the recipe with multiple ingredients:

  1. Source:

    • You can utilize source_newgen.f subroutine, where via SOURCE card you will pass parameters that will define your time function
    • Depending on time parameters you will modify impact angles and position
    • Don’t forget to set * particle_age = ... that will specify time when particle should start
  2. Scoring:

    • Define your USRBINs as usual x number of time steps
    • Via TCQUENCH cards you will set timestamps to which USRBINs will score cumulatively
    • The final part is to analyze data via usbscw program which allows to define weights for merging USRBINs. Data scoring for USRBINs in the time range T2 to T3 will be merging of USRBIN_T23 with USRBIN_T12 with weights 1 and -1 which will effectively will produce a new USRBIN (USRBIN_T23-USRBIN_T12)

I hope it’s clear what to do,

Volodymyr

2 Likes

Dear Volodymyr,

Thank you for your prompt and helpful response. You have explained the steps very clearly, although I must admit that, as a beginner with FLUKA, I still find it a bit challenging to fully grasp the procedure. That said, I understand that the second option (cumulative scoring) is possible. I do have a few follow-up questions:

  1. Can the process you described be done entirely within Flair, or is terminal input also required? I have more experience working with Flair (though still at a beginner level) and less familiarity with using FLUKA through raw file inputs. If terminal input is necessary, I will need to spend more time learning that aspect.
  2. You mentioned that the source can be moved to different positions at some time intervals. Could this also apply to the geometry? For instance, when setting up the CT scanner part of the geometry, the tube geometry, along with its shielding and other components, needs to rotate as well. Is this possible?

I do not expect to fully understand everything right away, as I am still learning, as I have explained. However, by time I will become more fluent in the code and hopefully manage to implement everything by the submission deadline of the project (next September).

Thank you once again for your time and guidance — I truly appreciate it!

Best regards,
Samuel

Dear @samuel_grima,

In this case, you should focus only on scoring analysis. The first step is not possible only in Flair and requires some subroutine editing.

As you mentioned before, you could simulate your setup with different positions of the source and adjust geometry multiple times (Geometry rotation and Source definitions).

After this, you will have individual USRBINs which you can merge, if you need a cumulative result, merging via flair or directly via usbsuw program

Volodymyr

1 Like

Dear @vorodin,

Thank you once again for your response.

I believe I now have a clearer understanding of what can be achieved and what might not be feasible.

My ultimate goal is to generate a 2D plot of the ambient equivalent dose rate for the facility with the exposures from all the simulations accumulated. I also plan to obtain point measurements (to plot dose rate against distance in just one direction). I can then compare these with experimental data from physical dosimeters that I plan to perform myself.

If I am still unable to merge the results as you suggested, I will manually extract the point measurement results from the output files after each simulation and sum them together and just present these.

Thank you so much for all your help. Much appreciated!

Kind regards,
Samuel