<div class="gmail_quote">On Thu, Feb 2, 2012 at 15:43, Mark F. Adams <span dir="ltr"><<a href="mailto:mark.adams@columbia.edu">mark.adams@columbia.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Use MatSetBlockSize(mat,ndof); and that info will get passed down to HYPRE.</blockquote></div><br>This assumes that you have ordered your equations so that all components are next to each other.<br><br>This is usually practical for systems in H^1 (e.g. compressible elasticity), but for systems with constraints (mixed methods for Stokes) or systems in H(div) or H(curl), you need more specialized methods. Hypre has some support for H(curl), but it's for a specific discretization and you would have to use their custom interface. Unfortunately, those systems always tend to be a lot of work, so the alternative is to use fieldsplit (also "auxilliary space") preconditioning to transform those systems into ones that can be solved with standard methods.<br>