CoordinatePackND< Coordinates > Class Template Reference#

DiFfRG: DiFfRG::CoordinatePackND< Coordinates > Class Template Reference
DiFfRG
DiFfRG::CoordinatePackND< Coordinates > Class Template Reference

Utility class for combining multiple coordinate systems into one. More...

#include <coordinates.hh>

Public Types

using ctype = typename device::tuple_element<0, device::tuple<Coordinates...>>::type::ctype
 

Public Member Functions

 CoordinatePackND (Coordinates... coordinates)
 Construct a new CoordinatePackND object.
 
template<typename... I>
requires (std::is_convertible_v<std::decay_t<I>, size_t> && ...)
KOKKOS_FORCEINLINE_FUNCTION device::array< ctype, dimforward (I &&...i) const
 
template<typename IT >
KOKKOS_FORCEINLINE_FUNCTION device::array< ctype, dimforward (const device::array< IT, dim > &coords) const
 
template<typename... I, int... Is>
device::array< ctype, dim > KOKKOS_FORCEINLINE_FUNCTION forward_impl (device::integer_sequence< int, Is... >, I &&...i) const
 
template<typename... I>
KOKKOS_FORCEINLINE_FUNCTION device::array< ctype, sizeof...(I)> backward (I &&...i) const
 
template<typename... I, int... Is>
device::array< ctype, sizeof...(I)> KOKKOS_FORCEINLINE_FUNCTION backward_impl (device::integer_sequence< int, Is... >, I &&...i) const
 
template<size_t i>
const auto & get_coordinates () const
 
size_t KOKKOS_FORCEINLINE_FUNCTION size () const
 
device::array< size_t, sizeof...(Coordinates)> KOKKOS_FORCEINLINE_FUNCTION sizes () const
 
device::array< size_t, sizeof...(Coordinates)> KOKKOS_INLINE_FUNCTION from_linear_index (size_t s) const
 
std::string to_string () const
 

Static Public Attributes

static constexpr size_t dim = sizeof...(Coordinates)
 

Protected Attributes

const device::tuple< Coordinates... > coordinates
 

Friends

template<typename... Coordinates2>
bool operator== (const CoordinatePackND< Coordinates... > &r, const CoordinatePackND< Coordinates2... > &l)
 

Detailed Description

template<typename... Coordinates>
class DiFfRG::CoordinatePackND< Coordinates >

Utility class for combining multiple coordinate systems into one.

Template Parameters
Coordinates...the coordinate systems to combine

Member Typedef Documentation

◆ ctype

template<typename... Coordinates>
using DiFfRG::CoordinatePackND< Coordinates >::ctype = typename device::tuple_element<0, device::tuple<Coordinates...>>::type::ctype

Constructor & Destructor Documentation

◆ CoordinatePackND()

template<typename... Coordinates>
DiFfRG::CoordinatePackND< Coordinates >::CoordinatePackND ( Coordinates... coordinates)
inline

Construct a new CoordinatePackND object.

Parameters
coordinatesthe coordinate systems to combine

Member Function Documentation

◆ backward()

template<typename... Coordinates>
template<typename... I>
KOKKOS_FORCEINLINE_FUNCTION device::array< ctype, sizeof...(I)> DiFfRG::CoordinatePackND< Coordinates >::backward ( I &&... i) const
inline

◆ backward_impl()

template<typename... Coordinates>
template<typename... I, int... Is>
device::array< ctype, sizeof...(I)> KOKKOS_FORCEINLINE_FUNCTION DiFfRG::CoordinatePackND< Coordinates >::backward_impl ( device::integer_sequence< int, Is... > ,
I &&... i ) const
inline

◆ forward() [1/2]

template<typename... Coordinates>
template<typename IT >
KOKKOS_FORCEINLINE_FUNCTION device::array< ctype, dim > DiFfRG::CoordinatePackND< Coordinates >::forward ( const device::array< IT, dim > & coords) const
inline

◆ forward() [2/2]

template<typename... Coordinates>
template<typename... I>
requires (std::is_convertible_v<std::decay_t<I>, size_t> && ...)
KOKKOS_FORCEINLINE_FUNCTION device::array< ctype, dim > DiFfRG::CoordinatePackND< Coordinates >::forward ( I &&... i) const
inline

◆ forward_impl()

template<typename... Coordinates>
template<typename... I, int... Is>
device::array< ctype, dim > KOKKOS_FORCEINLINE_FUNCTION DiFfRG::CoordinatePackND< Coordinates >::forward_impl ( device::integer_sequence< int, Is... > ,
I &&... i ) const
inline

◆ from_linear_index()

template<typename... Coordinates>
device::array< size_t, sizeof...(Coordinates)> KOKKOS_INLINE_FUNCTION DiFfRG::CoordinatePackND< Coordinates >::from_linear_index ( size_t s) const
inline

◆ get_coordinates()

template<typename... Coordinates>
template<size_t i>
const auto & DiFfRG::CoordinatePackND< Coordinates >::get_coordinates ( ) const
inline

◆ size()

template<typename... Coordinates>
size_t KOKKOS_FORCEINLINE_FUNCTION DiFfRG::CoordinatePackND< Coordinates >::size ( ) const
inline

◆ sizes()

template<typename... Coordinates>
device::array< size_t, sizeof...(Coordinates)> KOKKOS_FORCEINLINE_FUNCTION DiFfRG::CoordinatePackND< Coordinates >::sizes ( ) const
inline

◆ to_string()

template<typename... Coordinates>
std::string DiFfRG::CoordinatePackND< Coordinates >::to_string ( ) const
inline

Friends And Related Symbol Documentation

◆ operator==

template<typename... Coordinates>
template<typename... Coordinates2>
bool operator== ( const CoordinatePackND< Coordinates... > & r,
const CoordinatePackND< Coordinates2... > & l )
friend

Member Data Documentation

◆ coordinates

template<typename... Coordinates>
const device::tuple<Coordinates...> DiFfRG::CoordinatePackND< Coordinates >::coordinates
protected

◆ dim

template<typename... Coordinates>
size_t DiFfRG::CoordinatePackND< Coordinates >::dim = sizeof...(Coordinates)
staticconstexpr

The documentation for this class was generated from the following file:
  • /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/coordinates/coordinates.hh