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

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: Pol_Bfield

[ Identification | Description | Input parameters | Links ]

The Pol_Bfield Component

Magnetic field component.

Identification

  • Site:
  • Author: Erik B Knudsen, Peter Christiansen and Peter Willendrup
  • Origin: RISOE
  • Date: July 2011

Description

Region with a definable magnetic field.

The component is nestable if the concentric flag is set (the default). This means that it requires a
// START MAGNETIC FIELD
COMPONENT msf =
Pol_Bfield(xwidth=0.08, yheight=0.08, zdepth=0.2, Bx=0, By=-0.678332e-4, Bz=0)
AT (0, 0, 0) RELATIVE armMSF

// OTHER COMPONENTS INSIDE THE MAGNETIC FIELD CAN BE PLACED HERE

// STOP MAGNETIC FIELD
COMPONENT msf_stop = Pol_simpleBfield_stop(magnet_comp_stop=msf)
AT (0, 0, 0) RELATIVE armMSF

Note that if you have objects within the magnetic field that extend outside it you may get
wrong results, because propagation within the field will then possibly extend outside, e.g.
when using a tabled field. The evaluated field will then use the nearest defined field point
_also_ outside the defintion area. If these outside-points have a non-zero field precession will
continue - even after the neutron has left the field region.

In between the two component instances the propagation routine
PROP_DT also handles spin propagation.
The current algorithm used for spin propagation is:
SimpleNumMagnetPrecession
in pol-lib.

Example: Pol_Bfield(xwidth=0.1, yheight=0.1, zdepth=0.2, Bx=0, By=1, Bz=0)
Pol_Bfield(xwidth=0.1, yheight=0.1, zdepth=0.2,
filename="bfield.dat", fieldFunction=table_magnetic_field)

The magetic field may be given as any definable c-function with a specific footprint:
int func(double x, double y, double z, double t, double *bx, double *by, double *bz, void *data)
where the magnetic field at coordinates (x,y,z, t) is returned in the variables
pointed to by bx,by, and bz. Additional parameters to be handed to the function
should be handed to the function using the pointer data.

Functions supplied by the system are:
1. const_magnetic_field: Constant field (Bx,By,Bz) within the region
2. rot_magnetic_field: Field is initially (0,By,0) but after a length of zdepth
has rotated to (By,0,0)
3. majorana_magnetic_field: Field is initially (Bx,By,0) liearly transforms to
(-Bx,By,0) after zdepth where By<

Input parameters

Parameters in boldface are required; the others are optional.
NameUnitDescriptionDefault
fieldFunctionpointerFunction describing the magnetic field.const_magnetic_field
field_prmsNULL
xwidthmWidth of opening.0
yheightmHeight of opening.0
zdepthmLength of field.0
radiusmRadius of field if it is cylindrical or spherical.0
BxTParameter used for x composant of field.0
ByTParameter used for y composant of field.0
BzTParameter used for z composant of field.0
filename File where the magnetic field is tabulated."bfield.dat"
geometryNULL
interpol_method When using tabulated field, choice of interpolation method "kdtree" (default) / "regular"NULL
concentric Allow components and/or other fields inside field. Requires a subsequent Pol_simpleBfield_stop component.1
AT ( , , ) RELATIVE
ROTATED ( , , ) RELATIVE

Links


[ Identification | Description | Input parameters | Links ]

Generated on 2024-01-03 11:47:43


Last Modified: Tuesday, 16-Apr-2024 20:05:22 CEST
Search website mailinglist archive GitHub repos