Simulator Control


The PyTAS simulator allows several options for controlling the progress of a Tile Assembly Model simulation. Since simulation steps are automatically cached, simulation can be run both in forward and reverse directions. Some of the methods for controlling simulations are described below.

Breakpoints

There are three main types of breakpoints that can be set for a simulation: step, location, or tile type based breakpoints.

Breakpoints can be set and managed through the "Set Breakpoints" window, which can be accessed by selecting the menu option "Control" -> "Set breakpoints...".

Step based

Step based breakpoints can be set so that the simulator will automatically halt on specified simulation steps (when it is running in the forward direction).

Location based

Location based breakpoints can be set so that the simulator will automatically halt when tiles are placed at specified locations.

Tile type based

Tile type based breakpoints can be set so that the simulator will automatically halt when tiles of specified types are placed anywhere in the assembly.

Nondeterminism

Using the "Control" menu in the simulation window, you can control the behavior of the simulator if and when it encounters frontier positions in which more than one tile type can be placed, thus making the system undirected. Such nondeterminism can be ignored, reported, or cause the simulator to pause simulation (if running in fast-forward mode).

Modifying assemblies

The toolbar of the simulation window contains buttons which allow for an assembly to be manipulated in a variety of ways.

Pan/zoom mode

When this mode is selected, left-clicking and dragging allows you to drag the view of the assembly. Right-clicking allows you to zoom in on the location of the click, and holding shift while right-clicking allows you to zoom out.

Select mode

When this mode is selected, left-clicking and dragging allows you to select a rectangular area of the simulation space. Then, you can use the "Disable frontier locations" button to disable any frontier locations contained within the selected rectangle, and deactivated frontier locations will not allow tile attachments. By selecting "Enable frontier locations", you can re-activate any frontier locations within the selected rectangle which have been deactivated. You can also delete tiles either within the selected area or outside of it using the "Delete selected tiles" and "Delete unselected tiles", respectively.

Tile add/remove mode

When this mode is selected, right-clicking over an empty space will allow a tile of a selected type to be manually placed. Right-clicking over an occupied location will allow a tile to be removed.

Draw mode

When this mode is selected, left-clicking and dragging will allow deactivated frontier locations to be manually created, which essentially provide "blocking locations" into which tiles cannot be added and can force assembly growth to only occur in other directions. Right-clicking and dragging will remove deactivated frontier locations, and potentially re-activate frontier locations which were deactivated.