<div dir="ltr"><div>Actually, something is wrong. The velocity solutions are correct, but the pressure solution has gone awry (see attached, left uses MTH whereas right is TH). Don't know why I didn't catch this earlier, I may need to consult to the FEniCS guys for this<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 2, 2015 at 4:45 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Justin Chang <<a href="mailto:jychang48@gmail.com">jychang48@gmail.com</a>> writes:<br>
<br>
> Last one with the svd did not work with the way the AMG PC was hard-coded<br>
> into FEniCS. Here's the list of preconditioners my installation of FEniCS<br>
> supports:<br>
><br>
> Preconditioner    |  Description<br>
> ---------------------------------------------------------------<br>
> default           |  default preconditioner<br>
> ilu               |  Incomplete LU factorization<br>
> icc               |  Incomplete Cholesky factorization<br>
> sor               |  Successive over-relaxation<br>
> petsc_amg         |  PETSc algebraic multigrid<br>
> jacobi            |  Jacobi iteration<br>
> bjacobi           |  Block Jacobi iteration<br>
> additive_schwarz  |  Additive Schwarz<br>
> amg               |  Algebraic multigrid<br>
> hypre_amg         |  Hypre algebraic multigrid (BoomerAMG)<br>
> hypre_euclid      |  Hypre parallel incomplete LU factorization<br>
> hypre_parasails   |  Hypre parallel sparse approximate inverse<br>
> none              |  No preconditioner<br>
<br>
</span>Wrapping an extensible dynamic system with a static maintenance burden<br>
is pretty much the canonical example of bad design.<br>
<br>
I used to keep a patched version of Dolfin so I could bypass this stupid<br>
table.  The table can and should be constructed dynamically using<br>
<br>
  const char **pcs;<br>
  int npcs;<br>
  PetscFunctionListGet(PCList,&pcs,&npcs);<br>
<br>
Anyway, are you sure this wasn't fixed so that you can pass PETSc<br>
options directly?<br>
<br>
If you can get commands to PETSc, but just can't change the<br>
preconditioner, then try<br>
<br>
  -ksp_view_mat binary<br>
<br>
(for the tiny problem) and open the resulting matrix "binaryoutput" in<br>
octave/matlab/scipy.<br>
</blockquote></div><br></div>