<div class="gmail_quote">On Thu, Feb 2, 2012 at 15:43, Mark F. Adams <span dir="ltr">&lt;<a href="mailto:mark.adams@columbia.edu">mark.adams@columbia.edu</a>&gt;</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&#39;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 &quot;auxilliary space&quot;) preconditioning to transform those systems into ones that can be solved with standard methods.<br>