It is setting up the matrices which is the bottleneck, specifically setting up the off-diagonal blocks of the matrix. For context, with a moderately sized system of 200,000 dofs, setting up the main NxN sparsity pattern using DoFTools::make_sparsity_pattern and reinitializing the matrix using that sparsity pattern takes 0.1 seconds per call. The piece of code I posted above, which makes a sparsity pattern for the 1xN and Nx1 matrix blocks and reinitializes those matrices, takes 20 seconds per call. The linear solver itself averages about 40 seconds per call.
You're right that I could set this up as a Schur complement and avoid these extra blocks, but at least for now I'd like to see if I can make this block-matrix approach work faster. -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.