Xpetra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
Xpetra_Vector.hpp
Go to the documentation of this file.
1
// @HEADER
2
//
3
// ***********************************************************************
4
//
5
// Xpetra: A linear algebra interface package
6
// Copyright 2012 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact
39
// Jonathan Hu (jhu@sandia.gov)
40
// Andrey Prokopenko (aprokop@sandia.gov)
41
// Ray Tuminaro (rstumin@sandia.gov)
42
//
43
// ***********************************************************************
44
//
45
// @HEADER
46
#ifndef XPETRA_VECTOR_HPP
47
#define XPETRA_VECTOR_HPP
48
49
/* this file is automatically generated - do not edit (see script/interfaces.py) */
50
51
#include "
Xpetra_ConfigDefs.hpp
"
52
#include "Xpetra_MultiVector.hpp"
53
54
namespace
Xpetra
{
55
56
template
<
class
Scalar,
57
class
LocalOrdinal,
58
class
GlobalOrdinal,
59
class
Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
60
class
Vector
61
:
public
virtual
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
62
{
63
64
public
:
65
66
using
scalar_type
= Scalar;
67
using
local_ordinal_type
= LocalOrdinal;
68
using
global_ordinal_type
= GlobalOrdinal;
69
using
node_type
= Node;
70
71
72
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::dot
;
// overloading, not hiding
73
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::norm1
;
// overloading, not hiding
74
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::norm2
;
// overloading, not hiding
75
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::normInf
;
// overloading, not hiding
76
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::meanValue
;
// overloading, not hiding
77
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::replaceGlobalValue
;
// overloading, not hiding
78
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::sumIntoGlobalValue
;
// overloading, not hiding
79
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::replaceLocalValue
;
// overloading, not hiding
80
using
MultiVector
< Scalar, LocalOrdinal, GlobalOrdinal, Node >
::sumIntoLocalValue
;
// overloading, not hiding
81
82
83
typedef
typename
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::dual_view_type
dual_view_type
;
84
85
template
<
class
TargetDeviceType,
class
AccessType>
86
typename
std::conditional<
87
std::is_same<
88
typename
dual_view_type::t_dev_um::execution_space::memory_space,
89
typename
TargetDeviceType::memory_space>::value,
90
typename
dual_view_type::t_dev_um,
91
typename
dual_view_type::t_host_um>::type
92
getLocalView
(AccessType access_type)
const
{
93
return
this->
MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::template
getLocalView<TargetDeviceType>
(access_type);
94
}
95
97
98
100
virtual
~Vector
() { }
101
103
105
106
108
virtual
void
replaceGlobalValue
(GlobalOrdinal globalRow,
const
Scalar &value)= 0;
109
111
virtual
void
sumIntoGlobalValue
(GlobalOrdinal globalRow,
const
Scalar &value)= 0;
112
114
virtual
void
replaceLocalValue
(LocalOrdinal myRow,
const
Scalar &value)= 0;
115
117
virtual
void
sumIntoLocalValue
(LocalOrdinal myRow,
const
Scalar &value)= 0;
118
120
122
123
125
virtual
Scalar
dot
(
const
Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node >
&a)
const
= 0;
126
128
virtual
typename
Teuchos::ScalarTraits< Scalar >::magnitudeType
norm1
()
const
= 0;
129
131
virtual
typename
Teuchos::ScalarTraits< Scalar >::magnitudeType
norm2
()
const
= 0;
132
134
virtual
typename
Teuchos::ScalarTraits< Scalar >::magnitudeType
normInf
()
const
= 0;
135
137
virtual
Scalar
meanValue
()
const
= 0;
138
140
142
143
145
virtual
std::string
description
()
const
= 0;
146
148
virtual
void
describe
(
Teuchos::FancyOStream
&out,
const
Teuchos::EVerbosityLevel
verbLevel=
Teuchos::Describable::verbLevel_default
)
const
= 0;
149
151
152
};
// Vector class
153
}
// Xpetra namespace
154
155
#define XPETRA_VECTOR_SHORT
156
#endif
// XPETRA_VECTOR_HPP
Xpetra_ConfigDefs.hpp
Teuchos::Describable::verbLevel_default
static const EVerbosityLevel verbLevel_default
Xpetra::MultiVector
Definition
Xpetra_MultiVector_decl.hpp:80
Xpetra::MultiVector::dual_view_type
Kokkos::DualView< impl_scalar_type **, Kokkos::LayoutStride, typename node_type::device_type, Kokkos::MemoryUnmanaged > dual_view_type
Definition
Xpetra_MultiVector_decl.hpp:315
Xpetra::Vector
Definition
Xpetra_Vector.hpp:62
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::dot
virtual LocalOrdinal dot(const Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &a) const=0
Xpetra::Vector::getLocalView
std::conditional< std::is_same< typenamedual_view_type::t_dev_um::execution_space::memory_space, typenameTargetDeviceType::memory_space >::value, typenamedual_view_type::t_dev_um, typenamedual_view_type::t_host_um >::type getLocalView(AccessType access_type) const
Definition
Xpetra_Vector.hpp:92
Xpetra::Vector::~Vector
virtual ~Vector()
Destructor.
Definition
Xpetra_Vector.hpp:100
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::sumIntoGlobalValue
virtual void sumIntoGlobalValue(GlobalOrdinal globalRow, const LocalOrdinal &value)=0
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::norm1
virtual Teuchos::ScalarTraits< LocalOrdinal >::magnitudeType norm1() const=0
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::dual_view_type
Xpetra::MultiVector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::dual_view_type dual_view_type
Definition
Xpetra_Vector.hpp:83
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::replaceLocalValue
virtual void replaceLocalValue(LocalOrdinal myRow, const LocalOrdinal &value)=0
Xpetra::Vector::description
virtual std::string description() const =0
Return a simple one-line description of this object.
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::node_type
Node node_type
Definition
Xpetra_Vector.hpp:69
Xpetra::Vector::describe
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const =0
Print the object with some verbosity level to an FancyOStream object.
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::meanValue
virtual LocalOrdinal meanValue() const=0
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::scalar_type
LocalOrdinal scalar_type
Definition
Xpetra_Vector.hpp:66
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::replaceGlobalValue
virtual void replaceGlobalValue(GlobalOrdinal globalRow, const LocalOrdinal &value)=0
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type
GlobalOrdinal global_ordinal_type
Definition
Xpetra_Vector.hpp:68
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::sumIntoLocalValue
virtual void sumIntoLocalValue(LocalOrdinal myRow, const LocalOrdinal &value)=0
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::normInf
virtual Teuchos::ScalarTraits< LocalOrdinal >::magnitudeType normInf() const=0
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::norm2
virtual Teuchos::ScalarTraits< LocalOrdinal >::magnitudeType norm2() const=0
Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type
LocalOrdinal local_ordinal_type
Definition
Xpetra_Vector.hpp:67
Teuchos::FancyOStream
basic_FancyOStream< char > FancyOStream
Teuchos::EVerbosityLevel
EVerbosityLevel
Xpetra
Xpetra namespace
Definition
Xpetra_BlockedCrsMatrix.hpp:89
Teuchos::ScalarTraits::magnitudeType
T magnitudeType
src
Vector
Xpetra_Vector.hpp
Generated by
1.17.0