[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