-
Notifications
You must be signed in to change notification settings - Fork 4
Propagator
Sajid Ali edited this page Oct 19, 2022
·
1 revision
Synergia
can simulate the beam dynamics with full three-dimensional space charge
effect. It implements the split-operator technique for the space charge operators.
The object that employs this split-operator is the Propagator
.
To create a Propagator
we would need to prepare a machine lattice from the
Lattice
object (as shown above), and a Stepper
object to split the lattice and
insert the space charge operator at proper positions.
# prepare the space charge operator
sc_ops = synergia.collective.Space_charge_3d_open_hockney_options(gridx, gridy, gridz)
sc_ops.comm_group_size = 1
# we will use the split operator stepper for the propagator
stepper = synergia.simulation.Split_operator_stepper(sc_ops, num_steps)
# finally we may create the propagator with lattice and stepper
propagator = synergia.simulation.Propagator(lattice, stepper)
With both the Propagator
and Bunch_simulator
objects ready, we may instruct the
propagator to start the propagation,
# a log object for writing out the system messages during simulation
logger = synergia.utils.parallel_utils.Logger(
0, synergia.utils.parallel_utils.LoggerV.INFO_TURN)
# propagate for number of turns
propagator.propagate(simulator, logger, turns)