From SIMION
SIMION 7.0 is limited to 31 adjustable electrodes (30 fast adjustable and 1 fast scalable). SIMION 8.0, which is currently in beta, increases this limit to 128 and allows SIMION to be recompiled for even higher numbers upon request (the number 128 is arbitrary and could change based on user feedback).
Support for a much larger number of adjustable electrodes in 8.0 has some compatibility implications. SIMION 8.0 aims to maintain a very high level of compatibility with 7.0. This change entails some very minor extensions in PA and IOB file formats to accommodate the larger number of adjustable electrodes.
- Unrefined PA files (.PA#) remain identical in format in SIMION 8.0. However, there is one slight difference in how the Refine function interprets it. SIMION 8.0 Refine interprets electrodes with integer voltages 31..127 as fast adjustable electrodes rather than fast scalable electrodes (as in 7.0). For future compatibility, fast scalable electrodes should be given non-integer voltages in PA# files since this limit may increase in the future.
- In 7.0, the refined adjustable electrodes are stored in files with the extension .PA? where "?" represents the electrode number 0..30 (using 0-9 followed by A-U). The use of letters for the numbering scheme is not very intuitive for larger numbers of electrodes, so in 8.0 this will be changed to a pure numbers: 0-9 followed by 10-99. This change entails that SIMION 7.0 will not be able to read a refined potential array having electrode numbers 10..30 unless you re-refine it in SIMION 7.0. SIMION 8.0, however, is able to read refined potential arrays files from SIMION 7.0 without problem.
- SIMION can store fast adjustable potentials inside the IOB file. Currently, SIMION 8.0 only saves the first 31 adjustable potentials inside the IOB file. This maintains strict compatibility with the 7.0 IOB format (but this may change in the final version of 8.0). If you want to preserve fast adjustable potentials beyond this, then just save the PA0 file.
- In 7.0 PRG code, adjustable electrodes are referred to by the variables adj_elect00..adj_elect30 and adj_pole00..adj_pole30. In 8.0, these variables will still be supported as well as the additional adj_elect31..adj_elect127 and adj_pole31..adj_pole127 variables. Also, the additional reserved "array" variables adj_elect and adj_pole are provided. This allow accessing adjustable electrodes by index:
RCL adj_elect00 ; access the fast scalable electrode 1 ARCL adj_elect ; access the first adjustable electrode 127 ARCL adj_elect ; access the last adjustable electrode.
Note that adj_elect00 is not accessible via the array mechanism since SIMION arrays are 1-indexed. ALOAD and ASAVE are not currently supported for adj_elect and adj_pole (let us know if you would find that useful).
Custom versions of SIMION 8.0 with more than 128 adjustable electrodes may be easily compiled upon request. There is no intrinsic limit, but making this number needlessly high might have performance implications. It is not known whether many users have need for a high number of adjustable electrodes.
Figure: Example with 128 adjustable electrodes in SIMION development version (moving sinusoidal wave is applied to the electrodes via the new adj_elect variable in PRG code).


