Justin Chang <[email protected]> writes:

> Last one with the svd did not work with the way the AMG PC was hard-coded
> into FEniCS. Here's the list of preconditioners my installation of FEniCS
> supports:
>
> Preconditioner    |  Description
> ---------------------------------------------------------------
> default           |  default preconditioner
> ilu               |  Incomplete LU factorization
> icc               |  Incomplete Cholesky factorization
> sor               |  Successive over-relaxation
> petsc_amg         |  PETSc algebraic multigrid
> jacobi            |  Jacobi iteration
> bjacobi           |  Block Jacobi iteration
> additive_schwarz  |  Additive Schwarz
> amg               |  Algebraic multigrid
> hypre_amg         |  Hypre algebraic multigrid (BoomerAMG)
> hypre_euclid      |  Hypre parallel incomplete LU factorization
> hypre_parasails   |  Hypre parallel sparse approximate inverse
> none              |  No preconditioner

Wrapping an extensible dynamic system with a static maintenance burden
is pretty much the canonical example of bad design.

I used to keep a patched version of Dolfin so I could bypass this stupid
table.  The table can and should be constructed dynamically using

  const char **pcs;
  int npcs;
  PetscFunctionListGet(PCList,&pcs,&npcs);

Anyway, are you sure this wasn't fixed so that you can pass PETSc
options directly?

If you can get commands to PETSc, but just can't change the
preconditioner, then try

  -ksp_view_mat binary

(for the tiny problem) and open the resulting matrix "binaryoutput" in
octave/matlab/scipy.

Attachment: signature.asc
Description: PGP signature

Reply via email to