Belos Version of the Day
Loading...
Searching...
No Matches
BelosOperatorT.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Belos: Block Linear Solvers Package
4//
5// Copyright 2004-2016 NTESS and the Belos contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9#ifndef BELOS_OPERATORT_HPP
10#define BELOS_OPERATORT_HPP
11
13
14namespace Belos {
15 // Base class for the Belos OP template type. Similar to Belos::Operator<> but this one deals with any kind of vector (not only Belos::MultiVec as the Belos::Operator interface)
16 template <class MV>
17 class OperatorT {
18
19 public:
20
22
23
26
28 virtual ~OperatorT() {};
30
32
33
39 virtual void Apply ( const MV & x, MV & y, ETrans trans=NOTRANS ) const = 0;
40 };
41
49 template <class ScalarType, class MV>
50 class OperatorTraits<ScalarType, MV, OperatorT<MV> >
51 {
52
53 public:
55 static void Apply (const OperatorT<MV>& Op,
56 const MV& x,
57 MV& y, ETrans trans=NOTRANS) {
58 Op.Apply (x, y, trans);
59 }
60 };
61
62} // namespace Belos
63
64#endif // BELOS_OPERATORT_HPP
Class which defines basic traits for the operator type.
virtual void Apply(const MV &x, MV &y, ETrans trans=NOTRANS) const =0
This routine takes the Belos::MultiVec x and applies the operator to it resulting in the Belos::Multi...
OperatorT()
Default constructor.
virtual ~OperatorT()
Destructor.
static void Apply(const OperatorT< MV > &Op, const MV &x, MV &y, ETrans trans=NOTRANS)
Specialization of Apply() for OperatorT.
Class which defines basic traits for the operator type.
ETrans
Whether to apply the (conjugate) transpose of an operator.

Generated on for Belos by doxygen 1.15.0