15 template<
class MV,
class OP,
class NormType>
18 std::string
name ()
const {
26 std::cout << this->
name () <<
"::solve START" << std::endl;
27 std::cout << this->
name () <<
"::solve END" << std::endl;
34 template<
class MV,
class OP,
class NormType>
37 std::string
name ()
const {
44 void solve (MV& X,
const MV& Y) {
45 std::cout << this->
name () <<
"::solve START" << std::endl;
48 Trilinos::Details::getLinearSolver<MV, OP, NormType> (
"B",
"4");
49 if (solverB4.
get () == NULL) {
50 throw std::runtime_error (
"Solver4 from package B has not been registered!");
54 solverB4->solve (X, Y);
55 std::cout << this->
name () <<
"::solve END" << std::endl;
62 template<
class MV,
class OP,
class NormType>
71 if (solverName ==
"1") {
74 else if (solverName ==
"2") {
78 std::ostringstream err;
79 err <<
"A::FactoryA::getLinearSolver: Invalid solver name \"" << solverName <<
"\"";
80 throw std::invalid_argument (err.str ());
87 #endif // PACKAGE_A_HPP
Teuchos::RCP< Trilinos::Details::LinearSolver< MV, OP, NormType > > getLinearSolver(const std::string &solverName)
Get an instance of a solver from a particular package.
Interface for a method for solving linear system(s) AX=B.
T * get() const
Get the raw C++ pointer to the underlying object.
void solve(MV &, const MV &)
Solve the linear system(s) AX=B.
Interface for a "factory" that creates solvers.
Smart reference counting pointer class for automatic garbage collection.
void solve(MV &X, const MV &Y)
Solve the linear system(s) AX=B.