This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Is amg preconditioner deprecated on version 2016.1.0 ?

+1 vote

Hi to all,

I recently updated to the new stable fenics release 2016.1.0.

In some of my old codes, I use the following to configure my solver for a reaction-diffusion problem:

solver = KrylovSolver('cg', 'amg')

but that stop working after the upgrade, showing the error:

*** Error:   Unable to solve linear system using Krylov iteration.
*** Reason:  Unknown preconditioner "amg". Use list_krylov_solver_preconditioners() to list available preconditioners().
*** Where:   This error was encountered inside KrylovSolver.cpp.

If I do list_krylov_solver_preconditioners() the output is:

Preconditioner  |  Description  
--------------------------------
default         |  default      
ilu             |  Incomplete LU
jacobi          |  Jacobi       
none            |  None  

Please I need to know what happen, because the amg preconditioner severely decreases the total time used to solve my simulations.

Thanks in advice.

asked Jun 30, 2016 by felipe_galarce FEniCS User (1,190 points)

What linear algebra backend are you using? At least "petsc_amg" should be available if PETSc is available.
Maybe PETSc wasn't found when building dolfin? Check with

list_linear_algebra_backends()

The output of list_linear_algebra_backends() is

Linear algebra backends  |  Description                                     
----------------------------------------------------------------------------
Eigen                    |  Template-based linear algebra  library (default)

So I think I will have to manually install PETSc.

Are you using the packages from the FEniCS PPA? If so, they are for some reason built without PETSc. I'm working on this now and I expect to upload new packages which includes PETSc later today.

Ok, that's great!

The problem has been fixed now and new packages are available in the FEniCS PPA.

Thank you, now it works fine.

...