private void setupMaps() {
        //
        this.layermap = new int[this.cellsoffset];
        this.arraymap = new int[this.cellsoffset];
        this.indeg    = new int[this.cellsoffset];
        this.outdeg   = new int[this.cellsoffset];
        //
        //
        for (int i = 0; i < this.cellsoffset; i++) {
            this.layermap[i] = NOT_ASSIGNED;
            this.arraymap[i] = NOT_ASSIGNED;
        }
        //
        // determine layer assignment.
        //
        for (int i = 0; i < this.layers.size(); i++) {
            final Layer layer = this.layers.get(i);
            //
            for (int j = layer.cellslbd; j <= layer.cellsubd; j++) {
                this.layermap[j] = i;
            }
        }
        //
        // determine array assignment.
        //
        for (int i = 0; i < this.arrays.size(); i++) {
            final CellArray array = this.arrays.get(i);
            //
            for (int j = array.cellslbd; j <= array.cellsubd; j++) {
                this.arraymap[j] = i;
            }
        }
    }