McStas logo McStas - A neutron ray-trace simulation package ILL; PSI; ESS Niels Bohr Institute DTU Physics

McStas

About McStas
 Conditions of use
 Authors/Contacts
 Project funding

Download
 Components
 Other Downloads (share)

Mailing list

Search web/mailinglist

Documentation
 Wiki (GitHub)
 McStas manual
 Publications

Links

Report bugs (GitHub)

Code-repository (GitHub)


McStas: MCViNE_SQE

[ Identification | Description | Input parameters | Links ]

The MCViNE_SQE Component

Isotropic S(Q,E) scatterer from an analytic expression or grid, with optional final-energy focusing.

Identification

  • Author: Fahima Islam (McStas port of the MCViNE SQEkernel / SQE_EnergyFocusing_Kernel (+ SQE_fromexpression); MCViNE by J. Y. Y. Lin et al.)
  • Origin: MCViNE, https://github.com/mcvine/mcvine (mccomponents/lib/kernels/sample/SQEkernel.cc, SQE_EnergyFocusing_Kernel.cc)
  • Date: 2026-09-29

Description

Isotropic (powder / liquid) S(|Q|,E). E is sampled uniformly in [Emin, min(Ei,Emax)]
and |Q| uniformly in the kinematically allowed part of [Qmin,Qmax]. S(Q,E) is an
expression in Q [AA^-1] and E [meV], or a grid file in the Isotropic_Sqw format
(first numeric row: q values; second: energy values; then nq rows of nw values),
bilinearly interpolated. For grid data McStas' Isotropic_Sqw already exists; the
new parts are the analytic S(Q,E) and the energy focusing: when dEf>0, E is
restricted so that Ef lies in [Ef-dEf, Ef+dEf] (MCViNE SQE_EnergyFocusing_Kernel).

Functions are given as strings evaluated at run time (MCViNE uses fparser):
+ - * / ^ (or **), % , comparisons, && ||, if(c,a,b), sin cos tan asin acos
atan sinh cosh tanh exp log log10 log2 sqrt abs floor ceil int sign cbrt,
pow atan2 min max hypot fmod, constants pi and e.

Transport (same as MCViNE HomogeneousNeutronScatterer): on the first
passage the neutron is forced to scatter at a uniformly chosen depth, weighted
by path length, attenuation exp(-(mu+sigma)x) and the scattering coefficient;
on exit it is attenuated by exp(-(mu+sigma)L_out). With order>1 further
scatterings are sampled analogically (truncated exponential). With
p_transmit>0 that fraction of events is kept as the attenuated direct beam.
mu(v) = absorption_coefficient*2200/v. Events for which the kernel cannot
scatter (kinematically forbidden) are absorbed.

Geometry: box (xwidth,yheight,zdepth), cylinder (radius,yheight), hollow
cylinder (+thickness) or sphere (radius only). All vectors (Q, targets,
reciprocal vectors, atom positions) are in the component's local frame.

Uses the shared runtime share/mcvine-lib.h/.c.

Example: MCViNE_SQE(SQE="exp(-(E-10)^2/2)*Q^2*exp(-Q^2/4)", Qmin=0, Qmax=10, Emin=-5, Emax=30, sigma_scat=5, sigma_abs=0.5, Vc=50, radius=0.01, yheight=0.05)

Input parameters

Parameters in boldface are required; the others are optional.
NameUnitDescriptionDefault
SQEstrS(Q,E) expression (ignored if SQE_file given)"1"
SQE_filestrS(q,w) grid file (Isotropic_Sqw layout)0
QminAA^-1Lower Q bound0
QmaxAA^-1Upper Q bound10
EminmeVLower energy transfer bound-10
EmaxmeVUpper energy transfer bound10
EfmeVFinal-energy focusing centre (used when dEf>0)0
dEfmeVFinal-energy focusing half range; 0 disables focusing0
absorption_coefficientm^-1Absorption coefficient at 2200 m/s (MCViNE convention; scales as 1/v)0
scattering_coefficientm^-1Scattering coefficient0
sigma_absbarnAlternative: absorption cross section per unit cell at 2200 m/s (used when Vc>0)0
sigma_scatbarnAlternative: scattering cross section per unit cell (used when Vc>0)0
VcAA^3Unit cell volume; when >0, coefficients are computed from sigma_abs, sigma_scat0
radiusmOuter radius of a cylinder (with yheight) or of a sphere (yheight=0)0
xwidthmWidth of a box sample0
yheightmHeight of a box or cylinder sample0
zdepthmDepth of a box sample0
thicknessmWall thickness of a hollow cylinder (0: filled)0
pack1Packing factor (scales absorption and scattering coefficients)1
p_transmit1Monte Carlo fraction of events kept as unscattered transmitted beam (0: always scatter)0
order1Maximum number of scattering events per neutron (1: single scattering)1
AT ( , , ) RELATIVE
ROTATED ( , , ) RELATIVE

Links

  • Source code for MCViNE_SQE.comp.
  • MCViNE documentation: https://mcvine.github.io

[ Identification | Description | Examples | Input parameters | Links ]

Generated on mcstas 3.9.2


Last Modified: Tuesday, 06-Oct-2026 21:19:12 CEST
Search website mailinglist archive GitHub repos