Tpetra parallel linear algebra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
Tpetra_LocalOperator.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Tpetra: Templated Linear Algebra Services Package
4
//
5
// Copyright 2008 NTESS and the Tpetra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef TPETRA_LOCALOPERATOR_HPP
11
#define TPETRA_LOCALOPERATOR_HPP
12
13
#include "
Tpetra_LocalOperator_fwd.hpp
"
14
#include "Teuchos_BLAS_types.hpp"
15
#if KOKKOS_VERSION >= 40799
16
#include "KokkosKernels_ArithTraits.hpp"
17
#else
18
#include "Kokkos_ArithTraits.hpp"
19
#endif
20
#include <type_traits>
21
22
namespace
Tpetra
{
23
32
template
<
class
Scalar,
class
Device>
33
class
LocalOperator
{
34
public
:
35
#if KOKKOS_VERSION >= 40799
36
using
scalar_type =
typename
KokkosKernels::ArithTraits<Scalar>::val_type;
37
#else
38
using
scalar_type =
typename
Kokkos::ArithTraits<Scalar>::val_type;
39
#endif
40
using
array_layout = Kokkos::LayoutLeft;
41
using
device_type =
42
Kokkos::Device<
typename
Device::execution_space,
43
typename
Device::memory_space>;
44
45
virtual
~LocalOperator
() =
default
;
46
47
virtual
void
48
apply(Kokkos::View<
const
scalar_type**, array_layout,
49
device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> >
50
X,
51
Kokkos::View<scalar_type**, array_layout,
52
device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> >
53
Y,
54
const
Teuchos::ETransp mode,
55
const
scalar_type alpha,
56
const
scalar_type beta)
const
= 0;
57
58
virtual
bool
hasTransposeApply()
const
{
return
false
; }
59
};
60
61
}
// namespace Tpetra
62
63
#endif
// TPETRA_LOCALOPERATOR_HPP
Tpetra_LocalOperator_fwd.hpp
Forward declaration of Tpetra::LocalCrsMatrixOperator.
Tpetra::LocalOperator
Abstract interface for local operators (e.g., matrices and preconditioners).
Definition
Tpetra_LocalOperator.hpp:33
Tpetra
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Generated by
1.17.0