<div dir="ltr">Thanks. The fluid-structure problem has been implemented via a monolithic coupling method. I am using geometric multigrid method as a preconditioner, where on each level additive Schwarz method is used. And ILU(1) is used as a subdomain solver. It does work well.  I just was wondering if a block version of ILU can help improve the performance further since I have a few degrees per grid point.<div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 1, 2015 at 4:53 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
  Probably you want a better preconditioner than ILU (point or point block) for your problem. Just blindly using ILU on a matrix arising from complex physics is not very efficient and is fragile.<br>
<br>
   You might start with the PCFIELDSPLIT where you have one "field" for the fluid and one for the "solid" part. Then you can use whatever appropriate preconditioners on each part; for example on the "solid" part you want to use PCGAMG (make sure you set the block size and the near null space for that one). The fluid part you might again use PCFIELDSPLIT on (yes it can be used recursively).<br>
<span class="HOEnZb"><font color="#888888"><br>
   Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> On Mar 1, 2015, at 5:03 PM, Fande Kong <<a href="mailto:fd.kong@siat.ac.cn">fd.kong@siat.ac.cn</a>> wrote:<br>
><br>
> Thanks, Matt.<br>
><br>
> Could bs be different from rows. I am solving a fluid-structure problem, which has different bs in fluid and solid parts.<br>
><br>
> Fande,<br>
><br>
> On Sun, Mar 1, 2015 at 3:57 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> On Sun, Mar 1, 2015 at 4:55 PM, Fande Kong <<a href="mailto:fd.kong@siat.ac.cn">fd.kong@siat.ac.cn</a>> wrote:<br>
> Thanks, Barry.<br>
><br>
> More questions. Is bs usually the number of unknowns associated with a grid point. Do I need to change MatSetValues if use a MATSEQBAIJ matrix?<br>
><br>
> No, but it does enable you to use MatSetValuesBlock() if you want.<br>
><br>
>    Matt<br>
><br>
> Fande,<br>
><br>
> On Sun, Mar 1, 2015 at 2:36 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
>   Fande,<br>
><br>
>     The MATSEQBAIJ matrix automatically uses a point block ILU; with the block size of the matrix. So if your matrix naturally has a block size bs if you use the MATSEQBAIJ matrix type it will be point block ILU of block size bs.<br>
><br>
>     We don't have a variable point block ILU in PETSc for SeqAIJ. It is possible to write but would be rather involved.<br>
><br>
>    Barry<br>
><br>
> > On Mar 1, 2015, at 1:47 PM, Fande Kong <<a href="mailto:fd.kong@siat.ac.cn">fd.kong@siat.ac.cn</a>> wrote:<br>
> ><br>
> > Hi all,<br>
> ><br>
> > I have a code with ILU as subdomain solver, and it works well. Now I want to try a block version of ILU, there are some easy ways to implement this?<br>
> ><br>
> > Fande,<br>
><br>
><br>
><br>
><br>
><br>
><br>
> --<br>
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
> -- Norbert Wiener<br>
><br>
<br>
<br>
</div></div></blockquote></div><br></div>