SimiLie
Loading...
Searching...
No Matches
sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy > Class Template Reference

Cochain class. More...

#include <cochain.hpp>

Collaboration diagram for sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >:
Collaboration graph

Public Types

using memory_space = typename ChainType::memory_space
 
using simplex_type = typename ChainType::simplex_type
 
using chain_type = ChainType
 
using element_type = ElementType
 
using discrete_element_type = ChainType::discrete_element_type
 
using discrete_vector_type = ChainType::discrete_vector_type
 
using values_type = Kokkos::View<ElementType*, LayoutStridedPolicy, memory_space>
 
using cosimplex_type = Cosimplex<simplex_type, element_type>
 
using iterator = CochainIterator<Cochain>
 

Public Member Functions

KOKKOS_DEFAULTED_FUNCTION constexpr Cochain ()=default
 
KOKKOS_DEFAULTED_FUNCTION constexpr Cochain (Cochain const &)=default
 
KOKKOS_DEFAULTED_FUNCTION constexpr Cochain (Cochain &&)=default
 
template<class... T>
requires (sizeof...(T) >= 1 && (std::is_convertible_v<T, double> && ...))
KOKKOS_FUNCTION constexpr Cochain (chain_type chain, values_type allocation, T... value) noexcept
 
KOKKOS_FUNCTION constexpr Cochain (chain_type const &chain, values_type const &values) noexcept
 
template<tensor::TensorIndex Index>
requires (misc::Specialization<Index, tensor::TensorAntisymmetricIndex> || tensor::TensorNatIndex<Index>)
KOKKOS_FUNCTION constexpr Cochain (chain_type const &chain, tensor::Tensor< element_type, ddc::DiscreteDomain< Index >, ddc::detail::kokkos_to_mdspan_layout_t< LayoutStridedPolicy >, memory_space > tensor) noexcept
 
KOKKOS_DEFAULTED_FUNCTION ~Cochain ()=default
 
KOKKOS_DEFAULTED_FUNCTION Cochainoperator= (Cochain const &other)=default
 
KOKKOS_DEFAULTED_FUNCTION Cochainoperator= (Cochain &&other)=default
 
KOKKOS_FUNCTION std::size_t size () noexcept
 
KOKKOS_FUNCTION std::size_t size () const noexcept
 
KOKKOS_FUNCTION std::size_t allocation_size () noexcept
 
KOKKOS_FUNCTION std::size_t allocation_size () const noexcept
 
KOKKOS_FUNCTION chain_type const & chain () const noexcept
 
KOKKOS_FUNCTION chain_type const & values () const noexcept
 
KOKKOS_FUNCTION auto begin ()
 
KOKKOS_FUNCTION auto begin () const
 
KOKKOS_FUNCTION auto end ()
 
KOKKOS_FUNCTION auto end () const
 
KOKKOS_FUNCTION auto cbegin () const
 
KOKKOS_FUNCTION auto cend () const
 
KOKKOS_FUNCTION Cosimplex< simplex_type, element_type > & operator[] (std::size_t i) noexcept
 
KOKKOS_FUNCTION Cosimplex< simplex_type, element_type > const & operator[] (std::size_t i) const noexcept
 
KOKKOS_FUNCTION element_type integrate () noexcept
 
KOKKOS_FUNCTION element_type const integrate () const noexcept
 

Static Public Member Functions

static KOKKOS_FUNCTION constexpr bool is_local () noexcept
 
static KOKKOS_FUNCTION constexpr std::size_t dimension () noexcept
 

Detailed Description

template<class ChainType, class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
requires (misc::Specialization<ChainType, Chain> || misc::Specialization<ChainType, LocalChain>)
class sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >

Cochain class.

Definition at line 29 of file cochain.hpp.

Member Typedef Documentation

◆ memory_space

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::memory_space = typename ChainType::memory_space

Definition at line 32 of file cochain.hpp.

◆ simplex_type

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::simplex_type = typename ChainType::simplex_type

Definition at line 34 of file cochain.hpp.

◆ chain_type

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::chain_type = ChainType

Definition at line 35 of file cochain.hpp.

◆ element_type

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::element_type = ElementType

Definition at line 36 of file cochain.hpp.

◆ discrete_element_type

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::discrete_element_type = ChainType::discrete_element_type

Definition at line 37 of file cochain.hpp.

◆ discrete_vector_type

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::discrete_vector_type = ChainType::discrete_vector_type

Definition at line 38 of file cochain.hpp.

◆ values_type

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::values_type = Kokkos::View<ElementType*, LayoutStridedPolicy, memory_space>

Definition at line 39 of file cochain.hpp.

◆ cosimplex_type

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::cosimplex_type = Cosimplex<simplex_type, element_type>

Definition at line 40 of file cochain.hpp.

◆ iterator

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::iterator = CochainIterator<Cochain>

Definition at line 142 of file cochain.hpp.

Constructor & Destructor Documentation

◆ Cochain() [1/6]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_DEFAULTED_FUNCTION constexpr sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::Cochain ( )
constexprdefault

◆ Cochain() [2/6]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_DEFAULTED_FUNCTION constexpr sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::Cochain ( Cochain< ChainType, ElementType, LayoutStridedPolicy > const & )
constexprdefault

◆ Cochain() [3/6]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_DEFAULTED_FUNCTION constexpr sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::Cochain ( Cochain< ChainType, ElementType, LayoutStridedPolicy > && )
constexprdefault

◆ Cochain() [4/6]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
template<class... T>
requires (sizeof...(T) >= 1 && (std::is_convertible_v<T, double> && ...))
KOKKOS_FUNCTION constexpr sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::Cochain ( chain_type chain,
values_type allocation,
T... value )
inlineexplicitconstexprnoexcept

Definition at line 56 of file cochain.hpp.

◆ Cochain() [5/6]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION constexpr sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::Cochain ( chain_type const & chain,
values_type const & values )
inlineexplicitconstexprnoexcept

Definition at line 69 of file cochain.hpp.

◆ Cochain() [6/6]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
template<tensor::TensorIndex Index>
requires (misc::Specialization<Index, tensor::TensorAntisymmetricIndex> || tensor::TensorNatIndex<Index>)
KOKKOS_FUNCTION constexpr sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::Cochain ( chain_type const & chain,
tensor::Tensor< element_type, ddc::DiscreteDomain< Index >, ddc::detail::kokkos_to_mdspan_layout_t< LayoutStridedPolicy >, memory_space > tensor )
inlineexplicitconstexprnoexcept

Definition at line 82 of file cochain.hpp.

◆ ~Cochain()

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_DEFAULTED_FUNCTION sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::~Cochain ( )
default

Member Function Documentation

◆ operator=() [1/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_DEFAULTED_FUNCTION Cochain & sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::operator= ( Cochain< ChainType, ElementType, LayoutStridedPolicy > const & other)
default

◆ operator=() [2/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_DEFAULTED_FUNCTION Cochain & sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::operator= ( Cochain< ChainType, ElementType, LayoutStridedPolicy > && other)
default

◆ is_local()

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
static KOKKOS_FUNCTION constexpr bool sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::is_local ( )
inlinestaticconstexprnoexcept

Definition at line 102 of file cochain.hpp.

◆ dimension()

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
static KOKKOS_FUNCTION constexpr std::size_t sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::dimension ( )
inlinestaticconstexprnoexcept

Definition at line 107 of file cochain.hpp.

◆ size() [1/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION std::size_t sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::size ( )
inlinenoexcept

Definition at line 112 of file cochain.hpp.

◆ size() [2/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION std::size_t sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::size ( ) const
inlinenoexcept

Definition at line 117 of file cochain.hpp.

◆ allocation_size() [1/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION std::size_t sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::allocation_size ( )
inlinenoexcept

Definition at line 122 of file cochain.hpp.

◆ allocation_size() [2/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION std::size_t sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::allocation_size ( ) const
inlinenoexcept

Definition at line 127 of file cochain.hpp.

◆ chain()

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION chain_type const & sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::chain ( ) const
inlinenoexcept

Definition at line 132 of file cochain.hpp.

◆ values()

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION chain_type const & sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::values ( ) const
inlinenoexcept

Definition at line 137 of file cochain.hpp.

◆ begin() [1/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION auto sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::begin ( )
inline

Definition at line 144 of file cochain.hpp.

◆ begin() [2/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION auto sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::begin ( ) const
inline

Definition at line 149 of file cochain.hpp.

◆ end() [1/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION auto sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::end ( )
inline

Definition at line 154 of file cochain.hpp.

◆ end() [2/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION auto sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::end ( ) const
inline

Definition at line 159 of file cochain.hpp.

◆ cbegin()

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION auto sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::cbegin ( ) const
inline

Definition at line 164 of file cochain.hpp.

◆ cend()

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION auto sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::cend ( ) const
inline

Definition at line 169 of file cochain.hpp.

◆ operator[]() [1/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION Cosimplex< simplex_type, element_type > & sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::operator[] ( std::size_t i)
inlinenoexcept

Definition at line 174 of file cochain.hpp.

◆ operator[]() [2/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION Cosimplex< simplex_type, element_type > const & sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::operator[] ( std::size_t i) const
inlinenoexcept

Definition at line 180 of file cochain.hpp.

◆ integrate() [1/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION element_type sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::integrate ( )
inlinenoexcept

Definition at line 187 of file cochain.hpp.

◆ integrate() [2/2]

template<class ChainType , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
KOKKOS_FUNCTION element_type const sil::exterior::Cochain< ChainType, ElementType, LayoutStridedPolicy >::integrate ( ) const
inlinenoexcept

Definition at line 200 of file cochain.hpp.


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