11#include "../ArrayTransformer.hpp"
36 template <rowsize _vec_size = 1, rowsize _row_max = _vec_size, rowsize _align = NoAlign>
44 template <DeviceBackend B>
46 template <DeviceBackend B>
87 template <DeviceBackend B>
94 template <DeviceBackend B>
101 template <DeviceBackend B>
125 template <DeviceBackend B>
131 template <DeviceBackend B>
Device-callable view type for ArrayEigenVector; operator[] returns an Eigen::Map<Vector> suitable for...
#define DNDS_DEVICE_CALLABLE
Device memory abstraction layer with backend-specific storage and factory creation.
Device-callable view onto ArrayEigenVector rows.
Eigen::Matrix< std::remove_cv_t< real_T >, RowSize_To_EigenSize(_vec_size), 1, Eigen::DontAlign|Eigen::ColMajor, RowSize_To_EigenSize(_row_max), 1 > t_EigenVector
std::conditional_t< std::is_const_v< real_T >, t_EigenMap_Const, Eigen::Map< t_EigenVector, Eigen::Unaligned > > t_EigenMap
Eigen::Map< const t_EigenVector, Eigen::Unaligned > t_EigenMap_Const
Element iterator for ArrayEigenVector, yielding Eigen::Map per row.
DNDS_DEVICE_CALLABLE iterator(const view_type &n_view, index n_iRow)
DNDS_DEVICE_CALLABLE iterator(const iterator &)=default
DNDS_DEVICE_CALLABLE reference operator*()
DNDS_DEVICE_CALLABLE ~iterator()=default
std::random_access_iterator_tag iterator_category
ParArray<real, N> whose operator[] returns an Eigen::Map<Vector>.
typename t_deviceView< DeviceBackend::Host >::t_EigenMap_Const t_EigenMap_Const
Const Eigen map view onto a row.
auto deviceView() const
Const device view.
ArrayEigenVector(const t_self &R)=default
typename t_deviceView< DeviceBackend::Host >::t_EigenVector t_EigenVector
Owning Eigen vector matching the row shape.
t_self & operator=(const t_self &R)=default
t_EigenMap_Const operator[](index i) const
Const row-as-Eigen-map accessor.
t_EigenVector t_copy
Canonical "snapshot" type produced by value-returning helpers.
t_EigenMap operator[](index i)
Mutable row-as-Eigen-map accessor.
void clone(const t_self &R)
Shallow clone (same semantics as assignment).
ArrayEigenVectorDeviceView< B, real, _vec_size, _row_max, _align > t_deviceView
auto deviceView()
because no extra data than Array<>
typename t_deviceView< DeviceBackend::Host >::t_EigenMap t_EigenMap
Mutable Eigen map view onto a row.
CRTP base for row-granularity iterators over an Array / ArrayView.
std::ptrdiff_t difference_type
T * operator[](index iRow)
Return a raw pointer to the start of row iRow.
rowsize RowSize() const
Uniform row width for fixed layouts (no row index needed).
index Size() const
Number of rows currently stored. O(1).
MPI-aware Array: adds a communicator, rank, and global index mapping.
void WriteSerializer(Serializer::SerializerBaseSSP serializerP, const std::string &name, Serializer::ArrayGlobalOffset offset)
Serialize (write) the parallel array with MPI-aware metadata.
void ReadSerializer(Serializer::SerializerBaseSSP serializerP, const std::string &name, Serializer::ArrayGlobalOffset &offset)
Deserialize (read) the parallel array with MPI-aware metadata.
the host side operators are provided as implemented
int64_t index
Global row / DOF index type (signed 64-bit; handles multi-billion-cell meshes).