mqt.ionshuttler.single_shuttler.scheduling

Module Contents

show_plot = False
save_plot = False
run_folder
create_starting_config(n_of_chains: int, graph: Graph, seed: int | None = None) tuple[dict[int, Edge], int][source]
preprocess(memorygrid: MemoryZone, sequence: list[int]) MemoryZone[source]
create_move_list(memorygrid: MemoryZone, sequence: list[int], max_length: int = 10) list[int][source]

max_length: max length of move_list (if sequence is longer than max_length, only first max_length elements are considered)

create_initial_sequence(distance_map: dict[int, int], filename: Path, compilation: bool) tuple[list[tuple[int, ...]], list[int], DAGDependency | None, DAGDepNode | None][source]
create_circles_for_moves(memorygrid: MemoryZone, move_list: list[int], flat_seq: list[int], gate_execution_finished: bool, new_gate_starting: bool) tuple[dict[int, list[Edge]], bool, int | None][source]
find_movable_circles(memorygrid: MemoryZone, all_circles: dict[int, list[Edge]], move_list: list[int]) list[int][source]
rotate_free_circles(memorygrid: MemoryZone, all_circles: dict[int, list[Edge]], free_circle_seq_idxs: list[int], rotate_entry: bool, chain_to_move_out_of_pz: int | None) None[source]
update_sequence_and_process_gate(memorygrid: MemoryZone, seq_length: int, gate_execution_finished: bool, new_gate_starting: bool, dag_dep: DAGDependency | None, next_node: DAGDepNode | None, timestep: int, seq: list[tuple[int, ...]], flat_seq: list[int], time_in_pz_counter: int, next_gate_is_two_qubit_gate: bool, show_plot: bool) tuple[bool, bool, bool, list[tuple[int, ...]], list[int], int, DAGDependency | None, DAGDepNode | None, bool][source]
check_duplicates(lst: list[int], memorygrid: MemoryZone, parking_idc: Edge, max_number_parking: int) None[source]
run_simulation(memorygrid: MemoryZone, max_timesteps: int, seq: list[tuple[int, ...]], flat_seq: list[int], dag_dep: DAGDependency | None, next_node_initial: DAGDepNode | None, max_length: int) int[source]