[Trilinos-Users] trouble with Ifpack preconditioners

Hoemmen, Mark mhoemme at sandia.gov
Thu Jan 24 12:29:47 MST 2013


Hi Alicia!

I remember you explaining to me how TraceMIN works at the last TUG meeting.  Please feel free to send me your source code.  If it's OK with you, I'll share it with other Anasazi, Belos, Epetra, and Ifpack developers.  It may take me a few days to respond, so if it's urgent, please let me know.

Thanks!
mfh

On Jan 24, 2013, at 12:00 PM, <trilinos-users-request at software.sandia.gov>
 wrote:
> Message: 1
> Date: Wed, 23 Jan 2013 14:59:28 -0500 (EST)
> From: "Alicia M Klinvex" <aklinvex at purdue.edu>
> Subject: [Trilinos-Users] trouble with Ifpack preconditioners
> To: trilinos-users <trilinos-users at software.sandia.gov>
> Message-ID:
> 	<134750364.70133.1358971168533.JavaMail.root at mailhub035.itcs.purdue.edu>
> 	
> Content-Type: text/plain; charset=utf-8
> 
> 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
> 
> 
> 
> 
> ------------------------------
> 
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users
> 
> 
> End of Trilinos-Users Digest, Vol 89, Issue 19
> **********************************************




More information about the Trilinos-Users mailing list