Intrepid2
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
Intrepid2::OrientationOperator< DeviceType > Class Template Reference

OrientationOperator. More...

#include <Intrepid2_OrientationOperator.hpp>

Classes

struct  RawView1D
 

Public Types

using UnmanagedOrdinalView = RawView1D< ordinal_type >
 
using UnmanagedDoubleView = RawView1D< double >
 

Public Member Functions

KOKKOS_INLINE_FUNCTION OrientationOperator (UnmanagedOrdinalView rowIndices_, UnmanagedOrdinalView offsetsForRowOrdinal_, UnmanagedOrdinalView packedColumnIndices_, UnmanagedDoubleView packedWeights_)
 general constructor. Sets isWeightedPermutation to false.
 
KOKKOS_INLINE_FUNCTION OrientationOperator (UnmanagedOrdinalView rowIndices_, UnmanagedOrdinalView packedColumnIndices_, UnmanagedDoubleView packedWeights_)
 weighted-permutation constructor. Sets isWeightedPermutation to true.
 

Public Attributes

UnmanagedOrdinalView rowIndices
 
UnmanagedOrdinalView offsetsForRowOrdinal
 
UnmanagedOrdinalView packedColumnIndices
 
UnmanagedDoubleView packedWeights
 
bool isWeightedPermutation
 

Detailed Description

template<class DeviceType>
class Intrepid2::OrientationOperator< DeviceType >

OrientationOperator.

Introduced in 2025, OrientationOperator seeks to make the application of orientations to vectors of local basis coefficients more efficient. Each orientation operator corresponds to a subcell (face or edge) of a basis, and applies the specified orientation map to the part of the basis corresponding to the subcell. The assumption is that the input and output vectors supplied prior to application of any orientation operators are identical, allowing the identity map to be implemented as a no-op.

The operator object is stored in a Kokkos::View and copied between host and device. To keep that safe for non-UVM CUDA builds, it deliberately stores only raw device pointers plus extents, rather than nested Kokkos::View handles.

Definition at line 38 of file Intrepid2_OrientationOperator.hpp.

Member Typedef Documentation

◆ UnmanagedDoubleView

template<class DeviceType >
using Intrepid2::OrientationOperator< DeviceType >::UnmanagedDoubleView = RawView1D<double>

Definition at line 82 of file Intrepid2_OrientationOperator.hpp.

◆ UnmanagedOrdinalView

template<class DeviceType >
using Intrepid2::OrientationOperator< DeviceType >::UnmanagedOrdinalView = RawView1D<ordinal_type>

Definition at line 81 of file Intrepid2_OrientationOperator.hpp.

Constructor & Destructor Documentation

◆ OrientationOperator()

template<class DeviceType >
KOKKOS_INLINE_FUNCTION Intrepid2::OrientationOperator< DeviceType >::OrientationOperator ( )

Definition at line 53 of file Intrepid2_OrientationOperatorDef.hpp.

Member Data Documentation

◆ isWeightedPermutation

template<class DeviceType >
bool Intrepid2::OrientationOperator< DeviceType >::isWeightedPermutation

Definition at line 92 of file Intrepid2_OrientationOperator.hpp.

◆ offsetsForRowOrdinal

template<class DeviceType >
UnmanagedOrdinalView Intrepid2::OrientationOperator< DeviceType >::offsetsForRowOrdinal

Definition at line 86 of file Intrepid2_OrientationOperator.hpp.

◆ packedColumnIndices

template<class DeviceType >
UnmanagedOrdinalView Intrepid2::OrientationOperator< DeviceType >::packedColumnIndices

Definition at line 87 of file Intrepid2_OrientationOperator.hpp.

◆ packedWeights

template<class DeviceType >
UnmanagedDoubleView Intrepid2::OrientationOperator< DeviceType >::packedWeights

Definition at line 88 of file Intrepid2_OrientationOperator.hpp.

◆ rowIndices

template<class DeviceType >
UnmanagedOrdinalView Intrepid2::OrientationOperator< DeviceType >::rowIndices

Definition at line 85 of file Intrepid2_OrientationOperator.hpp.


The documentation for this class was generated from the following files: