![]() |
![]() |
![]() |
![]() |
(..Declaration Part..) | Contents | Index | (Table Part..) |
In the formal standard CA model,
there exists a special state that is
- and only is - assumed by cells lying on the
border of the retina.
In this point SCARLET differs a bit from the standard model.
Instead of a special state, it provides the function
isborder(), which
tells, whether or not the cell it is applied to is a border
(or: boundary) cell.
This additional state information allows us, on one hand, to distinguish
them from the sites in the interior of the retina (as demanded by the model), but at
the same time to treat both kinds of cells in the same way!
This means concretely: Like for normal cells, the state
of a boundary cell is divided up into registers,
and can be chosen by the
user as he pleases. That is exactly what the BorderDeclaration is for.
The chosen state is common to all boundary cells and remains unchanged during the
whole simulation. This method suggested for SCARLET seems to be more
practical, because there is no need for additional entries which handle the
boundary cases in the local rule table, if we want them to be treated like
the normal cells.
(Sometimes this saves indeed a lot of work!)
As default value integer registers have got 35, and
string registers #.
To change these arbitrarily chosen values we use the following syntax:
|
where StrictCellExpression
represents the new boundary value. It is
only evaluated once, right before the start of the simulation, to grant it
to represent a constant state throughout the run.
Remark:
In spite of the syntax, this is an assignment, so that
VOID - as a
register contents - causes the default values to stay invariant.
BORDER {0,""}; BORDER {42, VOID};{42,"#"}
![]() |
![]() |
![]() |
![]() |
(..Declaration Part..) | Contents | Index | (Table Part..) |