## Breach doc: Graphical User Interfaces (GUIs)

Breach graphical user interface is accessible through the command:

>> Breach(Sys)

assuming that `Sys`

is a Breach system available in the current workspace. It allows to explore
parameter sets, trajectories and properties in an interactive way.

## Importing parameter sets and properties in the GUI

A parameter sets `P`

in the workspace can be made available from the GUI by using the command:

>> Psave(Sys,'P');

Similarly, a property `phi`

in the workspace can be made available from the GUI by using the
command:

>> Propsave(Sys,'phi');

## Systems, parameters and properties files

The upper part of Breach main GUI is as follows.

The top of the window indicates in which folder Breach is operating. In the above case, we are working with the Lorenz system.

### The System panel

This panel contains basic informations on the system and some adjustable options for the numerical solver. DimX is the number of variables and DimP the number of parameters (including initial conditions) of the system. The most important tunable parameters for the numerical solver in this panel are AbsTol and RelTol which are absolute and relative tolerances. Correctly tuning those is crucial to obtain accurate simulations. A discussion on how to do this can be found, e.g., there. A (relatively) general rule is that RelTol should be no larger than 1e-4 and AbsTol should be small with respect to typical values taken by the variables.

Note that options for the solver are set in the **CreateSystem.m**
script and a finer tuning can be achieved by using CVodeSetOptions and
CVodeSetFSAOptions (for sensitivity analysis) functions but make sure
you know what you are doing there.

### The Param. Sets panel

This panels allows to manipulate and save parameter
sets. At the top of it, the path of the file which stores all
parameter sets currently loaded is given. A default name for this file
is `SystemName_param_sets.mat`

.

Here is the purpose of each button (though their function should be relatively obvious from their names):

**New**creates a new default parameter set**Copy**creates a copy of the selected parameter set**Remove**delete the selected parameter set**Save in**save the current parameter set in another file**Save**save all parameter sets in their current state. There is no automatic saving, so don't forget to use this button before closing Breach**Rename**change name of the current parameter set

The (*) before a parameter set indicates that this set contains computed trajectories, which you can explore by clicking on "Explore trajectories". Note that computed trajectories can take a lot of memory.

### The Properties panel

This panels manages set of properties for the system. A default file
named `SystemName_properties.mat`

is loaded when Breach is started and
saves all the properties defined by the user. but other files of
properties can be loaded and saved using through the File menu. Here
are what the buttons good for :

**New**ok, you guessed it.**Del**same here**Edit**allows to modify the parameters bound to the selected property, if it has any**Check**check the property for all parameters defined in the current parameter set. It pops up a dialog box asking for a time span for the trajectory computation, which can be left empty if trajectories were computed beforehand, and a time for the property verification, i.e., from when to evaluate the property for the trajectories

**Note** properties are automatically saved after each modification.

## Modify and plot the current parameter set

The bottom part of the main GUI allows to view and modify the parameter set selected in the "Param. sets" panel. In the following screenshot, we edit the parameter set P1 (see above).

A parameter set is composed of a number of subsets. Here there are 60 of them. Each subset consists in a parameter valuation and a range, making it technically a centered hyperbox. A projection of these hyperboxes can be plotted in the bottom right part of the interface.

### Fixed and uncertain parameters

The "Fixed Parameters" panel lists all parameters of the systems (the DimX first ones being initial conditions). The "Uncertain Parameters" list parameters which can vary in a given range. All parameters which are not present in the "Uncertain Parameter" list have the same value for all subsets of the current parameter set. Parameters can be moved from the "Fixed" list to the "Uncertain" list only if the parameter sets does not have subsets.

### Selecting and modifying subsets

The "Select subset" panel allows to browse subsets by mean of a slider and select/unselect ("Selected" checkbox) the current subset pointed by the slider. Selected subsets can be copied into a new parameter set or removed using the dedicated buttons. Note that the "Select… " menu proposes other options to select/unselect groups of subsets based, e.g., on the property satisfaction of trajectories.

The "Modif current subset" panel allows to change the value and range of the current uncertain parameter of the current subset.

### Refining subsets

Refining a parameter set divides it into subsets. If "Refine all" is checked, all subsets will be refined similarly. Otherwise only the current subset is refined. If "quasi-random" is checked, the textbox should be given a number \(k\) and when the subsets are refined into k subsets uniformly distributed quasi-randomly. Otherwise subsets are refined into regular grid of size \(k\) in every directions. Grids with different sizes in different directions can be obtained by providing a vector. E.g., if =[4 4 10] is entered, the subsets will be refined into regular 3D grids of size 4x4x10.

## Computing and exploring trajectories

When the button `Compute Trajectories`

is used, a dialog box appears requesting a
time span for computing trajectories. The most commonly used format is
`t0:dt:tf`

. E.g., `0:.1:10`

will compute trajectories at times 0,
0.1, 0.2, …, 9.9, 10. When computation is over, a star appears before the name of the
current parameter set in the list of
parameter sets. This means this set has computed trajectories
associated with it. To explore them, click on ```
Explore
trajectories
```

. The GUI for the state-space exploration of
trajectories is presented here.