[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