Thyra
Version of the Day
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
adapters
epetra
src
Thyra_EpetraOperatorViewExtractorBase.hpp
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Thyra: Interfaces and Support for Abstract Numerical Algorithms
5
// Copyright (2004) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Roscoe A. Bartlett (bartlettra@ornl.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#ifndef THYRA_EPETRA_OPERATOR_VIEW_EXTRACTOR_BASE_HPP
43
#define THYRA_EPETRA_OPERATOR_VIEW_EXTRACTOR_BASE_HPP
44
45
#include "Thyra_LinearOpBase.hpp"
46
#include "Thyra_EpetraTypes.hpp"
47
48
49
namespace
Thyra {
50
51
59
class
EpetraOperatorViewExtractorBase
:
virtual
public
Teuchos::Describable
60
{
61
public
:
62
65
69
virtual
bool
isCompatible
(
const
LinearOpBase<double>
&fwdOp )
const
= 0;
70
123
virtual
void
getNonconstEpetraOpView
(
124
const
RCP
<
LinearOpBase<double>
> &fwdOp,
125
const
Ptr
<
RCP<Epetra_Operator>
> &epetraOp,
126
const
Ptr<EOpTransp>
&epetraOpTransp,
127
const
Ptr<EApplyEpetraOpAs>
&epetraOpApplyAs,
128
const
Ptr<EAdjointEpetraOp>
&epetraOpAdjointSupport,
129
const
Ptr<double>
&epetraOpScalar
130
)
const
= 0;
131
183
virtual
void
getEpetraOpView
(
184
const
RCP
<
const
LinearOpBase<double>
> &fwdOp,
185
const
Ptr
<
RCP<const Epetra_Operator>
> &epetraOp,
186
const
Ptr<EOpTransp>
&epetraOpTransp,
187
const
Ptr<EApplyEpetraOpAs>
&epetraOpApplyAs,
188
const
Ptr<EAdjointEpetraOp>
&epetraOpAdjointSupport,
189
const
Ptr<double>
&epetraOpScalar
190
)
const
= 0;
191
193
194
};
195
196
197
}
// namespace Thyra
198
199
200
#endif // THYRA_EPETRA_OPERATOR_VIEW_EXTRACTOR_BASE_HPP
Thyra::EpetraOperatorViewExtractorBase::getEpetraOpView
virtual void getEpetraOpView(const RCP< const LinearOpBase< double > > &fwdOp, const Ptr< RCP< const Epetra_Operator > > &epetraOp, const Ptr< EOpTransp > &epetraOpTransp, const Ptr< EApplyEpetraOpAs > &epetraOpApplyAs, const Ptr< EAdjointEpetraOp > &epetraOpAdjointSupport, const Ptr< double > &epetraOpScalar) const =0
Gat a smart pointer to a const Epetra_Operator view of a Thyra::LinearOpBase object and how the objec...
Thyra::EpetraOperatorViewExtractorBase::isCompatible
virtual bool isCompatible(const LinearOpBase< double > &fwdOp) const =0
Check that a LinearOpBase object is compatible with *this factory object.
Thyra::EpetraOperatorViewExtractorBase::getNonconstEpetraOpView
virtual void getNonconstEpetraOpView(const RCP< LinearOpBase< double > > &fwdOp, const Ptr< RCP< Epetra_Operator > > &epetraOp, const Ptr< EOpTransp > &epetraOpTransp, const Ptr< EApplyEpetraOpAs > &epetraOpApplyAs, const Ptr< EAdjointEpetraOp > &epetraOpAdjointSupport, const Ptr< double > &epetraOpScalar) const =0
Gat a smart pointer to a non-const Epetra_Operator view of a Thyra::LinearOpBase object and how the o...
Thyra::LinearOpBase< double >
Teuchos::Describable
Teuchos::RCP
Teuchos::Ptr
Thyra::EpetraOperatorViewExtractorBase
Strategy interface for extracting an Epetra_Operator view out of a Thyra::LinearOpBase<double> object...
Definition:
Thyra_EpetraOperatorViewExtractorBase.hpp:59
Generated by
1.8.5