Machine class

class Machine(config)

FLAME Machine class for Python API.

Parameter:

config: dict, list of tuples, or byte buffer

Input lattice data.
conf(index=None)

Check configuration of the Machine object.

Parameter:

index: int (optional)

Index of the lattice element.
Returns:

dict

Configuration of the lattice element

Note

In the case of index is None, conf() returns initial configuration of the lattice.

allocState(config=None)

Allocate the beam state object.

Parameter:

config : dict

Input lattice data. Empty dict is required as dummy data.
Returns:

State object

Beam state object (see here)

propagate(state, start=0, max=INT_MAX, observe=None)

Run envelope tracking simulation.

Parameters:

state: State object

Allocated beam state object

start: int (optional)

Index of the starting lattice element.

max: int (optional)

Number of elements to advance. Negative value works as backward propagation. (E.g. start = 5 and max = 10 mean propagate from 5th element to 14th element.)

observe: list of int (optional)

List of indexes for observing the beam state.
Returns:

list

List of the beam states at observe points. Each tuple has (index, State).

reconfigure(index, config)

Reconfigure the lattice element configuration.

Parameters:

index: int

Index of the lattice element.

config: dict

New configuration of the lattice element parameter.
find(name=None, type=None)

Find the indexes of the lattice elements by name or type.

Parameter:

name: str or unicode

Name of the lattice element to find.

type: str or unicode

Type of the lattice element to find.
Returns:

list

List of matched element indexes.