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

C.  Libraries and constants

The McStas Library contains a number of built-in functions and conversion constants which are useful when constructing components. These are stored in the share directory of the MCSTAS library.

Within these functions, the ’Run-time’ part is available for all component/instrument descriptions. The other parts are dynamic, that is they are not pre-loaded, but only imported once when a component requests it using the %include McStas keyword. For instance, within a component C code block, (usually SHARE or DECLARE):

1    %include "read_table-lib"

will include the ’read_table-lib.h’ file, and the ’read_table-lib.c’ (unless the --no-runtime option is used with mcstas). Similarly,

1    %include "read_table-lib.h"

will only include the ’read_table-lib.h’. The library embedding is done only once for all components (like the SHARE section). For an example of implementation, see Res_monitor.

In this Appendix, we present a short list of both each of the library contents and the run-time features.

C.1 Run-time calls and functions (mcstas-r)
C.1.1 Neutron propagation
C.1.2 Coordinate and component variable retrieval
C.1.3 Coordinate transformations
C.1.4 Mathematical routines
C.1.5 Output from detectors
C.1.6 Ray-geometry intersections
C.1.7 Random numbers
C.2 Reading a data file into a vector/matrix (Table input, read_table-lib)
C.3 Monitor_nD Library
C.4 Adaptive importance sampling Library
C.5 Vitess import/export Library
C.6 Constants for unit conversion etc.