SimiLie
Loading...
Searching...
No Matches
sil::tensor Namespace Reference

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
 

Class Documentation

◆ sil::tensor::ContravariantCharacter

struct sil::tensor::ContravariantCharacter

Definition at line 21 of file character.hpp.

Collaboration diagram for sil::tensor::ContravariantCharacter:
Collaboration graph

◆ sil::tensor::CovariantCharacter

struct sil::tensor::CovariantCharacter

Definition at line 17 of file character.hpp.

Collaboration diagram for sil::tensor::CovariantCharacter:
Collaboration graph

◆ sil::tensor::Dummy

struct sil::tensor::Dummy
template<std::size_t I>
struct sil::tensor::Dummy< I >

Definition at line 17 of file dummy_index.hpp.

Collaboration diagram for sil::tensor::Dummy< I >:
Collaboration graph

Typedef Documentation

◆ to_tensor_antisymmetric_index_t

template<class T >
using sil::tensor::to_tensor_antisymmetric_index_t = typename detail::ToTensorAntisymmetricIndex<T>::type

Definition at line 222 of file antisymmetric_tensor.hpp.

◆ lower_t

template<class T >
using sil::tensor::lower_t = detail::Lower<T>::type

Definition at line 80 of file character.hpp.

◆ upper_t

template<class T >
using sil::tensor::upper_t = detail::Upper<T>::type

Definition at line 108 of file character.hpp.

◆ swap_character_t

template<class T >
using sil::tensor::swap_character_t = detail::SwapCharacter<T>::type

Definition at line 136 of file character.hpp.

◆ uncharacterize_t

template<class Index >
using sil::tensor::uncharacterize_t = detail::Uncharacterize<Index>::type

Definition at line 174 of file character.hpp.

◆ uncharacterize_tensor_t

template<misc::Specialization< Tensor > TensorType>
using sil::tensor::uncharacterize_tensor_t
Initial value:
TensorType,
ddc::to_type_seq_t<typename TensorType::accessor_t::natural_domain_t>,
uncharacterize_t<ddc::to_type_seq_t<typename TensorType::accessor_t::natural_domain_t>>>
detail::RelabelizeIndicesOfType< TensorType, OldIndices, NewIndices >::type relabelize_indices_of_t

Definition at line 179 of file character.hpp.

◆ dummy_index_t

template<std::size_t Dimension, std::size_t Rank>
using sil::tensor::dummy_index_t
Initial value:
detail::
DummyIndex<std::make_index_sequence<Dimension>, std::make_index_sequence<Rank>>::type

Definition at line 48 of file dummy_index.hpp.

◆ metric_index_1

template<class MetricIndex >
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.

◆ metric_index_2

template<class MetricIndex >
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.

◆ relabelize_metric_in_domain_t

template<misc::Specialization< ddc::DiscreteDomain > Dom, TensorNatIndex Index1, TensorNatIndex Index2>
using sil::tensor::relabelize_metric_in_domain_t
Initial value:
Dom,
ddc::detail::TypeSeq<
typename detail::ConvertTypeSeqToMetricIndex1<
typename Index1::type_seq_dimensions>::type,
typename detail::ConvertTypeSeqToMetricIndex2<
typename Index2::type_seq_dimensions>::type>,
ddc::detail::TypeSeq<uncharacterize_t<Index1>, uncharacterize_t<Index2>>>
typename detail::RelabelizeIndicesInType< T, OldIndices, NewIndices >::type relabelize_indices_in_t

Definition at line 71 of file metric.hpp.

◆ relabelize_metric_t

template<misc::Specialization< Tensor > TensorType, TensorNatIndex Index1, TensorNatIndex Index2>
using sil::tensor::relabelize_metric_t
Initial value:
TensorType,
ddc::detail::TypeSeq<
typename detail::ConvertTypeSeqToMetricIndex1<
typename Index1::type_seq_dimensions>::type,
typename detail::ConvertTypeSeqToMetricIndex2<
typename Index2::type_seq_dimensions>::type>,
ddc::detail::TypeSeq<uncharacterize_t<Index1>, uncharacterize_t<Index2>>>

Definition at line 94 of file metric.hpp.

◆ metric_prod_domain_t

template<TensorIndex MetricIndex, misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2>
using sil::tensor::metric_prod_domain_t
Initial value:
typename detail::MetricProdDomainType<MetricIndex, Indices1, Indices2>::type

Definition at line 142 of file metric.hpp.

◆ metric_prod_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 sil::tensor::metric_prod_t
Initial value:
typename detail::MetricProdType<
NonMetricDom,
MetricIndex,
Indices1,
Indices2,
LayoutStridedPolicy,
MemorySpace>::type

Definition at line 193 of file metric.hpp.

◆ invert_metric_t

template<misc::Specialization< Tensor > MetricType>
using sil::tensor::invert_metric_t
Initial value:
MetricType,
ddc::to_type_seq_t<typename MetricType::accessor_t::natural_domain_t>,
swap_character_t<ddc::to_type_seq_t<typename MetricType::accessor_t::natural_domain_t>>>

Definition at line 394 of file metric.hpp.

◆ second

template<TensorNatIndex Index>
using sil::tensor::second = prime<Index, 2>

Definition at line 22 of file prime.hpp.

◆ primes

template<misc::Specialization< ddc::detail::TypeSeq > Indices, std::size_t I = 1>
using sil::tensor::primes = detail::Primes<Indices, I>::type

Definition at line 50 of file prime.hpp.

◆ seconds

template<misc::Specialization< ddc::detail::TypeSeq > Indices>
using sil::tensor::seconds = primes<Indices, 2>

Definition at line 53 of file prime.hpp.

◆ relabelize_index_in_t

template<class T , TensorIndex OldIndex, TensorIndex NewIndex>
using sil::tensor::relabelize_index_in_t = detail::RelabelizeIndexInType<T, OldIndex, NewIndex>::type

Definition at line 53 of file relabelization.hpp.

◆ relabelize_index_of_t

template<misc::Specialization< Tensor > TensorType, TensorIndex OldIndex, TensorIndex NewIndex>
using sil::tensor::relabelize_index_of_t = detail::RelabelizeIndexOfType<TensorType, OldIndex, NewIndex>::type

Definition at line 119 of file relabelization.hpp.

◆ relabelize_indices_in_t

template<class T , class OldIndices , class NewIndices >
using sil::tensor::relabelize_indices_in_t
Initial value:
typename detail::RelabelizeIndicesInType<T, OldIndices, NewIndices>::type

Definition at line 217 of file relabelization.hpp.

◆ relabelize_indices_of_t

template<misc::Specialization< Tensor > TensorType, misc::Specialization< ddc::detail::TypeSeq > OldIndices, misc::Specialization< ddc::detail::TypeSeq > NewIndices>
using sil::tensor::relabelize_indices_of_t = detail::RelabelizeIndicesOfType<TensorType, OldIndices, NewIndices>::type

Definition at line 357 of file relabelization.hpp.

◆ natural_domain_t

template<TensorIndex Index>
using sil::tensor::natural_domain_t = typename detail::NaturalDomainType<Index>::type

Definition at line 141 of file tensor_impl.hpp.

◆ tensor_accessor_for_domain_t

template<misc::Specialization< ddc::DiscreteDomain > Dom>
using sil::tensor::tensor_accessor_for_domain_t = detail::TensorAccessorForDomain<Dom>::type

Definition at line 330 of file tensor_impl.hpp.

◆ natural_tensor_prod_domain_t

template<misc::Specialization< ddc::DiscreteDomain > Dom1, misc::Specialization< ddc::DiscreteDomain > Dom2>
using sil::tensor::natural_tensor_prod_domain_t = detail::NaturalTensorProdDomain<Dom1, Dom2>::type

Definition at line 797 of file tensor_impl.hpp.

◆ subindices_domain_t

template<class T >
using sil::tensor::subindices_domain_t = detail::SubindicesDomain<T>::type

Definition at line 41 of file tensor_prod.hpp.

Function Documentation

◆ uncharacterize_tensor()

template<misc::Specialization< Tensor > TensorType>
uncharacterize_tensor_t< TensorType > sil::tensor::uncharacterize_tensor ( TensorType tensor)
constexpr

Definition at line 185 of file character.hpp.

◆ determinant() [1/2]

template<misc::Specialization< Kokkos::View > ViewType>
KOKKOS_FUNCTION ViewType::value_type sil::tensor::determinant ( const ViewType & matrix)

Definition at line 18 of file determinant.hpp.

◆ determinant() [2/2]

template<misc::Specialization< Tensor > TensorType>
TensorType::element_type sil::tensor::determinant ( TensorType tensor)

Definition at line 73 of file determinant.hpp.

◆ relabelize_metric_in_domain()

template<TensorNatIndex Index1, TensorNatIndex Index2, class Dom >
relabelize_metric_in_domain_t< Dom, Index1, Index2 > sil::tensor::relabelize_metric_in_domain ( Dom metric_dom)
constexpr

Definition at line 81 of file metric.hpp.

◆ relabelize_metric()

template<TensorNatIndex Index1, TensorNatIndex Index2, misc::Specialization< Tensor > TensorType>
relabelize_metric_t< TensorType, Index1, Index2 > sil::tensor::relabelize_metric ( TensorType tensor)
constexpr

Definition at line 104 of file metric.hpp.

◆ fill_metric_prod()

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 > 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.

◆ inplace_apply_metric() [1/2]

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 > > sil::tensor::inplace_apply_metric ( ExecSpace const & exec_space,
TensorType tensor,
MetricType metric_prod )

Definition at line 321 of file metric.hpp.

◆ inplace_apply_metric() [2/2]

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... > > sil::tensor::inplace_apply_metric ( ExecSpace const & exec_space,
TensorType tensor,
MetricType metric )

Definition at line 366 of file metric.hpp.

◆ fill_inverse_metric()

template<TensorIndex MetricIndex, misc::Specialization< Tensor > MetricType, class ExecSpace >
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.

◆ relabelize_index_in()

template<class OldIndex , class NewIndex , class T >
relabelize_index_in_t< T, OldIndex, NewIndex > sil::tensor::relabelize_index_in ( T t)
constexpr

Definition at line 88 of file relabelization.hpp.

◆ relabelize_index_of()

template<TensorIndex OldIndex, TensorIndex NewIndex, class ElementType , class... DDim, class LayoutStridedPolicy , class MemorySpace >
relabelize_index_of_t< Tensor< ElementType, ddc::DiscreteDomain< DDim... >, LayoutStridedPolicy, MemorySpace >, OldIndex, NewIndex > sil::tensor::relabelize_index_of ( Tensor< ElementType, ddc::DiscreteDomain< DDim... >, LayoutStridedPolicy, MemorySpace > old_tensor)
constexpr

Definition at line 132 of file relabelization.hpp.

◆ relabelize_indices_in()

template<class OldIndices , class NewIndices , class T >
relabelize_indices_in_t< T, OldIndices, NewIndices > sil::tensor::relabelize_indices_in ( T t)
constexpr

Definition at line 268 of file relabelization.hpp.

◆ relabelize_indices_of()

template<misc::Specialization< ddc::detail::TypeSeq > OldIndices, misc::Specialization< ddc::detail::TypeSeq > NewIndices, misc::Specialization< Tensor > Tensor>
relabelize_indices_of_t< Tensor, OldIndices, NewIndices > sil::tensor::relabelize_indices_of ( Tensor tensor)
constexpr

Definition at line 363 of file relabelization.hpp.

◆ Tensor() [1/2]

template<class ElementType , class SupportType , class Allocator >
sil::tensor::Tensor ( ddc::Chunk< ElementType, SupportType, Allocator > ) -> Tensor< ElementType, SupportType, Kokkos::layout_right, typename Allocator::memory_space >

◆ Tensor() [2/2]

template<class ElementType , class SupportType , class LayoutStridedPolicy , class MemorySpace >
sil::tensor::Tensor ( ddc::ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > ) -> Tensor< ElementType, SupportType, LayoutStridedPolicy, MemorySpace >

◆ natural_tensor_prod_domain()

template<misc::Specialization< ddc::DiscreteDomain > Dom1, misc::Specialization< ddc::DiscreteDomain > Dom2>
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_prod() [1/2]

template<TensorNatIndex... ProdDDim, TensorNatIndex... DDim1, TensorNatIndex... DDim2, class ElementType , class LayoutStridedPolicy , class MemorySpace >
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.

◆ operator<<()

template<misc::Specialization< Tensor > TensorType>
std::ostream & sil::tensor::operator<< ( std::ostream & os,
TensorType const & tensor )

Definition at line 947 of file tensor_impl.hpp.

◆ check_tensors_compatibility()

template<class ProdDDims , class Indices1 , class Indices2 >
void sil::tensor::check_tensors_compatibility ( )
constexpr

Definition at line 91 of file tensor_prod.hpp.

◆ tensor_prod() [2/2]

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 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.

◆ compress()

template<class YoungTableauIndex , class... Id>
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.

◆ uncompress()

template<class YoungTableauIndex , class... Id>
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.

Variable Documentation

◆ is_covariant_v

template<class T >
bool constexpr sil::tensor::is_covariant_v = detail::IsCovariant<T>::value
constexpr

Definition at line 214 of file character.hpp.

◆ are_covariant_v

template<misc::Specialization< ddc::detail::TypeSeq > Seq>
bool constexpr sil::tensor::are_covariant_v = detail::AreCovariant<Seq>::value
constexpr

Definition at line 230 of file character.hpp.

◆ is_contravariant_v

template<class T >
bool constexpr sil::tensor::is_contravariant_v = detail::IsContravariant<T>::value
constexpr

Definition at line 253 of file character.hpp.

◆ are_contravariant_v

template<misc::Specialization< ddc::detail::TypeSeq > Seq>
bool constexpr sil::tensor::are_contravariant_v = detail::AreContravariant<Seq>::value
constexpr

Definition at line 269 of file character.hpp.

◆ is_same_character_v

template<class T1 , class T2 >
bool sil::tensor::is_same_character_v = detail::IsSameCharacter<T1, T2>::value
constexpr

Definition at line 304 of file character.hpp.

◆ are_same_characters_v

template<class T1 , class T2 >
bool sil::tensor::are_same_characters_v = detail::AreSameCharacters<T1, T2>::value
constexpr

Definition at line 327 of file character.hpp.

◆ are_different_characters_v

template<class T1 , class T2 >
bool sil::tensor::are_different_characters_v = detail::AreDifferentCharacters<T1, T2>::value
constexpr

Definition at line 357 of file character.hpp.