A class which holds multiple (scalar) fields in order to represent a vector field.
More...
|
using | field_type = Field< ElementType, IdxRangeType, MemorySpace, LayoutStridedPolicy > |
| Type describing the object which can be extracted from this VectorField using the get<> function.
|
|
using | element_type = typename base_type::element_type |
| The type of an element in one of the Fields comprising the VectorField.
|
|
using | span_type = VectorField< ElementType, IdxRangeType, NDTag, MemorySpace, LayoutStridedPolicy > |
| A type which can hold a modifiable reference to a VectorFieldMem. More...
|
|
using | view_type = VectorField< const ElementType, IdxRangeType, NDTag, MemorySpace, LayoutStridedPolicy > |
| A type which can hold a constant reference to a VectorFieldMem. More...
|
|
using | layout_type = LayoutStridedPolicy |
| Type describing the way in which the data is laid out in the Field memory. More...
|
|
using | discrete_domain_type = typename base_type::discrete_domain_type |
| The type of the index range on which the field is defined. More...
|
|
using | index_range_type = discrete_domain_type |
| The IdxRange on which the fields in this object are defined.
|
|
using | memory_space = typename field_type::memory_space |
| The type of the memory space where the field is saved (CPU vs GPU).
|
|
|
constexpr KOKKOS_DEFAULTED_FUNCTION | VectorField ()=default |
| Empty VectorField.
|
|
KOKKOS_DEFAULTED_FUNCTION | ~VectorField ()=default |
| VectorField destructor.
|
|
constexpr KOKKOS_DEFAULTED_FUNCTION | VectorField (VectorField const &other)=default |
| Constructs a new VectorField by copy, yields a new view to the same data. More...
|
|
constexpr KOKKOS_DEFAULTED_FUNCTION | VectorField (VectorField &&other)=default |
| Constructs a new VectorField by move. More...
|
|
template<class OElementType , class Allocator > |
constexpr KOKKOS_FUNCTION | VectorField (VectorFieldMem< OElementType, IdxRangeType, NDTag, Allocator > &other) noexcept |
| Constructs a new VectorField from a VectorFieldMem, yields a new view to the same data. More...
|
|
template<class OElementType , class SFINAEElementType = ElementType, class = std::enable_if_t<std::is_const_v<SFINAEElementType>>, class Allocator > |
constexpr KOKKOS_FUNCTION | VectorField (VectorFieldMem< OElementType, IdxRangeType, NDTag, Allocator > const &other) noexcept |
| Constructs a new VectorField from a VectorFieldMem, yields a new view to the same data. More...
|
|
template<class OElementType , class Allocator > |
| VectorField (VectorFieldMem< OElementType, IdxRangeType, NDTag, Allocator > &&other)=delete |
|
template<class OElementType > |
constexpr KOKKOS_FUNCTION | VectorField (VectorField< OElementType, index_range_type, NDTag, MemorySpace, LayoutStridedPolicy > const &other) noexcept |
| Constructs a new VectorField by copy of a chunk, yields a new view to the same data. More...
|
|
template<class... OElementType, class = std::enable_if_t< std::conjunction_v<std::is_same<OElementType, ElementType>...>>, class = std::enable_if_t<sizeof...(OElementType) == base_type::NDims>> |
KOKKOS_FUNCTION | VectorField (index_range_type const &idx_range, OElementType *... ptr) |
| Constructs a new VectorField from scratch. More...
|
|
template<class... FieldType, class = std::enable_if_t<std::conjunction_v<std::is_same<FieldType, field_type>...>>> |
constexpr KOKKOS_FUNCTION | VectorField (FieldType... fields) |
| Constructs a new VectorField containing references to Field. More...
|
|
constexpr KOKKOS_DEFAULTED_FUNCTION VectorField & | operator= (VectorField const &other)=default |
| Copy-assigns a new value to this VectorField, yields a new view to the same data. More...
|
|
constexpr KOKKOS_DEFAULTED_FUNCTION VectorField & | operator= (VectorField &&other)=default |
| Move-assigns a new value to this VectorField. More...
|
|
constexpr view_type | span_cview () const |
| Get a constant reference to the vector field referred to by this vector field span. More...
|
|
constexpr span_type | span_view () const |
| Get a modifiable reference to the vector field referred to by this vector field span. More...
|
|
template<class... ODDims> |
KOKKOS_FUNCTION element_type | operator() (Idx< ODDims > const &... delems) const noexcept |
| Element access using a list of Idxs. More...
|
|
template<class... ODDims, class = std::enable_if_t<sizeof...(ODDims) != 1>> |
KOKKOS_FUNCTION element_type | operator() (Idx< ODDims... > const &delems) const noexcept |
| Element access using a multi-dimensional Idx. More...
|
|
template<class... QueryDDims> |
constexpr auto | operator[] (Idx< QueryDDims... > const &slice_spec) |
| Slice out some dimensions. More...
|
|
template<class... QueryDDims> |
constexpr auto | operator[] (IdxRange< QueryDDims... > const &oidx_range) |
| Slice out some dimensions. More...
|
|
template<class QueryTag > |
constexpr chunk_span_type | get () const noexcept |
| Get the Field describing the component in the QueryTag direction. More...
|
|
template<class ElementType, class IdxRangeType, class NDTag, class MemorySpace, class LayoutStridedPolicy>
class VectorField< ElementType, IdxRangeType, NDTag, MemorySpace, LayoutStridedPolicy >
A class which holds multiple (scalar) fields in order to represent a vector field.
Pre-declaration of VectorField.
- Template Parameters
-
ElementType | The data type of a scalar element of the vector field. |
IdxRangeType | |
NDTag | A NDTag describing the dimensions described by the scalar elements of a vector field element. |
MemorySpace | The memory space (CPU/GPU). |
LayoutStridedPolicy | The memory layout. See DDC. |