Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
sacado
kokkos
pce
Kokkos_View_UQ_PCE_Utils.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Stokhos Package
5
// Copyright (2009) 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 Eric T. Phipps (etphipp@sandia.gov).
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#ifndef KOKKOS_VIEW_UQ_PCE_UTILS_HPP
43
#define KOKKOS_VIEW_UQ_PCE_UTILS_HPP
44
45
#include "
Kokkos_View_Utils.hpp
"
46
47
namespace
Sacado
{
48
namespace
UQ
{
49
template
<
typename
Storage >
50
class
PCE
;
51
}
52
}
53
54
namespace
Kokkos
{
55
56
// Type name for a local, unmanaged view with possibly a different static size
57
template
<
typename
ViewType,
58
unsigned
LocalSize,
59
unsigned
Rank = ViewType::rank,
60
bool
isStatic = ViewType::is_static>
61
struct
LocalUQPCEView
{};
62
63
template
<
typename
ViewType,
64
unsigned
LocalSize>
65
struct
LocalUQPCEView
< ViewType, LocalSize, 1,
true
> {
66
typedef
typename
ViewType::value_type
vector_type
;
67
typedef
typename
ViewType::array_layout
array_layout
;
68
typedef
typename
ViewType::execution_space
execution_space
;
69
typedef
typename
ViewType::device_type
device_type
;
70
typedef
typename
vector_type::storage_type
storage_type
;
71
typedef
typename
storage_type::template apply_N<LocalSize>
StorageApply
;
72
typedef
typename
StorageApply::type
local_storage_type
;
73
typedef
Sacado::UQ::PCE< local_storage_type >
local_value_type
;
74
75
typedef
Kokkos::View<
local_value_type
*,
76
array_layout
,
77
device_type
,
78
Kokkos::MemoryUnmanaged >
type
;
79
};
80
81
template
<
typename
ViewType,
82
unsigned
LocalSize>
83
struct
LocalUQPCEView
<ViewType, LocalSize, 1, false> {
84
typedef
typename
ViewType::value_type
vector_type
;
85
typedef
typename
ViewType::array_layout
array_layout
;
86
typedef
typename
ViewType::execution_space
execution_space
;
87
typedef
typename
ViewType::device_type
device_type
;
88
89
typedef
Kokkos::View<
vector_type
*,
90
array_layout
,
91
device_type
,
92
Kokkos::MemoryUnmanaged >
type
;
93
};
94
95
namespace
Impl
{
96
97
template
<
class
OldStorageType ,
class
Device >
98
struct
RebindStokhosStorageDevice
<
Sacado
::UQ::PCE< OldStorageType > , Device >
99
{
100
typedef
typename
101
OldStorageType::template apply<
102
typename
OldStorageType::ordinal_type ,
103
typename
OldStorageType::value_type ,
104
Device >
105
NewStorageApply
;
106
107
typedef
typename
NewStorageApply::type
NewStorageType
;
108
typedef
typename
Sacado::UQ::PCE< OldStorageType >::template
apply< NewStorageType >
NewVectorApply
;
109
110
typedef
typename
NewVectorApply::type
type
;
111
};
112
113
template
<
class
OldStorageType ,
class
Device >
114
struct
RebindStokhosStorageDevice
< const
Sacado
::UQ::PCE< OldStorageType > , Device >
115
{
116
typedef
typename
117
OldStorageType::template apply<
118
typename
OldStorageType::ordinal_type ,
119
typename
OldStorageType::value_type ,
120
Device >
121
NewStorageApply
;
122
123
typedef
typename
NewStorageApply::type
NewStorageType
;
124
typedef
typename
Sacado::UQ::PCE< OldStorageType >::template
apply< NewStorageType >
NewVectorApply
;
125
126
typedef
const
typename
NewVectorApply::type
type
;
127
};
128
129
}
// namespace Impl
130
131
// Whether a given type is a view with scalar type Sacado::UQ::PCE
132
template
<
typename
view_type>
133
struct
is_view_uq_pce
{
static
const
bool
value
=
false
; };
134
135
// Typename of the Cijk tensor in a view
136
template
<
typename
view_type,
typename
Enabled =
void
>
137
struct
CijkType
{};
138
139
}
// namespace Kokkos
140
141
#endif
// KOKKOS_UQ_PCE_UTILS_HPP
Kokkos_View_Utils.hpp
true
true
Definition
Stokhos_LanczosUnitTest.cpp:268
Sacado::UQ::PCE
Definition
Kokkos_View_UQ_PCE_Fwd.hpp:65
Kokkos::Impl
Definition
Kokkos_View_Utils.hpp:61
Kokkos
Definition
Stokhos_CrsMatrix.hpp:663
Sacado::UQ
Definition
Kokkos_View_UQ_PCE_Fwd.hpp:63
Sacado
Definition
Kokkos_View_UQ_PCE_Fwd.hpp:62
Kokkos::CijkType
Definition
Kokkos_View_UQ_PCE_Utils.hpp:137
Kokkos::Impl::RebindStokhosStorageDevice< Sacado::UQ::PCE< OldStorageType >, Device >::NewStorageApply
OldStorageType::template apply< typename OldStorageType::ordinal_type, typename OldStorageType::value_type, Device > NewStorageApply
Definition
Kokkos_View_UQ_PCE_Utils.hpp:105
Kokkos::Impl::RebindStokhosStorageDevice< Sacado::UQ::PCE< OldStorageType >, Device >::type
NewVectorApply::type type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:110
Kokkos::Impl::RebindStokhosStorageDevice< Sacado::UQ::PCE< OldStorageType >, Device >::NewVectorApply
Sacado::UQ::PCE< OldStorageType >::template apply< NewStorageType > NewVectorApply
Definition
Kokkos_View_UQ_PCE_Utils.hpp:108
Kokkos::Impl::RebindStokhosStorageDevice< Sacado::UQ::PCE< OldStorageType >, Device >::NewStorageType
NewStorageApply::type NewStorageType
Definition
Kokkos_View_UQ_PCE_Utils.hpp:107
Kokkos::Impl::RebindStokhosStorageDevice< const Sacado::UQ::PCE< OldStorageType >, Device >::NewVectorApply
Sacado::UQ::PCE< OldStorageType >::template apply< NewStorageType > NewVectorApply
Definition
Kokkos_View_UQ_PCE_Utils.hpp:124
Kokkos::Impl::RebindStokhosStorageDevice< const Sacado::UQ::PCE< OldStorageType >, Device >::NewStorageType
NewStorageApply::type NewStorageType
Definition
Kokkos_View_UQ_PCE_Utils.hpp:123
Kokkos::Impl::RebindStokhosStorageDevice< const Sacado::UQ::PCE< OldStorageType >, Device >::NewStorageApply
OldStorageType::template apply< typename OldStorageType::ordinal_type, typename OldStorageType::value_type, Device > NewStorageApply
Definition
Kokkos_View_UQ_PCE_Utils.hpp:121
Kokkos::Impl::RebindStokhosStorageDevice< const Sacado::UQ::PCE< OldStorageType >, Device >::type
const NewVectorApply::type type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:126
Kokkos::Impl::RebindStokhosStorageDevice
Definition
Kokkos_View_Utils.hpp:71
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, false >::type
Kokkos::View< vector_type *, array_layout, device_type, Kokkos::MemoryUnmanaged > type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:92
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, false >::device_type
ViewType::device_type device_type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:87
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, false >::vector_type
ViewType::value_type vector_type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:84
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, false >::array_layout
ViewType::array_layout array_layout
Definition
Kokkos_View_UQ_PCE_Utils.hpp:85
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, false >::execution_space
ViewType::execution_space execution_space
Definition
Kokkos_View_UQ_PCE_Utils.hpp:86
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::type
Kokkos::View< local_value_type *, array_layout, device_type, Kokkos::MemoryUnmanaged > type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:78
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::array_layout
ViewType::array_layout array_layout
Definition
Kokkos_View_UQ_PCE_Utils.hpp:67
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::StorageApply
storage_type::template apply_N< LocalSize > StorageApply
Definition
Kokkos_View_UQ_PCE_Utils.hpp:71
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::execution_space
ViewType::execution_space execution_space
Definition
Kokkos_View_UQ_PCE_Utils.hpp:68
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::vector_type
ViewType::value_type vector_type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:66
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::storage_type
vector_type::storage_type storage_type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:70
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::device_type
ViewType::device_type device_type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:69
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::local_value_type
Sacado::UQ::PCE< local_storage_type > local_value_type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:73
Kokkos::LocalUQPCEView< ViewType, LocalSize, 1, true >::local_storage_type
StorageApply::type local_storage_type
Definition
Kokkos_View_UQ_PCE_Utils.hpp:72
Kokkos::LocalUQPCEView
Definition
Kokkos_View_UQ_PCE_Utils.hpp:61
Kokkos::is_view_uq_pce
Definition
Kokkos_View_UQ_PCE_Utils.hpp:133
Kokkos::is_view_uq_pce::value
static const bool value
Definition
Kokkos_View_UQ_PCE_Utils.hpp:133
Generated by
1.17.0