&modulate_elements
STRING name = NULL;
STRING item = NULL;
STRING type = NULL;
STRING expression = NULL;
STRING filename = NULL;
STRING time_column = NULL;
STRING amplitude_column = NULL;
long refresh_matrix = 0;
long differential = 1;
long multiplicative = 0;
long start_occurence = 0;
long end_occurence = 0;
double s_start = -1;
double s_end = -1;
STRING before = NULL;
STRING after = NULL;
long verbose = 0;
&end
N.B.: This command will produce unpredictable results when used with
error_element, alter_elements, and
load_parameters (except when change_defined_values=1).
It should work properly with link_elements in turn-by-turn mode
when the source element is modulated, but not when the target element
is modulated.
name -- A possibly-wildcard-containing string giving the names of the
elements to modulate. If not specified, then one must specify type.
item -- The name of the parameter to modulate.
type -- A possibly-wildcard-containing string giving the names of element
types to modulate. May be specified with name or by itself.
expression -- RPN expression for the modulation amplitude filename -- Name of SDDS file from which to read modulation data, if
expression is not used.
time_column -- Name of column in filename giving time data for the
modulation table.
amplitude_column -- Name of column in filename giving amplitude data
for the modulation. Together, time_column and amplitude_column define
a function refresh_matrix -- Frequently there is a matrix associated with an element even
if tracking through the element does not use the matrix. In this case, elegant doesn't
normally update the matrix for the element as it modulates the element, since that may involve
a significant time penalty. If this parameter is set to a non-zero value, the matrix will
be updated. For elements that use a matrix for tracking, the matrix is always updated.
differential, multiplicative -- Determine how the amplitude function
differential=1, multiplicative=0:
differential=0, multiplicative=0: differential=1, multiplicative=1:
differential=0, multiplicative=1:
start_occurence, end_occurence -- If nonzero, these give the starting and
ending occurrence numbers of elements that will be modulated. N.B.: if wildcards are used, occurrence
number counting is for each set of identically-named elements separately, rather than for the sequence
of matched elements.
s_start, s_end -- If non-negative, these give the gaving and ending position
limits for the end-of-element locations of elements to be modulated.
after -- The name of an element. If given, the modulation is applied only to elements
that follow the named element in the beamline.
before -- The name of an element. If given, the modulation is applied only to elements
that precede the named element in the beamline.
verbose -- If nonzero, information is printed to the standard output as changes are
made. Use for debugging only, since otherwise it may slow the simulation.