Union process: SANS from a 2D S(Qx,Qy) map on a grid (beam along z).
Author: Fahima Islam (McStas port of the MCViNE SANS2D_ongrid_Kernel (mcvine.acc); MCViNE by J. Y. Y. Lin et al.)
Origin: MCViNE, https://github.com/mcvine/acc (acc/kernels/SANS2D_ongrid.py)
Date: 2026-09-29
Qx, Qy are sampled uniformly over the grid range; the neutron gets v_perp -= Q*K2V and vz = sqrt(vi^2 - vx^2 - vy^2) (elastic). The weight is the bilinearly interpolated S(Qx,Qy) (no solid-angle Jacobian, as in mcvine.acc; use scattering_coefficient to set the absolute scale). File layout: first numeric row Qx values (nx, ascending), second row Qy values (ny), then ny rows of nx values (row index = Qy), i.e. the (y,x) image layout used by mcvine.acc.
Union process. Part of the Union components: define this process, collect it into a material with Union_make_material (absorption is set there with my_absorption, the absorption inverse penetration depth at 2200 m/s), assign the material to Union_box/Union_cylinder/Union_sphere/Union_mesh geometries, and add a Union_master after them. Geometry, attenuation and multiple scattering are handled by Union_master; this component provides the MCViNE kernel: the scattering coefficient and the final-state sampling (weight). Orientation: this process is anisotropic; its frame (Q vectors, reciprocal vectors, atom positions) follows the ROTATED placement of this component. The kernel code is shared with the standalone component MCViNE_SANS2D_ongrid (mcvine-lib.c). Uses share/mcvine-lib.h/.c and share/mcvine-union-lib.h/.c; the process type MCViNE is declared in share/union-lib.h and registered with Union_master in share/mcvine-union-lib.h.
Example: MCViNE_SANS2D_ongrid_process(S_QxQy="MCViNE/SANS2D_example.dat", scattering_coefficient=1)
Parameters in boldface are required; the others are optional.
|
Name |
Unit |
Description |
Default |
|
|
|||
|
S_QxQy |
str |
2D grid file (see description) |
0 |
|
scattering_coefficient |
m\(^{-1}\) |
Scattering coefficient (inverse penetration depth for scattering) |
0 |
|
sigma_scat |
barn |
Alternative: scattering cross section per unit cell (used when Vc>0) |
0 |
|
Vc |
Å\(^{3}\) |
Unit cell volume; when >0 the coefficient is sigma_scat/Vc |
0 |
|
packing_factor |
1 |
Packing factor (scales the scattering coefficient) |
1 |
|
interact_fraction |
1 |
Union: fraction of interactions forced to this process (-1: by cross section) |
-1 |
|
init |
string |
Deprecated and unused, accepted like on the other Union components (see Union_init). |
"" |
|
|
|||
|
|
|||
|
|
|||
Component source code found in file MCViNE_SANS2D_ongrid_process.comp.
MCViNE documentation: https://mcvine.github.io