code: public List<List<Integer>> getRepeatsCyclicForm(int level, int firstRepeat) {
  		Axis axis = axes.get(level);
  		int m = getNumRepeats(level+1);//size of the children
  		int d = axis.getOrder(); // degree of this node
  		int n = m*d; // number of repeats included
  		if(firstRepeat % n != 0) {
  			throw new IllegalArgumentException(String.format("Repeat %d cannot start a block at level %s of this tree",firstRepeat,level));
  		}
  		if(axis.getSymmType() == SymmetryType.OPEN) {
  			n -= m; // leave off last child for open symm
  		}
  
  		List<List<Integer>> repeats = new ArrayList<>(m);
  		for(int i=0;i<m;i++) {
  			List<Integer> cycle = new ArrayList<>(d);
  			for(int j=0;j<d;j++) {
  				cycle.add(firstRepeat+i+j*m);
  			}
  			repeats.add(cycle);
  		}
  		return repeats;
  	}
docs: Get the indices of participating repeats in cyclic form.
  <p>
  Each inner list gives a set of equivalent repeats and should have length
  equal to the order of the axis' operator.
  @param level
  @param firstRepeat
  @return