Christophe & Chih-Che,
> I get the following errors :
>
> =====lac==============debug======MT== trilinos_precondition.cc
> /home/homedir/trophime/debian/deal.ii-6.3.0/lac/source/trilinos_preconditio
>n.cc: In member function ‘void
> dealii::TrilinosWrappers::PreconditionAMG::initialize(const
> dealii::TrilinosWrappers::SparseMatrix&, const
> dealii::TrilinosWrappers::PreconditionAMG::AdditionalData&)’:
> /home/homedir/trophime/debian/deal.ii-6.3.0/lac/source/trilinos_preconditio
>n.cc:516: error: no matching function for call to ‘Teuchos::RCP<const
> Epetra_Operator>::reset()’
Apparently we need to test with more versions of Trilinos as well -- this
works since 10.1 but not before. The attached patch should help the problem.
Martin: Do you agree that this is the right way to go? The RCP::reset()
function didn't exist in Trilinos 10.0 and prior, and the RCP::release
function that we called before your patch r21329 probably created a memory
leak if I read its documentation correctly. If you agree then I'll move the
patch to the release branch as well.
Best
W.
-------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.tamu.edu/~bangerth/
Index: lac/source/trilinos_precondition.cc
===================================================================
--- lac/source/trilinos_precondition.cc (revision 21395)
+++ lac/source/trilinos_precondition.cc (working copy)
@@ -513,8 +513,8 @@
PreconditionAMG:: initialize (const SparseMatrix &matrix,
const AdditionalData &additional_data)
{
- preconditioner.reset ();
- multilevel_operator.reset ();
+ preconditioner.reset (static_cast<const Epetra_Operator*>(0));
+ multilevel_operator.reset (static_cast<ML_Epetra::MultiLevelPreconditioner*>(0));
const unsigned int n_rows = matrix.m();
@@ -647,8 +647,8 @@
const double drop_tolerance,
const ::dealii::SparsityPattern *use_this_sparsity)
{
- preconditioner.reset();
- multilevel_operator.reset ();
+ preconditioner.reset(static_cast<const Epetra_Operator*>(0));
+ multilevel_operator.reset (static_cast<ML_Epetra::MultiLevelPreconditioner*>(0));
const unsigned int n_rows = deal_ii_sparse_matrix.m();
// Init Epetra Matrix using an
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii