[Trilinos-Users] Sparse direct solver and language options for GPU
Alicia M Klinvex
aklinvex at purdue.edu
Fri Sep 19 11:16:49 MDT 2014
Hello Tom,
I have a few Trilinos codes that solve saddle point problems of a specific structure: the 1-1 block is a sparse, symmetric matrix (A); the 1-2 block is a multivector (a tall, dense matrix) (B); the 2-1 block is B^T; the 2-2 block is zero.
The first code I have forms the inexact Schur complement S=B^T Z, where Z is the approximate solution of AZ=B, computed by an iterative method. (If you want to precondition A, you can. If you want to use a direct method instead of an iterative one, you could also do that.) It then uses the Schur complement to construct the solution to your saddle point problem (as in section 5 of the Benzi/Golub paper).
I also implemented the block diagonal preconditioner of section 10.1.1. I haven't implemented block upper triangular preconditioning, constraint preconditioning or any of the other block preconditioners they mention, but it wouldn't be too difficult to modify the code to accommodate them.
These saddle point solvers aren't in Trilinos 11.10.2 (as far as I know), but I'd be happy to send you my code if it would help you.
Best wishes,
Alicia
----- Original Message -----
From: "Tom Anderson" <tomacorp at gmail.com>
Cc: trilinos-users at software.sandia.gov
Sent: Friday, September 19, 2014 12:44:33 PM
Subject: Re: [Trilinos-Users] Sparse direct solver and language options for GPU
Chetan,
Thanks for the reference! This paper describes my problem exactly.
I think my problem meets all five of the criteria C1-C5 in the paper.
In my problem the top left mxm block (A block in the paper) is much larger and more complex that the nxn block (B block in the paper).
Unless anyone has an easier suggestion, I will try both of your suggested approaches and see which one
works better.
Do you have a references or any suggestions with more details on how to proceed with Trilinos to implement either of these approaches?
Thanks again,
-Tom
On Thu, Sep 18, 2014 at 11:50 AM, Chetan Jhurani < chetan.jhurani at gmail.com > wrote:
Tom,
>From the example you gave, the matrix looks like a “saddle point system”,
which is a natural matrix form in many problems. The matrix will not
be semi-definite in this case but it will be indefinite. Hence you saw the
warning about negative eigenvalue. It will be useful to take advantage
of the structure of saddle point matrices (whether Trilinos is used or cholmod).
I’m no expert here but you might benefit from elimination of extra variables since
it looks like the constraints are very simple (v_b - v_a = V1 etc). After elimination,
you could use a solver/preconditioner pair that works well with positive
definite matrices. The other approach is to “solve” the m x m portion rather than
going for the full (m+n) x (m+n) matrix. The right choice depends on the relative
sizes of m and n and the simplicity of the “constraint” block vs the simplicity
of the top-left m x m block.
Consult the following popular paper if you want to solve saddle point problems
by either of these approaches.
http://web.stanford.edu/class/msande312/restricted/benzi05saddle.pdf
Numerical solution of saddle point problems
Chetan
_______________________________________________
Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov
https://software.sandia.gov/mailman/listinfo/trilinos-users
More information about the Trilinos-Users
mailing list