Anasazi
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
AnasaziOperator.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Anasazi: Block Eigensolvers Package
5
// Copyright 2004 Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8
// the U.S. Government retains certain rights in this software.
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 Michael A. Heroux (maherou@sandia.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
45
46
#ifndef ANASAZI_OPERATOR_HPP
47
#define ANASAZI_OPERATOR_HPP
48
49
#include "
AnasaziConfigDefs.hpp
"
50
#include "
AnasaziOperatorTraits.hpp
"
51
#include "
AnasaziMultiVec.hpp
"
52
#include "Teuchos_ScalarTraits.hpp"
53
54
55
namespace
Anasazi
{
56
66
template
<
class
ScalarType>
67
class
Operator
{
68
public
:
70
71
72
Operator
() {};
73
75
virtual
~Operator
() {};
77
79
80
84
virtual
void
Apply
(
const
MultiVec<ScalarType>
& x,
MultiVec<ScalarType>
& y )
const
= 0;
85
87
};
88
90
//
91
// Implementation of the Anasazi::OperatorTraits for Anasazi::Operator
92
// and Anasazi::MultiVec.
93
//
95
103
104
template
<
class
ScalarType>
105
class
OperatorTraits
< ScalarType,
MultiVec
<ScalarType>,
Operator
<ScalarType> >
106
{
107
public
:
108
110
111
115
static
void
Apply
(
const
Operator<ScalarType>
& Op,
116
const
MultiVec<ScalarType>
& x,
117
MultiVec<ScalarType>
& y )
118
{ Op.
Apply
( x, y ); }
119
121
122
};
123
124
}
// end of Anasazi namespace
125
126
#endif
127
128
// end of file AnasaziOperator.hpp
AnasaziConfigDefs.hpp
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
AnasaziMultiVec.hpp
Interface for multivectors used by Anasazi' linear solvers.
AnasaziOperatorTraits.hpp
Virtual base class which defines basic traits for the operator type.
Anasazi::MultiVec
Interface for multivectors used by Anasazi's linear solvers.
Definition
AnasaziMultiVec.hpp:90
Anasazi::OperatorTraits< ScalarType, MultiVec< ScalarType >, Operator< ScalarType > >::Apply
static void Apply(const Operator< ScalarType > &Op, const MultiVec< ScalarType > &x, MultiVec< ScalarType > &y)
This method takes the Anasazi::MultiVec x and applies the Anasazi::Operator Op to it resulting in the...
Definition
AnasaziOperator.hpp:115
Anasazi::OperatorTraits
Virtual base class which defines basic traits for the operator type.
Definition
AnasaziOperatorTraits.hpp:85
Anasazi::Operator
Anasazi's templated virtual class for constructing an operator that can interface with the OperatorTr...
Definition
AnasaziOperator.hpp:67
Anasazi::Operator::~Operator
virtual ~Operator()
Destructor.
Definition
AnasaziOperator.hpp:75
Anasazi::Operator::Operator
Operator()
Default constructor.
Definition
AnasaziOperator.hpp:72
Anasazi::Operator::Apply
virtual void Apply(const MultiVec< ScalarType > &x, MultiVec< ScalarType > &y) const =0
This method takes the Anasazi::MultiVec x and applies the operator to it resulting in the Anasazi::Mu...
Anasazi
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.
Generated by
1.17.0