Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_PhysicallyBlockedLinearOpWithSolveBase.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Thyra: Interfaces and Support for Abstract Numerical Algorithms
4 //
5 // Copyright 2004 NTESS and the Thyra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_WITH_SOLVE_BASE_HPP
11 #define THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_WITH_SOLVE_BASE_HPP
12 
13 #include "Thyra_BlockedLinearOpWithSolveBase.hpp"
14 #include "Thyra_PhysicallyBlockedLinearOpBase.hpp"
15 
16 
17 namespace Thyra {
18 
19 
27 template<class Scalar>
29  : virtual public BlockedLinearOpWithSolveBase<Scalar>,
30  virtual public PhysicallyBlockedLinearOpBase<Scalar>
31 {
32 public:
33 
49  virtual bool acceptsLOWSBlock(const int i, const int j) const = 0;
50 
52  virtual void setNonconstLOWSBlock(
53  const int i, const int j,
55  ) = 0;
56 
58  virtual void setLOWSBlock(
59  const int i, const int j,
60  const Teuchos::RCP<const LinearOpWithSolveBase<Scalar> > &block
61  ) = 0;
62 
63 private:
64 
65  // Not defined and not to be called
68 
69 };
70 
71 
72 } // namespace Thyra
73 
74 
75 #endif // THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_WITH_SOLVE_BASE_HPP
Base class for all linear operators that can support a high-level solve operation.
virtual void setNonconstLOWSBlock(const int i, const int j, const Teuchos::RCP< LinearOpWithSolveBase< Scalar > > &block)=0
Base interface for physically blocked linear operators.
virtual void setLOWSBlock(const int i, const int j, const Teuchos::RCP< const LinearOpWithSolveBase< Scalar > > &block)=0
virtual bool acceptsLOWSBlock(const int i, const int j) const =0
Determines if the block (i,j) can be filled with a LOWDB object or not.
Base interface for linear operators with a solve that can be accessed as sub-blocks.
Base interface for linear operators with a solve that are composed out of individual LOB and LOWSB ob...