DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align > Class Template Reference

ParArray<real> whose operator[] returns an Eigen::Map<Matrix<real, Ni, Nj>>. More...

#include <ArrayEigenMatrix.hpp>

Inheritance diagram for DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >:
[legend]
Collaboration diagram for DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >:
[legend]

Classes

class  iterator
 Element iterator for ArrayEigenMatrix, yielding Eigen::Map<Matrix> per row. More...
 
struct  ReadSerializerMetaResult
 

Public Types

using t_self = ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >
 
using t_base = ParArray< real, __OneMatGetRowSize< _mat_ni, _mat_nj >(), __OneMatGetRowSize< _mat_ni_max, _mat_nj_max >(), _align >
 
using t_pRowSizes = ssp< host_device_vector< rowsize > >
 
using t_EigenMatrix = Eigen::Matrix< real, RowSize_To_EigenSize(_mat_ni), RowSize_To_EigenSize(_mat_nj)>
 
using t_EigenMap = Eigen::Map< t_EigenMatrix, Eigen::Unaligned >
 
using t_EigenMap_const = Eigen::Map< const t_EigenMatrix, Eigen::Unaligned >
 
using t_copy = t_EigenMatrix
 
template<DeviceBackend B>
using t_deviceView = ArrayEigenMatrixDeviceView< B, real, _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >
 
template<DeviceBackend B>
using t_deviceViewConst = ArrayEigenMatrixDeviceView< B, const real, _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >
 
- Public Types inherited from DNDS::ParArray< T, _row_size, _row_max, _align >
using TArray = Array< T, _row_size, _row_max, _align >
 
using t_self = ParArray< T, _row_size, _row_max, _align >
 
using t_pArray = ssp< TArray >
 
using t_pRowSizes = typename TArray::t_pRowSizes
 
- Public Types inherited from DNDS::Array< T, _row_size, _row_max, _align >
using self_type = Array< T, _row_size, _row_max, _align >
 
using t_Layout = ArrayLayout< T, _row_size, _row_max, _align >
 
using t_View = ArrayView< T, _row_size, _row_max, _align >
 
using t_Data = host_device_vector< value_type >
 
using t_DataUncompressed = std::vector< std::vector< value_type > >
 
using t_RowStart = host_device_vector< index >
 
using t_pRowStart = ssp< t_RowStart >
 
using t_RowSizes = host_device_vector< rowsize >
 
using t_pRowSizes = ssp< t_RowSizes >
 
template<DeviceBackend B>
using t_deviceView = ArrayDeviceView< B, T, _row_size, _row_max, _align >
 
template<DeviceBackend B>
using t_deviceViewConst = ArrayDeviceView< B, const T, _row_size, _row_max, _align >
 
- Public Types inherited from DNDS::ArrayLayout< T, _row_size, _row_max, _align >
using value_type = T
 

Public Member Functions

size_t FullSizeBytes () const
 extra data
 
 ArrayEigenMatrix (const t_self &R)=default
 
t_selfoperator= (const t_self &R)=default
 
void clone (const t_self &R)
 
void Resize (index nSize, rowsize nSizeRowDynamic, rowsize nSizeColDynamic)
 
rowsize MatRowSize (index iMat=0) const
 
rowsize MatColSize (index iMat=0) const
 
void ResizeMat (index iMat, rowsize nSizeRow, rowsize nSizeCol)
 
void ResizeRow (index iMat, rowsize nSizeRow, rowsize nSizeCol)
 
std::conditional_t< _mat_ni==1 &&_mat_nj==1, real &, voidoperator() (index iRow)
 
std::conditional_t< _mat_ni==1 &&_mat_nj==1, real, voidoperator() (index iRow) const
 
std::conditional_t< _mat_ni==1||_mat_nj==1, real &, voidoperator() (index iRow, rowsize j)
 
std::conditional_t< _mat_ni==1||_mat_nj==1, real, voidoperator() (index iRow, rowsize j) const
 
t_EigenMap operator[] (index i)
 
t_EigenMap_const operator[] (index i) const
 
bool SignatureIsCompatible (const std::string &v)
 
void WriteSerializer (Serializer::SerializerBaseSSP serializerP, const std::string &name, Serializer::ArrayGlobalOffset offset)
 
void ReadSerializer (Serializer::SerializerBaseSSP serializerP, const std::string &name, Serializer::ArrayGlobalOffset &offset)
 
ReadSerializerMetaResult ReadSerializerMeta (Serializer::SerializerBaseSSP serializerP, const std::string &name)
 
template<DeviceBackend B>
auto deviceView ()
 
template<DeviceBackend B>
auto deviceView () const
 
void to_device (DeviceBackend backend)
 
template<DeviceBackend B>
iterator< B > begin ()
 
template<DeviceBackend B>
iterator< B > end ()
 
- Public Member Functions inherited from DNDS::ParArray< T, _row_size, _row_max, _align >
 ParArray (const t_self &R)=default
 
t_selfoperator= (const t_self &R)=default
 
void clone (const t_self &R)
 Copy-assign from another ParArray. Shallow copy semantics (mirrors Arrayclone): shares structural/data buffers.
 
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.
 
MPI_Datatype getDataType ()
 MPI element datatype used for ghost exchange (deduced from T).
 
MPI_int getTypeMult ()
 Per-element count multiplier that goes with getDataType.
 
void setMPI (const MPIInfo &n_mpi)
 Install the MPI context after default construction.
 
MPIInfogetMPI ()
 Mutable MPI context accessor.
 
const MPIInfogetMPI () const
 Read-only MPI context accessor.
 
void setDataType (MPI_Datatype n_dType, MPI_int n_TypeMult)
 Override the deduced MPI datatype and element multiplier (advanced; needed for custom compound element types).
 
 ParArray ()=default
 Default-construct an uninitialised ParArray; call setMPI and Resize later.
 
 ParArray (const MPIInfo &n_mpi)
 Construct a ParArray bound to the given MPI context.
 
 ParArray (MPI_Datatype n_dType, MPI_int n_TypeMult, const MPIInfo &n_mpi)
 Construct with a custom (MPI datatype, multiplier) pair.
 
template<typename... Args>
 ParArray (ObjName objName, Args &&...args)
 Named constructor: sets the object name for tracing/debugging. All existing constructor overloads are supported via perfect forwarding. Inherited by derived classes (ArrayAdjacency, ArrayEigenVector, etc.) through using t_base::t_base.
 
void AssertDataType ()
 Assert the MPI datatype matches sizeof(T) exactly.
 
bool AssertConsistent ()
 Check array consistency across all ranks.
 
void createGlobalMapping ()
 Collective: build the global offsets table.
 
index globalSize () const
 Returns the total global size (sum of sizes across all ranks).
 
 Array ()=default
 Default-constructed array: empty, no storage.
 
 Array (ObjName objName)
 Named constructor: sets the object name for tracing/debugging. Delegates to the default constructor, then sets the name.
 
 Array (const self_type &R)
 Copy constructor (same semantics as clone).
 
- Public Member Functions inherited from DNDS::Array< T, _row_size, _row_max, _align >
t_pRowStart getRowStart ()
 Shared pointer to the row-start index (CSR layout only).
 
t_pRowSizes getRowSizes ()
 Shared pointer to the per-row size vector (TABLE_Max / TABLE_StaticMax).
 
 Array ()=default
 Default-constructed array: empty, no storage.
 
 Array (ObjName objName)
 Named constructor: sets the object name for tracing/debugging. Delegates to the default constructor, then sets the name.
 
index Size () const
 Number of rows currently stored. O(1).
 
rowsize RowSize () const
 Uniform row width for fixed layouts (no row index needed).
 
rowsize DataStride () const
 Number of T elements per row in flat storage (data stride). For TABLE_StaticMax/TABLE_Max, this is _row_max (padded), not RowSize (used). Not valid for CSR (variable stride per row).
 
rowsize RowSize (index iRow) const
 Width used by row iRow in number of T elements.
 
rowsize RowSizeMax () const
 Maximum allowed row width for TABLE_Max / TABLE_StaticMax.
 
rowsize RowSizeField () const
 "Logical" row-field width used by derived (Eigen) arrays: max for padded layouts, uniform width for fixed layouts. Not valid for CSR.
 
rowsize RowSizeField (index iRow) const
 Per-row "field" size for CSR (= actual row width). Invalid elsewhere.
 
bool IfCompressed () const
 (CSR only) Whether the array is in packed / flat form.
 
void CSRDecompress ()
 (CSR only) Switch to the uncompressed (nested vector) representation.
 
void CSRCompress ()
 (CSR only) Pack the nested-vector representation into a flat buffer plus _pRowStart. No-op if already compressed.
 
void Compress ()
 Layout-polymorphic compress: no-op for non-CSR, calls CSRCompress for CSR.
 
void Decompress ()
 Layout-polymorphic decompress: no-op for non-CSR, calls CSRDecompress for CSR.
 
t_DataRawDataVector ()
 Access to the underlying flat buffer (host_device_vector<T>).
 
void Resize (index nSize, rowsize nRow_size_dynamic)
 Resize the array, setting a uniform or maximum row width.
 
void Resize (index nSize)
 Resize using only the row count (layouts with an implicit row width).
 
template<class TFRowSize >
void Resize (index nSize, TFRowSize &&FRowSize)
 Resize a CSR array directly to the compressed form via a width functor.
 
void ResizeRow (index iRow, rowsize nRowSize)
 Change the width of a single row.
 
void ReserveRow (index iRow, rowsize nRowSize)
 Reserve capacity for a CSR decompressed row without changing its size.
 
t_View view ()
 Produce a lightweight, device-agnostic view onto the array.
 
const T & at (index iRow, rowsize iCol) const
 Bounds-checked element access.
 
T & operator() (index iRow, rowsize iCol=0)
 Bounds-checked 2D element access (writable).
 
const T & operator() (index iRow, rowsize iCol=0) const
 Bounds-checked 2D element access (read-only).
 
T * operator[] (index iRow)
 Return a raw pointer to the start of row iRow.
 
const T * operator[] (index iRow) const
 Const row pointer, see the non-const overload.
 
T * data (DeviceBackend B=DeviceBackend::Unknown)
 Raw pointer to the flat data buffer.
 
size_t DataSize () const
 Total number of T elements currently stored in the flat buffer.
 
size_t DataSizeBytes () const
 Flat buffer size in bytes (= DataSize() * sizeof(T)).
 
void CopyRowFrom (index dstRow, const self_type &src, index srcRow)
 Copy raw row data from another Array of the same type. Works for all layouts (StaticFixed, Fixed, CSR, etc.) and is not hidden by derived types that make operator()/operator[] private.
 
template<class TRowSizeFunc >
void ResizeRowsAndCompress (TRowSizeFunc &&rowSizeFunc)
 Set per-row sizes from a source, applying an index mapping, then compress. For CSR layout only. rowSizeFunc(i) returns the desired row size for row i. Not hidden by derived types that make ResizeRow private.
 
size_t FullSizeBytes () const
 Total footprint in bytes including structural arrays.
 
std::size_t hash ()
 Combined hash of size, structural arrays, and data.
 
constexpr DataLayout GetDataLayout ()
 Runtime accessor for the layout tag (constexpr-folded).
 
void clone (const self_type &R)
 Shallow clone: copies all metadata and shares structural/data storage.
 
void CopyData (const self_type &R)
 Deep copy alias. Currently delegates to clone; kept for API compatibility and to allow a future true deep-copy implementation.
 
self_typeoperator= (const self_type &R)
 Copy-assignment; implemented via clone with self-assign guard.
 
 Array (const self_type &R)
 Copy constructor (same semantics as clone).
 
void SwapData (self_type &R)
 Swap the storage of two arrays in-place.
 
void __WriteSerializerData (const Serializer::SerializerBaseSSP &serializerP, Serializer::ArrayGlobalOffset offset)
 
void __ReadSerializerData (const Serializer::SerializerBaseSSP &serializerP, Serializer::ArrayGlobalOffset &offset)
 
void WriteSerializer (Serializer::SerializerBaseSSP serializerP, const std::string &name, Serializer::ArrayGlobalOffset offset, Serializer::ArrayGlobalOffset dataOffset=Serializer::ArrayGlobalOffset_Unknown)
 Serialize (write) array data to a serializer.
 
void ReadSerializer (Serializer::SerializerBaseSSP serializerP, const std::string &name, Serializer::ArrayGlobalOffset &offset)
 Convenience overload that discards the dataOffset output.
 
void ReadSerializer (Serializer::SerializerBaseSSP serializerP, const std::string &name, Serializer::ArrayGlobalOffset &offset, Serializer::ArrayGlobalOffset &dataOffset)
 Deserialize (read) array data from a serializer.
 
ReadSerializerMetaResult ReadSerializerMeta (Serializer::SerializerBaseSSP serializerP, const std::string &name)
 Reads only metadata from a serialized array without reading data.
 
void __ReadSerializerStructuralAndResolveDataOffset (const Serializer::SerializerBaseSSP &serializerP, Serializer::ArrayGlobalOffset &offset, Serializer::ArrayGlobalOffset &dataOffset)
 Reads structural data (pRowStart / pRowSizes) and resolves dataOffset.
 
void __ReadSerializerDataAndPropagateOffset (const Serializer::SerializerBaseSSP &serializerP, Serializer::ArrayGlobalOffset &offset, Serializer::ArrayGlobalOffset &dataOffset)
 Reads flat data and propagates resolved offsets back to the caller.
 
void to_host ()
 Mirror the flat/structural buffers back to host memory.
 
void to_device (DeviceBackend backend=DeviceBackend::Host)
 Mirror the flat/structural buffers to a target device (e.g. CUDA).
 
void clear_device ()
 Release any device-side mirror of this array's buffers.
 
template<DeviceBackend B>
t_deviceView< B > deviceView ()
 Mutable device-callable view (Eigen::Map-style row access on GPU).
 
template<DeviceBackend B>
t_deviceViewConst< B > deviceView () const
 Const device-callable view. See non-const overload.
 
DeviceBackend device () const
 Current device backend the data is mirrored on, or Unknown if host-only.
 
template<DeviceBackend B>
iterator< B > begin ()
 Iterator to the first row, viewed on device backend B.
 
template<DeviceBackend B>
iterator< B > end ()
 Iterator one past the last row, viewed on device backend B.
 
- Public Member Functions inherited from DNDS::ObjectNaming
 ObjectNaming ()=default
 
 ObjectNaming (const ObjectNaming &)=default
 
 ObjectNaming (ObjectNaming &&)=default
 
ObjectNamingoperator= (const ObjectNaming &)=default
 
ObjectNamingoperator= (ObjectNaming &&)=default
 
 ~ObjectNaming ()=default
 
void setObjectName (const std::string &name)
 
const std::string & getObjectName () const
 
std::string getObjectIdentity (const std::string &sig) const
 

Static Public Member Functions

static std::string GetDerivedArraySignature ()
 
static std::tuple< int, int, int, intGetDerivedArraySignatureInts (const std::string &v)
 
- Static Public Member Functions inherited from DNDS::Array< T, _row_size, _row_max, _align >
static constexpr bool IsCSR ()
 
static constexpr DataLayout GetDataLayoutStatic ()
 Compile-time layout tag (one of TABLE_StaticFixed, TABLE_Fixed, TABLE_StaticMax, TABLE_Max, CSR).
 
- Static Public Member Functions inherited from DNDS::ArrayLayout< T, _row_size, _row_max, _align >
static constexpr DataLayout _GetDataLayout ()
 Deduce the DataLayout tag from the template parameters.
 
static std::string GetArrayName ()
 Human-readable type identifier including element typeid, sizes, and alignment.
 
static std::string GetArraySignature ()
 Compiler-independent identifier used by serializers to tag an array.
 
static std::string GetArraySignatureRelaxed ()
 Signature with _row_size / _row_max replaced by DynamicSize.
 
static std::tuple< int, int, int, int > ParseArraySignatureTuple (const std::string &v)
 Parse a signature string into (sizeof_T, row_size, row_max, align).
 
static bool ArraySignatureIsCompatible (const std::string &v)
 Whether a stored signature can be read into this array type.
 

Static Public Attributes

static const rowsize _row_size = __OneMatGetRowSize<_mat_ni, _mat_nj>()
 
static const rowsize _row_size_max = __OneMatGetRowSize<_mat_ni_max, _mat_nj_max>()
 
- Static Public Attributes inherited from DNDS::ParArray< T, _row_size, _row_max, _align >
static const DataLayout _dataLayout = TArray::_dataLayout
 
- Static Public Attributes inherited from DNDS::ArrayLayout< T, _row_size, _row_max, _align >
static const rowsize al = _align
 
static const rowsize rs = _row_size
 
static const rowsize rm = _row_max
 
static const size_t sizeof_T = sizeof(value_type)
 
static const rowsize s_T = al == NoAlign ? sizeof_T : (sizeof_T / al + 1) * al
 
static const DataLayout _dataLayout = _GetDataLayout()
 
static const bool isCSR = _dataLayout == CSR
 

Additional Inherited Members

- Public Attributes inherited from DNDS::ParArray< T, _row_size, _row_max, _align >
t_pLGlobalMapping pLGlobalMapping
 Shared pointer to the global-offsets table. Populated by createGlobalMapping; may be pointed at an existing table to skip the collective setup.
 
MPIInfo mpi
 MPI context associated with this array (must be set before collectives).
 
- Protected Member Functions inherited from DNDS::Array< T, _row_size, _row_max, _align >
bool IfCompressed_ () const
 
- Protected Attributes inherited from DNDS::Array< T, _row_size, _row_max, _align >
t_pRowStart _pRowStart
 
t_pRowSizes _pRowSizes
 
t_Data _data
 
DeviceBackend deviceBackend = DeviceBackend::Unknown
 
t_DataUncompressed _dataUncompressed
 
index _size = 0
 
rowsize _row_size_dynamic = 0
 

Detailed Description

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
class DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >

ParArray<real> whose operator[] returns an Eigen::Map<Matrix<real, Ni, Nj>>.

Each row stores an Ni x Nj matrix contiguously (column-major, matching Eigen's default). The row count in the underlying ParArray equals Ni * Nj. Used for per-cell Jacobians, gradient matrices, and (via ArrayDof) solver state containers.

Supports three configurations for each of the two matrix dimensions:

  • compile-time fixed (Ni >= 0);
  • runtime uniform (DynamicSize + a _max);
  • per-row variable (NonUniformSize + a _max, which yields a TABLE_StaticMax / TABLE_Max storage layout).

The variable-row case carries an extra per-row-sizes vector _mat_nRows; all the other layouts have no extra data beyond ParArray.

Template Parameters
_mat_niRow dimension of the stored matrix.
_mat_njColumn dimension.
_mat_ni_maxMax row dimension (used when variable).
_mat_nj_maxMax column dimension.

Definition at line 46 of file ArrayEigenMatrix.hpp.

Member Typedef Documentation

◆ t_base

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_base = ParArray<real, __OneMatGetRowSize<_mat_ni, _mat_nj>(), __OneMatGetRowSize<_mat_ni_max, _mat_nj_max>(), _align>

Definition at line 55 of file ArrayEigenMatrix.hpp.

◆ t_copy

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_copy = t_EigenMatrix

Definition at line 67 of file ArrayEigenMatrix.hpp.

◆ t_deviceView

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
template<DeviceBackend B>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_deviceView = ArrayEigenMatrixDeviceView<B, real, _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align>

Definition at line 326 of file ArrayEigenMatrix.hpp.

◆ t_deviceViewConst

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
template<DeviceBackend B>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_deviceViewConst = ArrayEigenMatrixDeviceView<B, const real, _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align>

Definition at line 328 of file ArrayEigenMatrix.hpp.

◆ t_EigenMap

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_EigenMap = Eigen::Map<t_EigenMatrix, Eigen::Unaligned>

Definition at line 64 of file ArrayEigenMatrix.hpp.

◆ t_EigenMap_const

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_EigenMap_const = Eigen::Map<const t_EigenMatrix, Eigen::Unaligned>

Definition at line 65 of file ArrayEigenMatrix.hpp.

◆ t_EigenMatrix

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_EigenMatrix = Eigen::Matrix<real, RowSize_To_EigenSize(_mat_ni), RowSize_To_EigenSize(_mat_nj)>

Definition at line 63 of file ArrayEigenMatrix.hpp.

◆ t_pRowSizes

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_pRowSizes = ssp<host_device_vector<rowsize> >

Definition at line 61 of file ArrayEigenMatrix.hpp.

◆ t_self

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
using DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::t_self = ArrayEigenMatrix<_mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align>

Definition at line 54 of file ArrayEigenMatrix.hpp.

Constructor & Destructor Documentation

◆ ArrayEigenMatrix()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::ArrayEigenMatrix ( const t_self R)
default

Member Function Documentation

◆ begin()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
template<DeviceBackend B>
iterator< B > DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::begin ( )
inline

Definition at line 402 of file ArrayEigenMatrix.hpp.

◆ clone()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
void DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::clone ( const t_self R)
inline

Definition at line 90 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ deviceView() [1/2]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
template<DeviceBackend B>
auto DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::deviceView ( )
inline

Definition at line 331 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ deviceView() [2/2]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
template<DeviceBackend B>
auto DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::deviceView ( ) const
inline

Definition at line 342 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ end()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
template<DeviceBackend B>
iterator< B > DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::end ( )
inline

Definition at line 408 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ FullSizeBytes()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
size_t DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::FullSizeBytes ( ) const
inline

extra data

Definition at line 77 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ GetDerivedArraySignature()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
static std::string DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::GetDerivedArraySignature ( )
inlinestatic

Definition at line 211 of file ArrayEigenMatrix.hpp.

Here is the caller graph for this function:

◆ GetDerivedArraySignatureInts()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
static std::tuple< int, int, int, int > DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::GetDerivedArraySignatureInts ( const std::string &  v)
inlinestatic

Definition at line 218 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MatColSize()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
rowsize DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::MatColSize ( index  iMat = 0) const
inline

Definition at line 125 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MatRowSize()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
rowsize DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::MatRowSize ( index  iMat = 0) const
inline

Definition at line 114 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator()() [1/4]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
std::conditional_t< _mat_ni==1 &&_mat_nj==1, real &, void > DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::operator() ( index  iRow)
inline

Definition at line 151 of file ArrayEigenMatrix.hpp.

◆ operator()() [2/4]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
std::conditional_t< _mat_ni==1 &&_mat_nj==1, real, void > DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::operator() ( index  iRow) const
inline

Definition at line 159 of file ArrayEigenMatrix.hpp.

◆ operator()() [3/4]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
std::conditional_t< _mat_ni==1||_mat_nj==1, real &, void > DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::operator() ( index  iRow,
rowsize  j 
)
inline

Definition at line 167 of file ArrayEigenMatrix.hpp.

◆ operator()() [4/4]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
std::conditional_t< _mat_ni==1||_mat_nj==1, real, void > DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::operator() ( index  iRow,
rowsize  j 
) const
inline

Definition at line 175 of file ArrayEigenMatrix.hpp.

◆ operator=()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
t_self & DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::operator= ( const t_self R)
default
Here is the caller graph for this function:

◆ operator[]() [1/2]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
t_EigenMap DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::operator[] ( index  i)
inline

Definition at line 182 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ operator[]() [2/2]

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
t_EigenMap_const DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::operator[] ( index  i) const
inline

Definition at line 197 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ ReadSerializer()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
void DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::ReadSerializer ( Serializer::SerializerBaseSSP  serializerP,
const std::string &  name,
Serializer::ArrayGlobalOffset offset 
)
inline

Definition at line 264 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ ReadSerializerMeta()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
ReadSerializerMetaResult DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::ReadSerializerMeta ( Serializer::SerializerBaseSSP  serializerP,
const std::string &  name 
)
inline

Definition at line 310 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ Resize()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
void DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::Resize ( index  nSize,
rowsize  nSizeRowDynamic,
rowsize  nSizeColDynamic 
)
inline

Definition at line 95 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ResizeMat()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
void DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::ResizeMat ( index  iMat,
rowsize  nSizeRow,
rowsize  nSizeCol 
)
inline

Definition at line 136 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ResizeRow()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
void DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::ResizeRow ( index  iMat,
rowsize  nSizeRow,
rowsize  nSizeCol 
)
inline

Definition at line 141 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SignatureIsCompatible()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
bool DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::SignatureIsCompatible ( const std::string &  v)
inline

Definition at line 226 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ to_device()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
void DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::to_device ( DeviceBackend  backend)
inline

Definition at line 354 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

◆ WriteSerializer()

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
void DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::WriteSerializer ( Serializer::SerializerBaseSSP  serializerP,
const std::string &  name,
Serializer::ArrayGlobalOffset  offset 
)
inline
Parameters
serializerP
name
Warning
need to take care of createGlobalMapping if resized

Definition at line 249 of file ArrayEigenMatrix.hpp.

Here is the call graph for this function:

Member Data Documentation

◆ _row_size

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
const rowsize DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::_row_size = __OneMatGetRowSize<_mat_ni, _mat_nj>()
static

Definition at line 52 of file ArrayEigenMatrix.hpp.

◆ _row_size_max

template<rowsize _mat_ni = 1, rowsize _mat_nj = 1, rowsize _mat_ni_max = _mat_ni, rowsize _mat_nj_max = _mat_nj, rowsize _align = NoAlign>
const rowsize DNDS::ArrayEigenMatrix< _mat_ni, _mat_nj, _mat_ni_max, _mat_nj_max, _align >::_row_size_max = __OneMatGetRowSize<_mat_ni_max, _mat_nj_max>()
static

Definition at line 53 of file ArrayEigenMatrix.hpp.


The documentation for this class was generated from the following file: