# Working with blocks in simulations¶

CertSAFE automatically assigns each array-typed variable in an instance hierarchy a list of sliders that can be used to view the values of that variable in a simulation. Viewing the simulated values of an array-typed variable requires moving the sliders to the indices for the desired array slot, which slices the view of the array to the chosen position.

The number of sliders assigned to a variable is equal to the number of array dimensions in that variable’s instantiated type. For example, an array with one dimension gets one slider, an array with two dimensions gets two sliders, etc. (A scalar variable, having no array dimensions, gets zero sliders.) In a simulatable model, each slider appears at most once in the list of sliders assigned to a particular variable. However, the same slider can be assigned to multiple different variables. CertSAFE attempts to intelligently choose which variables should share sliders with each other. This is convenient because it makes it easy to see values at corresponding positions in related variables.

CertSAFE automatically assigns ID numbers to the sliders it generates, so that you can cross-reference the array dimensions in your model with the corresponding sliders. When an array-typed variable is shown in a simulation, the slider IDs for that variable are displayed in colored boxes next to the variable name. One slider ID is shown for each of the variable’s array dimensions, in the same order that the dimensions occur at the type level.

The slider controls themselves are displayed in the Block Indices view. This view automatically filters the displayed sliders based on the current selection in the currently-focused editor. This is similar to how the Properties view changes contents dependending on the current selection in the currently-focused editor. When a diagram editor is focused, the Block Indices view displays all sliders from all variables that are immediate children of the current diagram, filtering the list if a variable inside the diagram is selected. When a simulation editor is focused, the Block Indices view displays all sliders from all variables that have been added to the simulation, filtering the list if a variable inside the simulation is selected.

## IntelliPoints¶

Each slot of an array-typed controlled variable has its own IntelliPoints. The values and interpolation settings of an IntelliPoint only affect the array slot containing that particular IntelliPoint.

Note

It is not currently possible in CertSAFE to control some of the slots of an array-typed variable without controlling all of the slots of the variable. As soon as an IntelliPoint is added on one slot of a variable, all of the other slots become treated as controlled and are therefore overridden with their nominal values. To de-control an array-typed variable, all of the IntelliPoints must be removed from all of the variable’s array slots.

## CSV import and export¶

When importing or exporting simulation vectors in CSV format, each slot of an array variable gets its own column. Array indices are appended to the variable name in the column header in [square brackets]. If an array-typed variable is included in a CSV file, all of its slots must be included; it is not permitted to specify values only for some of the slots.