Development and optimization of a combinatorial multigrid algorithm for large scale circuit simulation