Blawker / UCN-Simulations

Simulations of ultracold neutrons using the particle tracking framework Kassiopeia. Add features to move surfaces and assemblies during a simulation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UCN-Simulations

Simulations of ultracold neutrons (UCN) using Kassiopeia, a particle tracking framework: https://github.com/KATRIN-Experiment/Kassiopeia. Fork of the modified Kassiopeia: https://github.com/Blawker/Kassiopeia.

First project: Beamline

  • Initialize the geometry of a beamline structure for UCN.
  • Adding surface reflection for stainless steel.
  • Generate initial energy spectrum according to TRIGA neutrons distribution[1].
  • Adding slits to simulation the junction between the different part that compose the beamline.
  • Adding binary program to create and add output file into Root's histograms.
  • Adding Shell Script to parallelized simulations[2].

Second project: Moving Mirror

  • Initialize the geometry of a piston structure for UCN.

  • Modify the source code of Kassiopeia to implement :

    • Moving part : surfaces, spaces, assemblies.
    • Interaction of UCN on moving surfaces[3].
  • To create the motion of a part :

    • Enter the line in a config_file.xml to configure the motion :
    <ksmotion_surface_translation name="motion_surface_translation"
      surfaces="world/piston/moving_mirror/#"
      theta="[theta_motion]"
      phi="[phi_motion]"
      value_formula="[equation_motion]"
      value_min="[time_start_motion]"
      value_max="[time_end_motion]"
    />
    • Add the line below in the <ksgeo_space /> structure command to link the motion to the simulation. It is recommanded to place the line in the root of the structure often called space_world.
    <command parent="root_surface_motion" field="add_surface_motion" child="motion_surface_translation"/>
    • Then enter a moving interaction component that has the same motion has the surface. Here is an example of interaction of UCN with stainless steel :
    <ksint_moving_surface_UCN name="int_moving_surface_UCN"
      eta="2.e-4"
      alpha="5.e-6"
      real_optical_potential="2.08e-7"
      correlation_length="20.e-9"
      theta="[theta_motion]"
      phi="[phi_motion]"
      value_formula="[equation_motion]"
      value_min="[time_start_motion]"
      value_max="[time_end_motion]"
    />
    • Add the line below in the <ksgeo_space /> structure command to link the interaction to the surface.
    <geo_surface name="moving_surface_reflection" surfaces="world/piston/moving_mirror/#">
      <command parent="root_surface_interaction" field="set_surface_interaction" child="int_moving_surface_UCN"/>
    </geo_surface>
    • It is recommended to use <define /> input because there could be many components that may have the same motion :
      <!-- Equation of motion is a time-dependent position function -->
    <define name="equation_motion" value="0.05*x"/>
    <define name="time_start_motion" value="0."/> <!-- Time (s) -->
    <define name="time_end_motion" value="10."/> <!-- Time (s) -->
    <define name="theta_motion" value="90."/> <!-- Angle (°) -->
    <define name="phi_motion" value="180."/> <!-- Angle (°) -->
  • A basic simulation configuration can be found in the fork folder called PistonSimulation.xml : https://github.com/Blawker/Kassiopeia/blob/master/Kassiopeia/XML/Examples/PistonSimulation.xml

  • The following file gives an example of configuration with two independent moving part (piston + shutter): https://github.com/Blawker/UCN-Simulations/blob/master/config/Piston/tSPECT_piston_shutter_TRIGA_auto.xml

Bibliography

1 I. Altarev et al. Neutron velocity distribution from a superthermal solid 2H2 ultracold neutron source. The European Physical Journal A, 37: 9-14 July 2008.

2 GNU Parallel, https://www.gnu.org/software/parallel/

3 Z. Bogorad Ultracold Neutron Storage Simulation Using the Kassiopeia Software Package. Massachusetts Institute of Technology 2019, June 2019.

About

Simulations of ultracold neutrons using the particle tracking framework Kassiopeia. Add features to move surfaces and assemblies during a simulation.


Languages

Language:Makefile 41.3%Language:C++ 25.4%Language:C 18.8%Language:CMake 12.2%Language:Shell 2.4%