Classes | |
struct | Contravariant |
struct | ContravariantCharacter |
struct | Covariant |
struct | CovariantCharacter |
struct | Dummy |
struct | MetricIndex1 |
struct | MetricIndex2 |
struct | prime |
struct | ScalarIndex |
class | Tensor< ElementType, ddc::DiscreteDomain< DDim... >, LayoutStridedPolicy, MemorySpace > |
Tensor class. More... | |
class | TensorAccessor |
struct | TensorAntisymmetricIndex |
struct | TensorDiagonalIndex |
struct | TensorFullIndex |
struct | TensorIdentityIndex |
struct | TensorLeviCivitaIndex |
struct | TensorLorentzianSignIndex |
struct | TensorNaturalIndex |
struct | TensorSymmetricIndex |
struct | TensorYoungTableauIndex |
Concepts | |
concept | TensorIndex |
concept | TensorNatIndex |
Typedefs | |
template<class T > | |
using | to_tensor_antisymmetric_index_t = typename detail::ToTensorAntisymmetricIndex<T>::type |
template<class T > | |
using | lower_t = detail::Lower<T>::type |
template<class T > | |
using | upper_t = detail::Upper<T>::type |
template<class T > | |
using | swap_character_t = detail::SwapCharacter<T>::type |
template<class Index > | |
using | uncharacterize_t = detail::Uncharacterize<Index>::type |
template<misc::Specialization< Tensor > TensorType> | |
using | uncharacterize_tensor_t |
template<std::size_t Dimension, std::size_t Rank> | |
using | dummy_index_t |
template<class MetricIndex > | |
using | metric_index_1 = ddc::type_seq_element_t<0, ddc::to_type_seq_t<typename MetricIndex::subindices_domain_t>> |
template<class MetricIndex > | |
using | metric_index_2 = ddc::type_seq_element_t<1, ddc::to_type_seq_t<typename MetricIndex::subindices_domain_t>> |
template<misc::Specialization< ddc::DiscreteDomain > Dom, TensorNatIndex Index1, TensorNatIndex Index2> | |
using | relabelize_metric_in_domain_t |
template<misc::Specialization< Tensor > TensorType, TensorNatIndex Index1, TensorNatIndex Index2> | |
using | relabelize_metric_t |
template<TensorIndex MetricIndex, misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2> | |
using | metric_prod_domain_t |
template<misc::Specialization< ddc::DiscreteDomain > NonMetricDom, TensorIndex MetricIndex, misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2, class LayoutStridedPolicy , class MemorySpace > | |
using | metric_prod_t |
template<misc::Specialization< Tensor > MetricType> | |
using | invert_metric_t |
template<TensorNatIndex Index> | |
using | second = prime<Index, 2> |
template<misc::Specialization< ddc::detail::TypeSeq > Indices, std::size_t I = 1> | |
using | primes = detail::Primes<Indices, I>::type |
template<misc::Specialization< ddc::detail::TypeSeq > Indices> | |
using | seconds = primes<Indices, 2> |
template<class T , TensorIndex OldIndex, TensorIndex NewIndex> | |
using | relabelize_index_in_t = detail::RelabelizeIndexInType<T, OldIndex, NewIndex>::type |
template<misc::Specialization< Tensor > TensorType, TensorIndex OldIndex, TensorIndex NewIndex> | |
using | relabelize_index_of_t = detail::RelabelizeIndexOfType<TensorType, OldIndex, NewIndex>::type |
template<class T , class OldIndices , class NewIndices > | |
using | relabelize_indices_in_t |
template<misc::Specialization< Tensor > TensorType, misc::Specialization< ddc::detail::TypeSeq > OldIndices, misc::Specialization< ddc::detail::TypeSeq > NewIndices> | |
using | relabelize_indices_of_t = detail::RelabelizeIndicesOfType<TensorType, OldIndices, NewIndices>::type |
template<TensorIndex Index> | |
using | natural_domain_t = typename detail::NaturalDomainType<Index>::type |
template<misc::Specialization< ddc::DiscreteDomain > Dom> | |
using | tensor_accessor_for_domain_t = detail::TensorAccessorForDomain<Dom>::type |
template<misc::Specialization< ddc::DiscreteDomain > Dom1, misc::Specialization< ddc::DiscreteDomain > Dom2> | |
using | natural_tensor_prod_domain_t = detail::NaturalTensorProdDomain<Dom1, Dom2>::type |
template<class T > | |
using | subindices_domain_t = detail::SubindicesDomain<T>::type |
Functions | |
template<misc::Specialization< Tensor > TensorType> | |
constexpr uncharacterize_tensor_t< TensorType > | uncharacterize_tensor (TensorType tensor) |
template<misc::Specialization< Kokkos::View > ViewType> | |
KOKKOS_FUNCTION ViewType::value_type | determinant (const ViewType &matrix) |
template<misc::Specialization< Tensor > TensorType> | |
TensorType::element_type | determinant (TensorType tensor) |
template<TensorNatIndex Index1, TensorNatIndex Index2, class Dom > | |
constexpr relabelize_metric_in_domain_t< Dom, Index1, Index2 > | relabelize_metric_in_domain (Dom metric_dom) |
template<TensorNatIndex Index1, TensorNatIndex Index2, misc::Specialization< Tensor > TensorType> | |
constexpr relabelize_metric_t< TensorType, Index1, Index2 > | relabelize_metric (TensorType tensor) |
template<TensorIndex MetricIndex, misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2, misc::Specialization< Tensor > MetricType, class ExecSpace > | |
metric_prod_t< typename MetricType::non_indices_domain_t, MetricIndex, Indices1, Indices2, typename MetricType::layout_type, typename MetricType::memory_space > | fill_metric_prod (ExecSpace const &exec_space, metric_prod_t< typename MetricType::non_indices_domain_t, MetricIndex, Indices1, Indices2, typename MetricType::layout_type, typename MetricType::memory_space > metric_prod, MetricType metric) |
template<misc::Specialization< Tensor > MetricType, misc::Specialization< Tensor > TensorType, class ExecSpace > | |
relabelize_indices_of_t< TensorType, swap_character_t< detail::non_primes< typename MetricType::accessor_t::natural_domain_t > >, detail::non_primes< typename MetricType::accessor_t::natural_domain_t > > | inplace_apply_metric (ExecSpace const &exec_space, TensorType tensor, MetricType metric_prod) |
template<TensorIndex MetricIndex, TensorNatIndex... Index1, misc::Specialization< Tensor > MetricType, misc::Specialization< Tensor > TensorType, class ExecSpace > | |
relabelize_indices_of_t< TensorType, swap_character_t< ddc::detail::TypeSeq< Index1... > >, ddc::detail::TypeSeq< Index1... > > | inplace_apply_metric (ExecSpace const &exec_space, TensorType tensor, MetricType metric) |
template<TensorIndex MetricIndex, misc::Specialization< Tensor > MetricType, class ExecSpace > | |
invert_metric_t< MetricType > | fill_inverse_metric (ExecSpace const &exec_space, invert_metric_t< MetricType > inv_metric, MetricType metric) |
template<class OldIndex , class NewIndex , class T > | |
constexpr relabelize_index_in_t< T, OldIndex, NewIndex > | relabelize_index_in (T t) |
template<TensorIndex OldIndex, TensorIndex NewIndex, class ElementType , class... DDim, class LayoutStridedPolicy , class MemorySpace > | |
constexpr relabelize_index_of_t< Tensor< ElementType, ddc::DiscreteDomain< DDim... >, LayoutStridedPolicy, MemorySpace >, OldIndex, NewIndex > | relabelize_index_of (Tensor< ElementType, ddc::DiscreteDomain< DDim... >, LayoutStridedPolicy, MemorySpace > old_tensor) |
template<class OldIndices , class NewIndices , class T > | |
constexpr relabelize_indices_in_t< T, OldIndices, NewIndices > | relabelize_indices_in (T t) |
template<misc::Specialization< ddc::detail::TypeSeq > OldIndices, misc::Specialization< ddc::detail::TypeSeq > NewIndices, misc::Specialization< Tensor > Tensor> | |
constexpr relabelize_indices_of_t< Tensor, OldIndices, NewIndices > | relabelize_indices_of (Tensor tensor) |
template<class ElementType , class SupportType , class Allocator > | |
Tensor (ddc::Chunk< ElementType, SupportType, Allocator >) -> Tensor< ElementType, SupportType, Kokkos::layout_right, typename Allocator::memory_space > | |
template<class ElementType , class SupportType , class LayoutStridedPolicy , class MemorySpace > | |
Tensor (ddc::ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace >) -> Tensor< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > | |
template<misc::Specialization< ddc::DiscreteDomain > Dom1, misc::Specialization< ddc::DiscreteDomain > Dom2> | |
natural_tensor_prod_domain_t< Dom1, Dom2 > | natural_tensor_prod_domain (Dom1 dom1, Dom2 dom2) |
template<TensorNatIndex... ProdDDim, TensorNatIndex... DDim1, TensorNatIndex... DDim2, class ElementType , class LayoutStridedPolicy , class MemorySpace > | |
Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > | tensor_prod (Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > prod_tensor, Tensor< ElementType, ddc::DiscreteDomain< DDim1... >, LayoutStridedPolicy, MemorySpace > tensor1, Tensor< ElementType, ddc::DiscreteDomain< DDim2... >, LayoutStridedPolicy, MemorySpace > tensor2) |
template<misc::Specialization< Tensor > TensorType> | |
std::ostream & | operator<< (std::ostream &os, TensorType const &tensor) |
template<class ProdDDims , class Indices1 , class Indices2 > | |
constexpr void | check_tensors_compatibility () |
template<class... ProdDDim, class... Index1, class... Index2, class ElementType , class LayoutStridedPolicy , class MemorySpace > requires ( ((!TensorNatIndex<ProdDDim> || ...) || (!TensorNatIndex<Index2> || ...) || (!TensorNatIndex<Index1> || ...)) ) | |
Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > KOKKOS_FUNCTION | tensor_prod (Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > prod_tensor, Tensor< ElementType, ddc::DiscreteDomain< Index1... >, LayoutStridedPolicy, MemorySpace > tensor1, Tensor< ElementType, ddc::DiscreteDomain< Index2... >, LayoutStridedPolicy, MemorySpace > tensor2) |
template<class YoungTableauIndex , class... Id> | |
tensor::Tensor< double, ddc::DiscreteDomain< YoungTableauIndex >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > | compress (tensor::Tensor< double, ddc::DiscreteDomain< YoungTableauIndex >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > compressed, tensor::Tensor< double, ddc::DiscreteDomain< Id... >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > tensor) |
template<class YoungTableauIndex , class... Id> | |
tensor::Tensor< double, ddc::DiscreteDomain< Id... >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > | uncompress (tensor::Tensor< double, ddc::DiscreteDomain< Id... >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > uncompressed, tensor::Tensor< double, ddc::DiscreteDomain< YoungTableauIndex >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > tensor) |
Variables | |
template<class T > | |
bool constexpr | is_covariant_v = detail::IsCovariant<T>::value |
template<misc::Specialization< ddc::detail::TypeSeq > Seq> | |
bool constexpr | are_covariant_v = detail::AreCovariant<Seq>::value |
template<class T > | |
bool constexpr | is_contravariant_v = detail::IsContravariant<T>::value |
template<misc::Specialization< ddc::detail::TypeSeq > Seq> | |
bool constexpr | are_contravariant_v = detail::AreContravariant<Seq>::value |
template<class T1 , class T2 > | |
constexpr bool | is_same_character_v = detail::IsSameCharacter<T1, T2>::value |
template<class T1 , class T2 > | |
constexpr bool | are_same_characters_v = detail::AreSameCharacters<T1, T2>::value |
template<class T1 , class T2 > | |
constexpr bool | are_different_characters_v = detail::AreDifferentCharacters<T1, T2>::value |
struct sil::tensor::ContravariantCharacter |
Definition at line 21 of file character.hpp.
struct sil::tensor::CovariantCharacter |
Definition at line 17 of file character.hpp.
struct sil::tensor::Dummy |
Definition at line 17 of file dummy_index.hpp.
using sil::tensor::to_tensor_antisymmetric_index_t = typename detail::ToTensorAntisymmetricIndex<T>::type |
Definition at line 222 of file antisymmetric_tensor.hpp.
using sil::tensor::lower_t = detail::Lower<T>::type |
Definition at line 80 of file character.hpp.
using sil::tensor::upper_t = detail::Upper<T>::type |
Definition at line 108 of file character.hpp.
using sil::tensor::swap_character_t = detail::SwapCharacter<T>::type |
Definition at line 136 of file character.hpp.
using sil::tensor::uncharacterize_t = detail::Uncharacterize<Index>::type |
Definition at line 174 of file character.hpp.
using sil::tensor::uncharacterize_tensor_t |
Definition at line 179 of file character.hpp.
using sil::tensor::dummy_index_t |
Definition at line 48 of file dummy_index.hpp.
using sil::tensor::metric_index_1 = ddc::type_seq_element_t<0, ddc::to_type_seq_t<typename MetricIndex::subindices_domain_t>> |
Definition at line 34 of file metric.hpp.
using sil::tensor::metric_index_2 = ddc::type_seq_element_t<1, ddc::to_type_seq_t<typename MetricIndex::subindices_domain_t>> |
Definition at line 42 of file metric.hpp.
using sil::tensor::relabelize_metric_in_domain_t |
Definition at line 71 of file metric.hpp.
using sil::tensor::relabelize_metric_t |
Definition at line 94 of file metric.hpp.
using sil::tensor::metric_prod_domain_t |
Definition at line 142 of file metric.hpp.
using sil::tensor::metric_prod_t |
Definition at line 193 of file metric.hpp.
using sil::tensor::invert_metric_t |
Definition at line 394 of file metric.hpp.
using sil::tensor::second = prime<Index, 2> |
using sil::tensor::primes = detail::Primes<Indices, I>::type |
using sil::tensor::seconds = primes<Indices, 2> |
using sil::tensor::relabelize_index_in_t = detail::RelabelizeIndexInType<T, OldIndex, NewIndex>::type |
Definition at line 53 of file relabelization.hpp.
using sil::tensor::relabelize_index_of_t = detail::RelabelizeIndexOfType<TensorType, OldIndex, NewIndex>::type |
Definition at line 119 of file relabelization.hpp.
using sil::tensor::relabelize_indices_in_t |
Definition at line 217 of file relabelization.hpp.
using sil::tensor::relabelize_indices_of_t = detail::RelabelizeIndicesOfType<TensorType, OldIndices, NewIndices>::type |
Definition at line 357 of file relabelization.hpp.
using sil::tensor::natural_domain_t = typename detail::NaturalDomainType<Index>::type |
Definition at line 141 of file tensor_impl.hpp.
using sil::tensor::tensor_accessor_for_domain_t = detail::TensorAccessorForDomain<Dom>::type |
Definition at line 330 of file tensor_impl.hpp.
using sil::tensor::natural_tensor_prod_domain_t = detail::NaturalTensorProdDomain<Dom1, Dom2>::type |
Definition at line 797 of file tensor_impl.hpp.
using sil::tensor::subindices_domain_t = detail::SubindicesDomain<T>::type |
Definition at line 41 of file tensor_prod.hpp.
|
constexpr |
Definition at line 185 of file character.hpp.
KOKKOS_FUNCTION ViewType::value_type sil::tensor::determinant | ( | const ViewType & | matrix | ) |
Definition at line 18 of file determinant.hpp.
TensorType::element_type sil::tensor::determinant | ( | TensorType | tensor | ) |
Definition at line 73 of file determinant.hpp.
|
constexpr |
Definition at line 81 of file metric.hpp.
|
constexpr |
Definition at line 104 of file metric.hpp.
metric_prod_t< typename MetricType::non_indices_domain_t, MetricIndex, Indices1, Indices2, typename MetricType::layout_type, typename MetricType::memory_space > sil::tensor::fill_metric_prod | ( | ExecSpace const & | exec_space, |
metric_prod_t< typename MetricType::non_indices_domain_t, MetricIndex, Indices1, Indices2, typename MetricType::layout_type, typename MetricType::memory_space > | metric_prod, | ||
MetricType | metric ) |
Definition at line 283 of file metric.hpp.
relabelize_indices_of_t< TensorType, swap_character_t< detail::non_primes< typename MetricType::accessor_t::natural_domain_t > >, detail::non_primes< typename MetricType::accessor_t::natural_domain_t > > sil::tensor::inplace_apply_metric | ( | ExecSpace const & | exec_space, |
TensorType | tensor, | ||
MetricType | metric_prod ) |
Definition at line 321 of file metric.hpp.
relabelize_indices_of_t< TensorType, swap_character_t< ddc::detail::TypeSeq< Index1... > >, ddc::detail::TypeSeq< Index1... > > sil::tensor::inplace_apply_metric | ( | ExecSpace const & | exec_space, |
TensorType | tensor, | ||
MetricType | metric ) |
Definition at line 366 of file metric.hpp.
invert_metric_t< MetricType > sil::tensor::fill_inverse_metric | ( | ExecSpace const & | exec_space, |
invert_metric_t< MetricType > | inv_metric, | ||
MetricType | metric ) |
Definition at line 401 of file metric.hpp.
|
constexpr |
Definition at line 88 of file relabelization.hpp.
|
constexpr |
Definition at line 132 of file relabelization.hpp.
|
constexpr |
Definition at line 268 of file relabelization.hpp.
|
constexpr |
Definition at line 363 of file relabelization.hpp.
sil::tensor::Tensor | ( | ddc::Chunk< ElementType, SupportType, Allocator > | ) | -> Tensor< ElementType, SupportType, Kokkos::layout_right, typename Allocator::memory_space > |
sil::tensor::Tensor | ( | ddc::ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > | ) | -> Tensor< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > |
natural_tensor_prod_domain_t< Dom1, Dom2 > sil::tensor::natural_tensor_prod_domain | ( | Dom1 | dom1, |
Dom2 | dom2 ) |
Definition at line 802 of file tensor_impl.hpp.
Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > sil::tensor::tensor_prod | ( | Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > | prod_tensor, |
Tensor< ElementType, ddc::DiscreteDomain< DDim1... >, LayoutStridedPolicy, MemorySpace > | tensor1, | ||
Tensor< ElementType, ddc::DiscreteDomain< DDim2... >, LayoutStridedPolicy, MemorySpace > | tensor2 ) |
Definition at line 863 of file tensor_impl.hpp.
std::ostream & sil::tensor::operator<< | ( | std::ostream & | os, |
TensorType const & | tensor ) |
Definition at line 947 of file tensor_impl.hpp.
|
constexpr |
Definition at line 91 of file tensor_prod.hpp.
Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > KOKKOS_FUNCTION sil::tensor::tensor_prod | ( | Tensor< ElementType, ddc::DiscreteDomain< ProdDDim... >, LayoutStridedPolicy, MemorySpace > | prod_tensor, |
Tensor< ElementType, ddc::DiscreteDomain< Index1... >, LayoutStridedPolicy, MemorySpace > | tensor1, | ||
Tensor< ElementType, ddc::DiscreteDomain< Index2... >, LayoutStridedPolicy, MemorySpace > | tensor2 ) |
Definition at line 182 of file tensor_prod.hpp.
tensor::Tensor< double, ddc::DiscreteDomain< YoungTableauIndex >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > sil::tensor::compress | ( | tensor::Tensor< double, ddc::DiscreteDomain< YoungTableauIndex >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > | compressed, |
tensor::Tensor< double, ddc::DiscreteDomain< Id... >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > | tensor ) |
Definition at line 136 of file young_tableau_tensor.hpp.
tensor::Tensor< double, ddc::DiscreteDomain< Id... >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > sil::tensor::uncompress | ( | tensor::Tensor< double, ddc::DiscreteDomain< Id... >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > | uncompressed, |
tensor::Tensor< double, ddc::DiscreteDomain< YoungTableauIndex >, Kokkos::layout_right, Kokkos::DefaultHostExecutionSpace::memory_space > | tensor ) |
Definition at line 160 of file young_tableau_tensor.hpp.
|
constexpr |
Definition at line 214 of file character.hpp.
|
constexpr |
Definition at line 230 of file character.hpp.
|
constexpr |
Definition at line 253 of file character.hpp.
|
constexpr |
Definition at line 269 of file character.hpp.
|
constexpr |
Definition at line 304 of file character.hpp.
|
constexpr |
Definition at line 327 of file character.hpp.
|
constexpr |
Definition at line 357 of file character.hpp.