From: Kirk, B. \(JSC-EG\) <ben...@na...> - 2006-02-23 15:23:36
|
I'd be happy to help here too, but there is another option you could consider. PETSc says they can interface directly with UMFPACK. In that case, you simply need to build PETSc such that it uses UMFPACK internally and then you should have access to (at leas a subset of) the UMFPACK sparse directly. The standard PETSc allows for "-pc_type direct" which does a dense direct LU factorization and then uses it as the "preconditioner" in an iterative method (which will then converge in 1 iteration). This only works on serial problems, mind you, but it looks like UMFPACK is serial as well. If you install PETSc with UMFPACK support I would guess you'd get something like "-pc_type umfpack" which would then build the "preconditioner" using UMFPACK's Unsymmetric sparse multifrontal method. The only reason I mention it is because it may be the path of least resistance, especially if UMFPACK is relegated to serial problems only. Adding a new solver interface is fairly straightforward but time consuming, and it is a lot of work to go through for a solver which will only work on serial problems. -Ben -----Original Message----- From: lib...@li... [mailto:lib...@li...] On Behalf Of John Peterson Sent: Thursday, February 23, 2006 8:47 AM To: Blome Mark Cc: Lib...@li... Subject: [Libmesh-users] direct solver Blome Mark writes: > > I would like to use a direct sparse matrix solver package within > libmesh (for example umfpack, pardiso or thelike). > Am I right that I have to implement an interface for the solver > package by deriving from the class LinearSolver (linear_solver.h)? > Are there any pitfalls I should be aware of ? How do I include the > solver package into the libmesh Makefile so it will get linked > correctly? Did anybody alreay implement a direct solver interface ? You might get some hints from the Petsc and Laspack implementations of the LinearSolver interface. Some things you will probably need are: 1.) UMF_Matrix derived from SparseMatrix 2.) UMF_Vector derived from NumericVector 3.) UMF_Interface as you mentioned This sounds like an interesting project. If UMF is open source, and small enough, we can distribute it directly in libmesh's contrib directory. Otherwise, you will need 4.) configure tests, etc. I think we can help with 1.) -- 4.) if you do end up trying to do this. -J ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat=3D= 121642 _______________________________________________ Libmesh-users mailing list Lib...@li... https://lists.sourceforge.net/lists/listinfo/libmesh-users |