VTK-m  2.0
Boundary.h
Go to the documentation of this file.
1 //============================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //============================================================================
10 #ifndef vtk_m_exec_arg_OnBoundary_h
11 #define vtk_m_exec_arg_OnBoundary_h
12 
14 #include <vtkm/exec/arg/Fetch.h>
16 
17 namespace vtkm
18 {
19 namespace exec
20 {
21 namespace arg
22 {
23 
30 {
31 };
32 
33 
37 {
38  static constexpr vtkm::IdComponent INDEX = 1;
40 };
41 
42 template <typename FetchTag, typename ExecObjectType>
43 struct Fetch<FetchTag, vtkm::exec::arg::AspectTagBoundary, ExecObjectType>
44 {
45 
47 
49  template <typename ThreadIndicesType>
50  VTKM_EXEC ValueType Load(const ThreadIndicesType& indices, const ExecObjectType&) const
51  {
52  return indices.GetBoundaryState();
53  }
54 
55  template <typename ThreadIndicesType>
56  VTKM_EXEC void Store(const ThreadIndicesType&, const ExecObjectType&, const ValueType&) const
57  {
58  // Store is a no-op.
59  }
60 };
61 }
62 }
63 } // namespace vtkm::exec::arg
64 
65 #endif //vtk_m_exec_arg_OnBoundary_h
vtkm::exec::arg::Fetch< FetchTag, vtkm::exec::arg::AspectTagBoundary, ExecObjectType >::Store
VTKM_EXEC void Store(const ThreadIndicesType &, const ExecObjectType &, const ValueType &) const
Definition: Boundary.h:56
vtkm::exec::BoundaryState
Provides a neighborhood's placement with respect to the mesh's boundary.
Definition: BoundaryState.h:31
VTKM_EXEC
#define VTKM_EXEC
Definition: ExportMacros.h:51
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
ThreadIndicesPointNeighborhood.h
vtkm::exec::arg::Boundary::INDEX
static constexpr vtkm::IdComponent INDEX
Definition: Boundary.h:38
vtkm::exec::arg::ExecutionSignatureTagBase
The base class for all tags used in an ExecutionSignature.
Definition: ExecutionSignatureTagBase.h:37
vtkm::IdComponent
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
vtkm::exec::arg::Fetch
Class for loading and storing values in thread instance.
Definition: Fetch.h:49
ExecutionSignatureTagBase.h
vtkm::exec::arg::Fetch< FetchTag, vtkm::exec::arg::AspectTagBoundary, ExecObjectType >::Load
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC ValueType Load(const ThreadIndicesType &indices, const ExecObjectType &) const
Definition: Boundary.h:50
Fetch.h
vtkm::exec::arg::Boundary
The ExecutionSignature tag to get if executing on a boundary element.
Definition: Boundary.h:36
vtkm::exec::arg::AspectTagBoundary
Aspect tag to use for getting if a point is a boundary point.
Definition: Boundary.h:29
VTKM_SUPPRESS_EXEC_WARNINGS
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53