Eventhough there exist a few attempts to write dedicated phase space transformer components, there is an elegant way to put a monochromator into move, by mean of the EXTEND keyword. If you define a SPEED parameter for the instrument, the idea is to change the coordinate system before the monochromator, and restore it afterwards, as follow in the TRACE section:
1DEFINE INSTRUMENT PST(SPEED=200, ...) 2(...) 3TRACE 4(...) 5COMPONENT Mono_PST_on=Arm() 6AT ... 7EXTEND %{ 8 vx = vx + SPEED; // monochromator moves transversaly by SPPED m/s 9%} 10 11COMPONENT Mono=Monochromator(...) 12AT (0,0,0) RELATIVE PREVIOUS 13 14COMPONENT Mono_PST_off=Arm 15AT (0,0,0) RELATIVE PREVIOUS 16EXTEND %{ 17 vz = vz - SPEED; // puts back neutron in static coordinate frame 18%}
This solution does not contain acceleration, but is far enough for most studies, and it is very simple. In the latter example, the instance Mono_PST_on should itself be rotated to reflect according to a Bragg law.