30 std::string prec_method = params->
get(
"Preconditioner Method",
32 if (prec_method ==
"Block Diagonal") {
34 buildPointPreconditionerFactory();
36 mp_comm, num_mp_blocks,
37 base_map, mp_map, prec_factory,
40 else if (prec_method ==
"Mean-based") {
42 buildPointPreconditionerFactory();
44 mp_comm, num_mp_blocks,
45 base_map, mp_map, prec_factory,
48 else if (prec_method ==
"None")
52 "Error! Unknown preconditioner method " << prec_method
62 std::string prec_name =
63 params->get(
"MP Preconditioner Type",
"Ifpack");
65 Teuchos::rcp(¶ms->sublist(
"MP Preconditioner Parameters"),
false);
virtual Teuchos::RCP< Stokhos::MPPreconditioner > build(const Teuchos::RCP< const EpetraExt::MultiComm > &mp_comm, int num_mp_blocks, const Teuchos::RCP< const Epetra_Map > &base_map, const Teuchos::RCP< const Epetra_Map > &mp_map)
Build preconditioner operator.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Teuchos::RCP< Stokhos::AbstractPreconditionerFactory > buildPointPreconditionerFactory()
Build preconditioner factory for each point.
MPPreconditionerFactory(const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
Constructor.
An class for building preconditioners.
A multi-point preconditioner based on applying the inverse of the diagonal.
A multi-point preconditioner based on applying the inverse of the mean.