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
// Xpetra: A linear algebra interface package
4
//
5
// Copyright 2012 NTESS and the Xpetra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef XPETRA_VECTOR_HPP
11
#define XPETRA_VECTOR_HPP
12
13
/* this file is automatically generated - do not edit (see script/interfaces.py) */
14
15
#include "
Xpetra_ConfigDefs.hpp
"
16
#include "Xpetra_MultiVector.hpp"
17
18
namespace
Xpetra
{
19
20
template
<
class
Scalar,
21
class
LocalOrdinal,
22
class
GlobalOrdinal,
23
class
Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
24
class
Vector
25
:
public
virtual
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node> {
26
public
:
27
using
scalar_type
= Scalar;
28
using
local_ordinal_type
= LocalOrdinal;
29
using
global_ordinal_type
= GlobalOrdinal;
30
using
node_type
= Node;
31
32
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::dot
;
// overloading, not hiding
33
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::norm1
;
// overloading, not hiding
34
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::norm2
;
// overloading, not hiding
35
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::normInf
;
// overloading, not hiding
36
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::meanValue
;
// overloading, not hiding
37
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::replaceGlobalValue
;
// overloading, not hiding
38
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::sumIntoGlobalValue
;
// overloading, not hiding
39
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::replaceLocalValue
;
// overloading, not hiding
40
using
MultiVector
<Scalar, LocalOrdinal, GlobalOrdinal, Node>
::sumIntoLocalValue
;
// overloading, not hiding
41
42
typedef
typename
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::dual_view_type
dual_view_type
;
43
44
template
<
class
TargetDeviceType,
class
AccessType>
45
typename
std::conditional<
46
std::is_same<
47
typename
dual_view_type::t_dev_um::execution_space::memory_space,
48
typename
TargetDeviceType::memory_space>::value,
49
typename
dual_view_type::t_dev_um,
50
typename
dual_view_type::t_host_um>::type
51
getLocalView
(AccessType access_type)
const
{
52
return
this->
MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>::template
getLocalView<TargetDeviceType>
(access_type);
53
}
54
56
57
59
virtual
~Vector
() {}
60
62
64
65
67
virtual
void
replaceGlobalValue
(GlobalOrdinal globalRow,
const
Scalar &value) = 0;
68
70
virtual
void
sumIntoGlobalValue
(GlobalOrdinal globalRow,
const
Scalar &value) = 0;
71
73
virtual
void
replaceLocalValue
(LocalOrdinal myRow,
const
Scalar &value) = 0;
74
76
virtual
void
sumIntoLocalValue
(LocalOrdinal myRow,
const
Scalar &value) = 0;
77
79
81
82
84
virtual
Scalar
dot
(
const
Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
&a)
const
= 0;
85
87
virtual
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
norm1
()
const
= 0;
88
90
virtual
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
norm2
()
const
= 0;
91
93
virtual
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType
normInf
()
const
= 0;
94
96
virtual
Scalar
meanValue
()
const
= 0;
97
99
101
102
104
virtual
std::string
description
()
const
= 0;
105
107
virtual
void
describe
(
Teuchos::FancyOStream
&out,
const
Teuchos::EVerbosityLevel
verbLevel =
Teuchos::Describable::verbLevel_default
)
const
= 0;
108
110
111
};
// Vector class
112
}
// namespace Xpetra
113
114
#define XPETRA_VECTOR_SHORT
115
#endif
// XPETRA_VECTOR_HPP
Xpetra_ConfigDefs.hpp
Teuchos::Describable::verbLevel_default
static const EVerbosityLevel verbLevel_default
Xpetra::MultiVector
Definition
Xpetra_MultiVector_decl.hpp:45
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:243
Xpetra::Vector
Definition
Xpetra_Vector.hpp:25
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:51
Xpetra::Vector::~Vector
virtual ~Vector()
Destructor.
Definition
Xpetra_Vector.hpp:59
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:42
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:30
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:27
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:29
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:28
Teuchos::FancyOStream
basic_FancyOStream< char > FancyOStream
Teuchos::EVerbosityLevel
EVerbosityLevel
Xpetra
Xpetra namespace
Definition
Xpetra_BlockedCrsMatrix_decl.hpp:52
Teuchos::ScalarTraits::magnitudeType
T magnitudeType
src
Vector
Xpetra_Vector.hpp
Generated by
1.17.0