iterative substructuring