44 #include "Epetra_RowMatrix.h" 45 #include "Epetra_CrsMatrix.h" 47 #ifdef HAVE_STOKHOS_IFPACK 60 #ifdef HAVE_STOKHOS_IFPACK 62 Teuchos::rcp_dynamic_cast<Epetra_RowMatrix>(op,
true);
64 std::string prec = precParams->
get(
"Ifpack Preconditioner",
"ILU");
65 int overlap = precParams->get(
"Overlap", 0);
68 ifpackPrec->SetParameters(*precParams);
69 ifpackPrec->Initialize();
71 ifpackPrec->Compute();
75 "Stokhos::IfpackPreconditionerFactory is available " <<
76 "only with configured with Ifpack support!");
78 #endif // HAVE_STOKHOS_IFPACK 85 #ifdef HAVE_STOKHOS_IFPACK 88 Teuchos::rcp_dynamic_cast<Epetra_CrsMatrix>(op,
true);
90 Teuchos::rcp_dynamic_cast<Ifpack_Preconditioner>(prec_op);
91 const Epetra_RowMatrix& prec_mat = ifpackPrec->Matrix();
92 const Epetra_CrsMatrix& prec_crs_mat =
93 dynamic_cast<const Epetra_CrsMatrix&
>(prec_mat);
94 Epetra_CrsMatrix& non_const_prec_crs_mat =
95 const_cast<Epetra_CrsMatrix&
>(prec_crs_mat);
96 non_const_prec_crs_mat = *mat;
99 ifpackPrec->Compute();
102 "Stokhos::IfpackPreconditionerFactory is available " <<
103 "only with configured with Ifpack support!");
104 #endif // HAVE_STOKHOS_IFPACK #define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
IfpackPreconditionerFactory(const Teuchos::RCP< Teuchos::ParameterList > &p)
Constructor.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual void recompute(const Teuchos::RCP< Epetra_Operator > &op, const Teuchos::RCP< Epetra_Operator > &prec)
Recompute preconditioner operator for a new matrix.
virtual Teuchos::RCP< Epetra_Operator > compute(const Teuchos::RCP< Epetra_Operator > &op, bool compute_prec=true)
Compute preconditioner.