[Trilinos-Users] ML: reusing structures

Nico Schlömer nico.schloemer at gmail.com
Thu Feb 9 04:28:11 MST 2012


Hi,

I've started to get my hands a little dirty with ML's reusing
strategies, specifically referring to
http://trilinos.sandia.gov/packages/docs/dev/packages/ml/doc/html/classML__Epetra_1_1MultiLevelPreconditioner.html#a0a5c1d47c6938d2ec1cb9bb710723c1e

If what I understand from the docs is correct, then

================= *snip* =================
// set up matrix A (ptr)
if ( ML is not build )
{
   // set up ML list
   MlPrec_ = Teuchos::rcp( new ML_Epetra::MultiLevelPreconditioner(
*A, MLList ) );
}
// Solve linear systems with MLPrec, A

// change values of A, not its pointer

MlPrec_->ComputePreconditioner();
// ? MlPrec_->ReComputePreconditioner();

// Solve more linear systems with MLPrec, A
================= *snap* =================

is what you're supposed to do.

Three questions about it:

(a) Out of interest: How is the data of the matrix A handled in ML?
Are references to it passed around?
    It seems a bit funny to pass in A by value (*A), but then after
that the pointer to A can't change.
(b) There is also ReComputePreconditioner(). What are possible use cases for it?
(c) ComputePreconditioner runs about twice as long with checkFiltering
*disabled*. Is this somethings that's supposed to happen?

Cheers,
Nico



More information about the Trilinos-Users mailing list