[Trilinos-Users] ML: reusing structures

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


I've started to get my hands a little dirty with ML's reusing
strategies, specifically referring to

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_->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?


More information about the Trilinos-Users mailing list