Component Manual for the Neutron Ray-Tracing Package McStas, version 3.8.6

12  The Union framework: sample environments and multiple scattering

The Union framework, contributed by Mads Bertelsen (University of Copenhagen), is a set of components that together allow the description of complex, possibly nested or overlapping, sample environments with multiple scattering, by separating the description of geometry (where matter is) from physical process (what happens to a neutron there). A worked example can be found in the Union_demos category of the example instrument library (see the User Manual, chapter on instrument examples).

A Union simulation is assembled in four steps, each using one or more of the component classes documented in this chapter:

  1. One or more process components (e.g. Incoherent_process, Powder_process, Single_crystal_process) each describe one scattering process.

  2. These are gathered into named materials using Union_make_material, which may combine several processes (e.g. coherent + incoherent scattering) into one material definition.

  3. Geometry components (Union_box, Union_cylinder, Union_sphere, Union_cone, Union_mesh) place volumes of a given material in the instrument, and may be nested or intersected to build up arbitrarily complex sample environments.

  4. A Union_master component, placed after all of the geometries it should simulate, performs the actual ray-tracing (including multiple scattering) through every geometry defined since the previous master (or since Union_init). More than one master may be used in the same instrument to simulate, e.g., a sample and its environment in separate passes.

Additionally, logger and absorption logger components record scattering/absorption event statistics (position, \(Q\), time, …) within a Union geometry for diagnostic or scientific output, and conditional components restrict logging to neutrons meeting a criterion (e.g. reaching a detector).

12.1 Union framework core: initialization, master, and termination
12.2 The Union_init McStas Component
Identification
Description
Input parameters
Links
12.3 The Union_master McStas Component
Identification
Description
Input parameters
Links
12.4 The Union_master_GPU McStas Component
Identification
Description
Input parameters
Links
12.5 The Union_stop McStas Component
Identification
Description
Input parameters
Links
12.6 Union geometry components
12.7 The Union_box McStas Component
Identification
Description
Input parameters
Links
12.8 The Union_cylinder McStas Component
Identification
Description
Input parameters
Links
12.9 The Union_sphere McStas Component
Identification
Description
Input parameters
Links
12.10 The Union_cone McStas Component
Identification
Description
Input parameters
Links
12.11 The Union_mesh McStas Component
Identification
Description
Input parameters
Links
12.12 Union material definition
12.13 The Union_make_material McStas Component
Identification
Description
Input parameters
Links
12.14 Union scattering process components
12.15 The Non_process McStas Component
Identification
Description
Input parameters
Links
12.16 The Incoherent_process McStas Component
Identification
Description
Input parameters
Links
12.17 The IncoherentPhonon_process McStas Component
Identification
Description
Input parameters
Links
12.18 The PhononSimple_process McStas Component
Identification
Description
Input parameters
Links
12.19 The Powder_process McStas Component
Identification
Description
Input parameters
Links
12.20 The Single_crystal_process McStas Component
Identification
Description
Input parameters
Links
12.21 The AF_HB_1D_process McStas Component
Identification
Description
Input parameters
Links
12.22 The Texture_process McStas Component
Identification
Description
Input parameters
Links
12.23 The NCrystal_process McStas Component
Identification
Description
Input parameters
Links
12.24 The Template_process McStas Component
Identification
Description
Input parameters
Links
12.25 The Template_surface McStas Component
Identification
Description
Input parameters
Links
12.26 The Mirror_surface McStas Component
Identification
Description
Input parameters
Links
12.27 Union loggers (event/history recording)
12.28 The Union_logger_1D McStas Component
Identification
Description
Input parameters
Links
12.29 The Union_logger_2DQ McStas Component
Identification
Description
Input parameters
Links
12.30 The Union_logger_2D_kf McStas Component
Identification
Description
Input parameters
Links
12.31 The Union_logger_2D_kf_time McStas Component
Identification
Description
Input parameters
Links
12.32 The Union_logger_2D_space McStas Component
Identification
Description
Input parameters
Links
12.33 The Union_logger_2D_space_time McStas Component
Identification
Description
Input parameters
Links
12.34 The Union_logger_3D_space McStas Component
Identification
Description
Input parameters
Links
12.35 Union absorption loggers
12.36 The Union_abs_logger_1D_space McStas Component
Identification
Description
Input parameters
Links
12.37 The Union_abs_logger_1D_space_event McStas Component
Identification
Description
Input parameters
Links
12.38 The Union_abs_logger_1D_space_tof McStas Component
Identification
Description
Input parameters
Links
12.39 The Union_abs_logger_1D_space_tof_to_lambda McStas Component
Identification
Description
Input parameters
Links
12.40 The Union_abs_logger_1D_time McStas Component
Identification
Description
Input parameters
Links
12.41 The Union_abs_logger_2D_space McStas Component
Identification
Description
Input parameters
Links
12.42 The Union_abs_logger_event McStas Component
Identification
Description
Input parameters
Links
12.43 The Union_abs_logger_nD McStas Component
Identification
Description
Input parameters
Links
12.44 Union conditionals
12.45 The Union_conditional_PSD McStas Component
Identification
Description
Input parameters
Links
12.46 The Union_conditional_standard McStas Component
Identification
Description
Input parameters
Links