Stratimikos
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
adapters
belos
src
tpetra
Stratimikos_BelosTpetraPrecHelpers.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Stratimikos: Thyra-based strategies for linear solvers
4
//
5
// Copyright 2006 NTESS and the Stratimikos contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef STRATIMIKOS_BELOS_PREC_TPETRA_HELPERS_HPP
11
#define STRATIMIKOS_BELOS_PREC_TPETRA_HELPERS_HPP
12
13
#include "Stratimikos_LinearSolverBuilder.hpp"
14
#include "Thyra_BelosTpetraPreconditionerFactory_decl.hpp"
15
#include "Thyra_BelosTpetraPreconditionerFactory_def.hpp"
16
17
#include "Teuchos_RCP.hpp"
18
#include "Teuchos_ParameterList.hpp"
19
#include "Teuchos_TestForException.hpp"
20
#include "Teuchos_AbstractFactoryStd.hpp"
21
22
#include <string>
23
24
namespace
Stratimikos {
25
26
template
<
typename
MatrixType>
27
void
enableBelosPrecTpetra(
LinearSolverBuilder<typename MatrixType::scalar_type>
& builder,
const
std::string& stratName =
"BelosPrecTpetra"
)
28
{
29
const
Teuchos::RCP<const Teuchos::ParameterList> precValidParams = Teuchos::sublist(builder.getValidParameters(),
"Preconditioner Types"
);
30
31
TEUCHOS_TEST_FOR_EXCEPTION(precValidParams->isParameter(stratName), std::logic_error,
32
"Stratimikos::enableBelosPrecTpetra cannot add \""
+ stratName +
"\" because it is already included in builder!"
);
33
34
typedef
typename
MatrixType::scalar_type scalar_type;
35
typedef
Thyra::PreconditionerFactoryBase<scalar_type> Base;
36
typedef
Thyra::BelosTpetraPreconditionerFactory<MatrixType> Impl;
37
38
builder.setPreconditioningStrategyFactory(Teuchos::abstractFactoryStd<Base, Impl>(), stratName);
39
}
40
41
}
// namespace Stratimikos
42
43
#endif
Stratimikos::LinearSolverBuilder
Concrete subclass of Thyra::LinearSolverBuilderBase for creating Thyra::LinearOpWithSolveFactoryBase ...
Definition
Stratimikos_LinearSolverBuilder_decl.hpp:89
Generated for Stratimikos by
1.17.0