[Trilinos-Users] trouble with Ifpack preconditioners

Alicia M Klinvex aklinvex at purdue.edu
Wed Jan 23 12:59:28 MST 2013


Hello,

My name is Alicia, and I'm trying to implement TraceMIN for the Anasazi package.  My code uses Belos to solve a linear system at each iteration.  I have gotten the code to work with the IC preconditioner in Ifpack, but I would now like to use block-Jacobi.  When I change the preconditioner from IC to block-Jacobi, my program aborts, and I'm not sure why.  The only line of code I changed was 

Teuchos::RCP<Ifpack_IC> IC = Teuchos::rcp( new Ifpack_IC( K.get() ) );

to

Teuchos::RCP<Ifpack_BlockRelaxation<Ifpack_SparseContainer<Ifpack_Amesos> > > IC = Teuchos::rcp( new Ifpack_BlockRelaxation<Ifpack_SparseContainer<Ifpack_Amesos> >( K.get() ) );

(I left the parameters at their default values in both cases.)

If anyone has some insight into why this may be happening, I would greatly appreciate it.  I can provide code and input files on request.

Thank you,
Alicia Klinvex



Output:

Using IC:
golub 460 % ./TraceMin_MM.exe
4 1e-5 2
<cut>
================================================================================

                          TraceMin Solver Status

The solver is initialized.
The number of iterations performed is 19
The block size is         4
The current basis size is 4
The number of auxiliary vectors is 0
The number of operations Op*x   is 80
The number of operations M*x    is 0
The number of operations Prec*x is 0

CURRENT EIGENVALUE ESTIMATES             
          Eigenvalue         Residual(M)         Residual(2)
--------------------------------------------------------------------------------
        2.081014e+00         not current        2.065081e-06
        2.317493e+00         not current        4.376610e-05
        2.690280e+00         not current        1.354157e-03
        3.169174e+00         not current        1.599451e-03
================================================================================

================================================================================

                      TimeMonitor results over 1 processor

Timer Name                                     Global time (num calls)    
--------------------------------------------------------------------------------
Anasazi: TraceMin::Computing residuals         0.0001423 (20)             
Anasazi: TraceMin::Direct solve                0.0003483 (20)             
Anasazi: TraceMin::Initialization              0.0207 (2)                 
Anasazi: TraceMin::Local update                0.0001349 (20)             
Anasazi: TraceMin::Operation M*x               0 (0)                      
Anasazi: TraceMin::Operation Op*x              5.603e-05 (20)             
Anasazi: TraceMin::Operation Prec*x            0 (0)                      
Anasazi: TraceMin::Orthogonalization           0.02149 (20)               
Anasazi: TraceMin::Sorting eigenvalues         4.22e-05 (20)              
Anasazi: TraceMinSolMgr locking                0 (0)                      
--------------------------------------------------------------------------------
Anasazi: TraceMinSolMgr::solve()               0.06158 (1)                
Belos: Operation Op*x                          0.0002768 (231)            
Belos: Operation Prec*x                        0.0006635 (287)            
Belos: PseudoBlockCGSolMgr total solve time    0.03789 (19)               
================================================================================
Anasazi::EigensolverMgr::solve() returned converged.
Actual Eigenvalues (obtained by Rayleigh quotient) : 
------------------------------------------------------
       Real Part           Error
------------------------------------------------------
    2.081014e+00    3.441801e-07
    2.317493e+00    7.294350e-06
------------------------------------------------------



Using block-Jacobi:

golub 466 % ./TraceMin_MM.exe
4 1e-5 2

Error in Epetra Object with label:  Epetra::MultiVector
Epetra Error:  Vector index = 1is out of range. Number of Vectors = 1  Error Code:  -1
terminate called after throwing an instance of 'int'
Abort




More information about the Trilinos-Users mailing list