# PhasicFlow: symArray< T, MemorySpace > Class Template Reference
PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.

symArray< T, MemorySpace > Class Template Reference
Inheritance diagram for symArray< T, MemorySpace >:
[legend]

## Public Member Functions

| TypeInfoTemplateNV111 ("symArray", T, memoerySpaceName())
INLINE_FUNCTION_H | symArray ()
INLINE_FUNCTION_H | symArray (uint32 n)
INLINE_FUNCTION_H | symArray (word name, uint32 n)
INLINE_FUNCTION_H | symArray (word name, uint32 n, const T &val)
INLINE_FUNCTION_H | symArray (word name, const Vector< T > &src)
INLINE_FUNCTION_HD | symArray (const symArray &)=default
INLINE_FUNCTION_HD symArray & | operator= (const symArray &)=default
INLINE_FUNCTION_HD | symArray (symArray &&)=default
INLINE_FUNCTION_HD symArray & | operator= (symArray &&)=default
INLINE_FUNCTION_HD | ~symArray ()=default
void | fill (const T &val)
INLINE_FUNCTION_HD T & | operator() (uint32 i, uint32 j)
const INLINE_FUNCTION_HD T & | operator() (uint32 i, uint32 j) const
bool | assign (const Vector< T > src)
FUNCTION_H bool | read (iIstream &is)
FUNCTION_H bool | write (iOstream &os) const

## Static Public Member Functions

static INLINE_FUNCTION_HD uint32 | numElem (uint32 n)
static bool | getN (uint32 nElem, uint32 &n)

## Private Types

using | SymArrayType = symArray< T, MemorySpace >
using | iterator = T *
using | constIterator = const T *
using | reference = T &
using | constReference = const T &
using | valueType = T
using | pointer = T *
using | constPointer = const T *
using | ViewType = ViewType1D< T, MemorySpace >
using | deviceType = typename ViewType::device_type
using | memory_space = typename ViewType::memory_space
using | execution_space = typename ViewType::execution_space

## Static Private Member Functions

constexpr static const char * | memoerySpaceName ()

## Private Attributes

uint32 | n_ = 0
ViewType | view_

## Detailed Description

### template<typename T, typename MemorySpace = void>
class pFlow::symArray< T, MemorySpace >

Definition at line 54 of file symArrayHD.hpp.

## Member Typedef Documentation

## SymArrayType

using SymArrayType = symArray<T, MemorySpace>

private

Definition at line 57 of file symArrayHD.hpp.

## iterator

using iterator = T*

private

Definition at line 59 of file symArrayHD.hpp.

## constIterator

using constIterator = const T*

private

Definition at line 61 of file symArrayHD.hpp.

## reference

using reference = T&

private

Definition at line 63 of file symArrayHD.hpp.

## constReference

using constReference = const T&

private

Definition at line 65 of file symArrayHD.hpp.

## valueType

using valueType = T

private

Definition at line 67 of file symArrayHD.hpp.

## pointer

using pointer = T*

private

Definition at line 69 of file symArrayHD.hpp.

## constPointer

using constPointer = const T*

private

Definition at line 71 of file symArrayHD.hpp.

## ViewType

using ViewType = ViewType1D<T,MemorySpace>

private

Definition at line 74 of file symArrayHD.hpp.

## deviceType

using deviceType = typename ViewType::device_type

private

Definition at line 76 of file symArrayHD.hpp.

## memory_space

using memory_space = typename ViewType::memory_space

private

Definition at line 78 of file symArrayHD.hpp.

## execution_space

using execution_space = typename ViewType::execution_space

private

Definition at line 80 of file symArrayHD.hpp.

## Constructor & Destructor Documentation

## symArray() [1/7]

INLINE_FUNCTION_H symArray | ( |  | ) |

## symArray() [2/7]

INLINE_FUNCTION_H symArray | ( | uint32 | n | ) |

inlineexplicit

Definition at line 105 of file symArrayHD.hpp.

## symArray() [3/7]

INLINE_FUNCTION_H symArray | ( | word | name,
|  | uint32 | n
| ) |  |

inline

Definition at line 111 of file symArrayHD.hpp.

## symArray() [4/7]

INLINE_FUNCTION_H symArray | ( | word | name,
|  | uint32 | n,
|  | const T & | val
| ) |  |

inline

Definition at line 118 of file symArrayHD.hpp.

## symArray() [5/7]

INLINE_FUNCTION_H symArray | ( | word | name,
|  | const Vector< T > & | src
| ) |  |

inline

Definition at line 126 of file symArrayHD.hpp.

## symArray() [6/7]

INLINE_FUNCTION_HD symArray | ( | const symArray< T, MemorySpace > & |  | ) |

default

## symArray() [7/7]

INLINE_FUNCTION_HD symArray | ( | symArray< T, MemorySpace > && |  | ) |

default

## ~symArray()

INLINE_FUNCTION_HD ~symArray | ( |  | ) |

default

## Member Function Documentation

## memoerySpaceName()

constexpr static const char* memoerySpaceName | ( |  | ) |

inlinestaticconstexprprivate

Definition at line 90 of file symArrayHD.hpp.

## TypeInfoTemplateNV111()

TypeInfoTemplateNV111 | ( | "symArray< T, MemorySpace >" | ,
|  | T | ,
|  | memoerySpaceName() |
| ) |  |

## operator=() [1/2]

INLINE_FUNCTION_HD symArray& operator= | ( | const symArray< T, MemorySpace > & |  | ) |

default

## operator=() [2/2]

INLINE_FUNCTION_HD symArray& operator= | ( | symArray< T, MemorySpace > && |  | ) |

default

## fill()

void fill | ( | const T & | val | ) |

inline

Definition at line 155 of file symArrayHD.hpp.

Referenced by symArray< nonLinearProperties >::symArray().

Here is the caller graph for this function:

## operator()() [1/2]

INLINE_FUNCTION_HD T& operator() | ( | uint32 | i,
|  | uint32 | j
| ) |  |

inline

Definition at line 162 of file symArrayHD.hpp.

## operator()() [2/2]

const INLINE_FUNCTION_HD T& operator() | ( | uint32 | i,
|  | uint32 | j
| ) |  | const

inline

Definition at line 169 of file symArrayHD.hpp.

## assign()

bool assign | ( | const Vector< T > | src | ) |

inline

Definition at line 175 of file symArrayHD.hpp.

Referenced by symArray< nonLinearProperties >::read(), grainRolling< contactForceModel >::readGrainDict(), linear< limited >::readLinearDictionary(), cGRelativeLinear< limited >::readLinearDictionary(), cGAbsoluteLinear< limited >::readLinearDictionary(), nonLinearMod< limited >::readNonLinearDictionary(), nonLinear< limited >::readNonLinearDictionary(), normalRolling< contactForceModel >::readNormalDict(), and symArray< nonLinearProperties >::symArray().

Here is the caller graph for this function:

## read()

FUNCTION_H bool read | ( | iIstream & | is | ) |

inline

Definition at line 206 of file symArrayHD.hpp.

Referenced by pFlow::operator>>().

Here is the caller graph for this function:

## write()

FUNCTION_H bool write | ( | iOstream & | os | ) | const

inline

Definition at line 217 of file symArrayHD.hpp.

Referenced by pFlow::operator<<().

Here is the caller graph for this function:

## numElem()

static INLINE_FUNCTION_HD uint32 numElem | ( | uint32 | n | ) |

inlinestatic

Definition at line 232 of file symArrayHD.hpp.

Referenced by symArray< nonLinearProperties >::operator()(), and symArray< nonLinearProperties >::write().

Here is the caller graph for this function:

## getN()

static bool getN | ( | uint32 | nElem,
|  | uint32 & | n
| ) |  |

inlinestatic

Definition at line 238 of file symArrayHD.hpp.

Referenced by symArray< nonLinearProperties >::assign().

Here is the caller graph for this function:

## Member Data Documentation

## n_

uint32 n_ = 0

private

Definition at line 85 of file symArrayHD.hpp.

Referenced by symArray< nonLinearProperties >::assign(), symArray< nonLinearProperties >::fill(), symArray< nonLinearProperties >::operator()(), and symArray< nonLinearProperties >::write().

## view_

ViewType view_

private

Definition at line 87 of file symArrayHD.hpp.

Referenced by symArray< nonLinearProperties >::assign(), symArray< nonLinearProperties >::fill(), symArray< nonLinearProperties >::operator()(), and symArray< nonLinearProperties >::write().

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

- src/phasicFlow/containers/symArrayHD/symArrayHD.hpp