19.06.2015 Views

A FEniCS Tutorial - FEniCS Project

A FEniCS Tutorial - FEniCS Project

A FEniCS Tutorial - FEniCS Project

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Parameters in expression strings must be initialized via keyword arguments<br />

when creating the Expression object:<br />

myfunc = Expression(’sin(w_x*x[0])*cos(w_y*x[1])’,<br />

w_x=pi, w_y=2*pi)<br />

7.4 Linear Solvers and Preconditioners<br />

The following solution methods for linear systems can be accessed in <strong>FEniCS</strong><br />

programs:<br />

Name<br />

Method<br />

’lu’ sparse LU factorization (Gaussian elim.)<br />

’cholesky’ sparse Cholesky factorization<br />

’cg’ Conjugate gradient method<br />

’gmres’ Generalized minimal residual method<br />

’bicgstab’ Biconjugate gradient stabilized method<br />

’minres’ Minimal residual method<br />

’tfqmr’ Transpose-free quasi-minimal residual method<br />

’richardson’ Richardson method<br />

Possible choices of preconditioners include<br />

Name<br />

Method<br />

’none’ No preconditioner<br />

’ilu’ Incomplete LU factorization<br />

’icc’ Incomplete Cholesky factorization<br />

’jacobi’ Jacobi iteration<br />

’bjacobi’ Block Jacobi iteration<br />

’sor’ Successive over-relaxation<br />

’amg’ Algebraic multigrid (BoomerAMG or ML)<br />

’additive_schwarz’ Additive Schwarz<br />

’hypre_amg’ Hypre algebraic multigrid (BoomerAMG)<br />

’hypre_euclid’ Hypre parallel incomplete LU factorization<br />

’hypre_parasails’ Hypre parallel sparse approximate inverse<br />

’ml_amg’ ML algebraic multigrid<br />

Manyofthechoices listedaboveareonlyofferedbyaspecificbackend, sosetting<br />

the backend appropriately is necessary for being able to choose a desired linear<br />

solver or preconditioner.<br />

An up-to-date list of the available solvers and preconditioners in <strong>FEniCS</strong><br />

can be produced by<br />

list_linear_solver_methods()<br />

list_krylov_solver_preconditioners()<br />

85

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!