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

Classes

class  Chain
 Chain class. More...
 
class  Cochain
 Cochain class. More...
 
class  CochainIterator
 
class  Cosimplex
 Cosimplex class. More...
 
class  LocalChain
 LocalChain class. More...
 
class  Simplex
 Simplex class. More...
 

Typedefs

template<class T >
using boundary_t = typename detail::BoundaryType<T>::type
 
template<misc::Specialization< Cochain > CochainType>
using coboundary_t = typename detail::CoboundaryType<CochainType>::type
 
template<class TagToAddToCochain , class CochainTag >
using coboundary_index_t = typename detail::CoboundaryIndex<TagToAddToCochain, CochainTag>::type
 
template<tensor::TensorNatIndex TagToAddToCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType>
using coboundary_tensor_t
 
template<misc::Specialization< Cochain > CochainType>
using codifferential_t = typename detail::CodifferentialType<CochainType>::type
 
template<class TagToRemoveFromCochain , class CochainTag >
using codifferential_index_t
 
template<tensor::TensorNatIndex TagToRemoveFromCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType>
using codifferential_tensor_t
 
template<class T , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using Form = typename detail::FormWrapper<T, ElementType, LayoutStridedPolicy>::type
 
template<misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2>
using hodge_star_domain_t
 
template<std::size_t K, class Dom >
using simplex_for_domain_t = detail::SimplexForDomain<K, Dom>::type
 

Functions

template<misc::Specialization< Kokkos::View > AllocationType, class SimplexType >
KOKKOS_FUNCTION Chain< boundary_t< SimplexType >, typename AllocationType::array_layout, typename AllocationType::memory_space > boundary (AllocationType allocation, SimplexType simplex)
 
template<misc::Specialization< Kokkos::View > AllocationType, class SimplexType >
KOKKOS_FUNCTION Chain< boundary_t< SimplexType >, typename AllocationType::array_layout, typename AllocationType::memory_space > boundary (AllocationType allocation, Chain< SimplexType, typename AllocationType::array_layout, typename AllocationType::memory_space > chain)
 
template<class Head , class... Tail>
 Chain (Head, Tail...) -> Chain< typename Head::value_type, typename Head::array_layout, typename Head::memory_space >
 
template<misc::Specialization< Chain > ChainType>
std::ostream & operator<< (std::ostream &out, ChainType const &chain)
 
template<misc::Specialization< Cochain > CochainType>
KOKKOS_FUNCTION coboundary_t< CochainType > coboundary (CochainType cochain)
 
template<tensor::TensorNatIndex TagToAddToCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, class ExecSpace >
coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > coboundary (ExecSpace const &exec_space, coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > coboundary_tensor, TensorType tensor)
 
template<tensor::TensorNatIndex TagToAddToCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, class ExecSpace >
coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > deriv (ExecSpace const &exec_space, coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > coboundary_tensor, TensorType tensor)
 
template<class ChainType , misc::Specialization< tensor::Tensor > TensorType>
 Cochain (ChainType, TensorType) -> Cochain< ChainType, typename TensorType::value_type, ddc::detail::mdspan_to_kokkos_layout_t< typename TensorType::layout_type > >
 
template<misc::Specialization< Cochain > CochainType>
std::ostream & operator<< (std::ostream &out, CochainType const &cochain)
 
template<tensor::TensorIndex MetricIndex, tensor::TensorNatIndex TagToRemoveFromCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, misc::Specialization< tensor::Tensor > MetricType, class ExecSpace >
codifferential_tensor_t< TagToRemoveFromCochain, CochainTag, TensorType > codifferential (ExecSpace const &exec_space, codifferential_tensor_t< TagToRemoveFromCochain, CochainTag, TensorType > codifferential_tensor, TensorType tensor, MetricType inv_metric)
 
template<misc::Specialization< Cosimplex > CosimplexType>
std::ostream & operator<< (std::ostream &out, CosimplexType const &cosimplex)
 
template<misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2, misc::Specialization< tensor::Tensor > HodgeStarType, class MetricDeterminantType , misc::Specialization< tensor::Tensor > MetricProdType, class ExecSpace >
requires ( misc::Specialization<MetricDeterminantType, ddc::ChunkSpan> || misc::Specialization<MetricDeterminantType, tensor::Tensor>)
HodgeStarType fill_hodge_star (ExecSpace const &exec_space, HodgeStarType hodge_star, MetricDeterminantType metric_determinant, MetricProdType metric_prod)
 
template<tensor::TensorIndex MetricIndex, misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2, misc::Specialization< tensor::Tensor > HodgeStarType, misc::Specialization< tensor::Tensor > MetricType, class ExecSpace >
HodgeStarType fill_hodge_star (ExecSpace const &exec_space, HodgeStarType hodge_star, MetricType metric)
 
template<tensor::TensorIndex MetricIndex, tensor::TensorNatIndex LaplacianDummyIndex, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, misc::Specialization< tensor::Tensor > MetricType, class ExecSpace >
TensorType laplacian (ExecSpace const &exec_space, TensorType laplacian_tensor, TensorType tensor, MetricType inv_metric)
 
template<class Head , misc::NotSpecialization< ddc::DiscreteVector >... Tail>
 LocalChain (Head, Tail...) -> LocalChain< ddc::type_seq_element_t< 0, ddc::detail::TypeSeq< Tail... > >, typename Head::array_layout, typename Head::memory_space >
 
template<std::size_t K, misc::Specialization< ddc::DiscreteDomain > Dom, class ExecSpace >
constexpr auto tangent_basis (ExecSpace const &exec_space)
 
template<class... Tag, class... T>
 Simplex (ddc::DiscreteElement< Tag... >, ddc::DiscreteVector< T... >) -> Simplex< sizeof...(T), Tag... >
 
template<class... Tag, class... T>
 Simplex (ddc::DiscreteElement< Tag... >, ddc::DiscreteVector< T... >, bool) -> Simplex< sizeof...(T), Tag... >
 
template<std::size_t K, class... Tag>
std::ostream & operator<< (std::ostream &out, Simplex< K, Tag... > const &simplex)
 

Typedef Documentation

◆ boundary_t

template<class T >
using sil::exterior::boundary_t = typename detail::BoundaryType<T>::type

Definition at line 36 of file boundary.hpp.

◆ coboundary_t

template<misc::Specialization< Cochain > CochainType>
using sil::exterior::coboundary_t = typename detail::CoboundaryType<CochainType>::type

Definition at line 51 of file coboundary.hpp.

◆ coboundary_index_t

template<class TagToAddToCochain , class CochainTag >
using sil::exterior::coboundary_index_t = typename detail::CoboundaryIndex<TagToAddToCochain, CochainTag>::type

Definition at line 81 of file coboundary.hpp.

◆ coboundary_tensor_t

template<tensor::TensorNatIndex TagToAddToCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType>
using sil::exterior::coboundary_tensor_t
Initial value:
typename detail::CoboundaryTensorType<TagToAddToCochain, CochainTag, TensorType>::type

Definition at line 122 of file coboundary.hpp.

◆ codifferential_t

template<misc::Specialization< Cochain > CochainType>
using sil::exterior::codifferential_t = typename detail::CodifferentialType<CochainType>::type

Definition at line 46 of file codifferential.hpp.

◆ codifferential_index_t

template<class TagToRemoveFromCochain , class CochainTag >
using sil::exterior::codifferential_index_t
Initial value:
typename detail::CodifferentialIndex<TagToRemoveFromCochain, CochainTag>::type

Definition at line 80 of file codifferential.hpp.

◆ codifferential_tensor_t

template<tensor::TensorNatIndex TagToRemoveFromCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType>
using sil::exterior::codifferential_tensor_t
Initial value:
typename detail::
CodifferentialTensorType<TagToRemoveFromCochain, CochainTag, TensorType>::type

Definition at line 122 of file codifferential.hpp.

◆ Form

template<class T , class ElementType = double, class LayoutStridedPolicy = Kokkos::LayoutRight>
using sil::exterior::Form = typename detail::FormWrapper<T, ElementType, LayoutStridedPolicy>::type

Definition at line 44 of file form.hpp.

◆ hodge_star_domain_t

template<misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2>
using sil::exterior::hodge_star_domain_t
Initial value:
ddc::detail::convert_type_seq_to_discrete_domain_t<ddc::type_seq_merge_t<
ddc::detail::TypeSeq<misc::convert_type_seq_to_t<
tensor::TensorFullIndex,
Indices1>>,
std::conditional_t<
(ddc::type_seq_size_v<Indices2> == 0),
ddc::detail::TypeSeq<>,
ddc::detail::TypeSeq<misc::convert_type_seq_to_t<
tensor::TensorAntisymmetricIndex,
Indices2>>>>>

Definition at line 26 of file hodge_star.hpp.

◆ simplex_for_domain_t

template<std::size_t K, class Dom >
using sil::exterior::simplex_for_domain_t = detail::SimplexForDomain<K, Dom>::type

Definition at line 233 of file simplex.hpp.

Function Documentation

◆ boundary() [1/2]

template<misc::Specialization< Kokkos::View > AllocationType, class SimplexType >
KOKKOS_FUNCTION Chain< boundary_t< SimplexType >, typename AllocationType::array_layout, typename AllocationType::memory_space > sil::exterior::boundary ( AllocationType allocation,
SimplexType simplex )

Definition at line 79 of file boundary.hpp.

◆ boundary() [2/2]

template<misc::Specialization< Kokkos::View > AllocationType, class SimplexType >
KOKKOS_FUNCTION Chain< boundary_t< SimplexType >, typename AllocationType::array_layout, typename AllocationType::memory_space > sil::exterior::boundary ( AllocationType allocation,
Chain< SimplexType, typename AllocationType::array_layout, typename AllocationType::memory_space > chain )

Definition at line 111 of file boundary.hpp.

◆ Chain()

template<class Head , class... Tail>
sil::exterior::Chain ( Head ,
Tail...  ) -> Chain< typename Head::value_type, typename Head::array_layout, typename Head::memory_space >

◆ operator<<() [1/4]

template<misc::Specialization< Chain > ChainType>
std::ostream & sil::exterior::operator<< ( std::ostream & out,
ChainType const & chain )

Definition at line 304 of file chain.hpp.

◆ coboundary() [1/2]

template<misc::Specialization< Cochain > CochainType>
KOKKOS_FUNCTION coboundary_t< CochainType > sil::exterior::coboundary ( CochainType cochain)

Definition at line 153 of file coboundary.hpp.

◆ coboundary() [2/2]

template<tensor::TensorNatIndex TagToAddToCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, class ExecSpace >
coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > sil::exterior::coboundary ( ExecSpace const & exec_space,
coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > coboundary_tensor,
TensorType tensor )

Definition at line 197 of file coboundary.hpp.

◆ deriv()

template<tensor::TensorNatIndex TagToAddToCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, class ExecSpace >
coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > sil::exterior::deriv ( ExecSpace const & exec_space,
coboundary_tensor_t< TagToAddToCochain, CochainTag, TensorType > coboundary_tensor,
TensorType tensor )

Definition at line 323 of file coboundary.hpp.

◆ Cochain()

template<class ChainType , misc::Specialization< tensor::Tensor > TensorType>
sil::exterior::Cochain ( ChainType ,
TensorType  ) -> Cochain< ChainType, typename TensorType::value_type, ddc::detail::mdspan_to_kokkos_layout_t< typename TensorType::layout_type > >

◆ operator<<() [2/4]

template<misc::Specialization< Cochain > CochainType>
std::ostream & sil::exterior::operator<< ( std::ostream & out,
CochainType const & cochain )

Definition at line 373 of file cochain.hpp.

◆ codifferential()

template<tensor::TensorIndex MetricIndex, tensor::TensorNatIndex TagToRemoveFromCochain, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, misc::Specialization< tensor::Tensor > MetricType, class ExecSpace >
codifferential_tensor_t< TagToRemoveFromCochain, CochainTag, TensorType > sil::exterior::codifferential ( ExecSpace const & exec_space,
codifferential_tensor_t< TagToRemoveFromCochain, CochainTag, TensorType > codifferential_tensor,
TensorType tensor,
MetricType inv_metric )

Definition at line 167 of file codifferential.hpp.

◆ operator<<() [3/4]

template<misc::Specialization< Cosimplex > CosimplexType>
std::ostream & sil::exterior::operator<< ( std::ostream & out,
CosimplexType const & cosimplex )

Definition at line 107 of file cosimplex.hpp.

◆ fill_hodge_star() [1/2]

template<misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2, misc::Specialization< tensor::Tensor > HodgeStarType, class MetricDeterminantType , misc::Specialization< tensor::Tensor > MetricProdType, class ExecSpace >
requires ( misc::Specialization<MetricDeterminantType, ddc::ChunkSpan> || misc::Specialization<MetricDeterminantType, tensor::Tensor>)
HodgeStarType sil::exterior::fill_hodge_star ( ExecSpace const & exec_space,
HodgeStarType hodge_star,
MetricDeterminantType metric_determinant,
MetricProdType metric_prod )

Definition at line 47 of file hodge_star.hpp.

◆ fill_hodge_star() [2/2]

template<tensor::TensorIndex MetricIndex, misc::Specialization< ddc::detail::TypeSeq > Indices1, misc::Specialization< ddc::detail::TypeSeq > Indices2, misc::Specialization< tensor::Tensor > HodgeStarType, misc::Specialization< tensor::Tensor > MetricType, class ExecSpace >
HodgeStarType sil::exterior::fill_hodge_star ( ExecSpace const & exec_space,
HodgeStarType hodge_star,
MetricType metric )

Definition at line 87 of file hodge_star.hpp.

◆ laplacian()

template<tensor::TensorIndex MetricIndex, tensor::TensorNatIndex LaplacianDummyIndex, tensor::TensorIndex CochainTag, misc::Specialization< tensor::Tensor > TensorType, misc::Specialization< tensor::Tensor > MetricType, class ExecSpace >
TensorType sil::exterior::laplacian ( ExecSpace const & exec_space,
TensorType laplacian_tensor,
TensorType tensor,
MetricType inv_metric )

Definition at line 116 of file laplacian.hpp.

◆ LocalChain()

template<class Head , misc::NotSpecialization< ddc::DiscreteVector >... Tail>
sil::exterior::LocalChain ( Head ,
Tail...  ) -> LocalChain< ddc::type_seq_element_t< 0, ddc::detail::TypeSeq< Tail... > >, typename Head::array_layout, typename Head::memory_space >

◆ tangent_basis()

template<std::size_t K, misc::Specialization< ddc::DiscreteDomain > Dom, class ExecSpace >
auto sil::exterior::tangent_basis ( ExecSpace const & exec_space)
constexpr

Definition at line 411 of file local_chain.hpp.

◆ Simplex() [1/2]

template<class... Tag, class... T>
sil::exterior::Simplex ( ddc::DiscreteElement< Tag... > ,
ddc::DiscreteVector< T... >  ) -> Simplex< sizeof...(T), Tag... >

◆ Simplex() [2/2]

template<class... Tag, class... T>
sil::exterior::Simplex ( ddc::DiscreteElement< Tag... > ,
ddc::DiscreteVector< T... > ,
bool  ) -> Simplex< sizeof...(T), Tag... >

◆ operator<<() [4/4]

template<std::size_t K, class... Tag>
std::ostream & sil::exterior::operator<< ( std::ostream & out,
Simplex< K, Tag... > const & simplex )

Definition at line 236 of file simplex.hpp.