User login


You are here

Any suggestion for a fast sparse solver

Zhigang Wei's picture

It seems that a customized FEM code is always necessary for special research purposes. In our group we use a home-made FEM code to simulate arbitrary crack growth in 3D domain with nodal release or re-meshing.

One great challenge we are facing now is that the speed of the code is highly limited by the sparse solver when the model size increases, say up to 50,000 DOFs. Then the speed is much slower than that of standard commercial codes such as ANSYS or ABAQUS. Unfortunitely, I guess none of those companies would like to share their solvers for our researchers. 

 I am wondering that if anybody in the computational community can recommend some good open-source sparse solvers?

 In my opinion, this is a very important and common issue for any researcher who want to apply their own FEM code to fairly complex problems in the real engineering world.

I don't believe there are any open-source linear equation solvers of the same quality as those in ABAQUS, ANSYS, and NASTRAN. The solvers in these three codes are able to solve very large problems (> 1M DOFs) because they don't require that the full, factored matrix remain in main memory during factorization (this is typically referred to as an out-of-core solver). These commercial solvers are also highly optimized.

Most open-source solvers are in-core. However they should be able to handle a typical 50000 DOF FEM problem on a modern PC. One high quality solver that I have had success with is SPOOLES

Tim Davis at University of Florida also has some high performance solvers available:

Sivan Toledo provides the source code for several solvers including one that is out-of-core. I tried this one myself but ran into problems.

Finally, the Numerical Analysis group at Rutherford Appleton Laboratory has released several recent reports (2004, 2005) that survey many of the state-of-the-art sparse solvers. You can download copies of those reports here.

Have you looked at PETSC


Or Trilinos




There exists tons of free sparse linear solvers (parallel or serial). You can check at

From my experience:

Direct method: UMFpack(serial), Pardiso(embedded in intel MKL, OpenMP or serial), SuperLU (MPI or serial) and MUMPS(MPI or serial) are very good. However, this method requires the factorization of the matrix, which is very computational expensive.

I also recommend some iterative methods, such as Krylov subspace method: conjugate gradient for SPD matrix and BiCGSTAB are good. However, the convergence of the iterative method depends on how good your pre-conditioner is, which is very case dependent.

Petsc is very good and powerfull, but the manual is too long:( 

vh's picture


Please have a look at my comment on

This open source FE code, WARP3D is mainly meant for the fracture mechanics community.

I hope this would help.

V. Hegadekatte, University of Karlsruhe, Germany

Zhigang Wei's picture

Thank you all for your replies! That's a lot of great information. Thank you again!

Roozbeh Sanaei's picture

i think sparckit is the best computational kit for sparse matrix manipulation.


Subscribe to Comments for "Any suggestion for a fast sparse solver"

Recent comments

More comments


Subscribe to Syndicate