#include <AMReX_Array.H>
Public Member Functions | |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE const T * | begin () const noexcept |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE const T * | end () const noexcept |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE T * | begin () noexcept |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE T * | end () noexcept |
template<Order Ord = ORDER, std::enable_if_t< Ord==Order::F, int > = 0> | |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE const T & | operator() (int i, int j) const noexcept |
template<Order Ord = ORDER, std::enable_if_t< Ord==Order::F, int > = 0> | |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE T & | operator() (int i, int j) noexcept |
template<Order Ord = ORDER, std::enable_if_t< Ord==Order::C, int > = 0> | |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE const T & | operator() (int i, int j) const noexcept |
template<Order Ord = ORDER, std::enable_if_t< Ord==Order::C, int > = 0> | |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE T & | operator() (int i, int j) noexcept |
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE T | sum () const noexcept |
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE T | sum (int axis, int loc) const noexcept |
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE T | product () const noexcept |
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE T | product (int axis, int loc) const noexcept |
Static Public Member Functions | |
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE unsigned int | size () noexcept |
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE int | xlo () noexcept |
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE int | xhi () noexcept |
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE unsigned int | xlen () noexcept |
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE int | ylo () noexcept |
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE int | yhi () noexcept |
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE unsigned int | ylen () noexcept |
Public Attributes | |
T | arr [(XHI-XLO+1) *(YHI-YLO+1)] |
A GPU-compatible two-dimensional array.
XLO | Index for lower bound in x dimension. Can be other than 0. |
XHI | Index for upper bound in x dimension. |
YLO | Index for lower bound in y dimension. Can be other than 0. |
YHI | Index for upper bound in y dimension. |
ORDER | Either Order::C (C/C++ row-major order) or Order::F (Fortran column-major order, which is the default if not given) |
|
inlinenoexcept |
Returns a const
pointer address to the first element of the Array2D object, as if the object is treated as one-dimensional.
|
inlinenoexcept |
Returns a pointer address to the first element of the Array2D object, as if the object is treated as one-dimensional.
|
inlinenoexcept |
Returns a const
pointer address right after the last element of the Array2D object, as if the object is treated as one-dimensional.
|
inlinenoexcept |
Returns a pointer address right after the last element of the Array2D object, as if the object is treated as one-dimensional.
|
inlinenoexcept |
The elements of an Array2D object are accessed using parentheses, e.g. array(i,j)
, instead of using square brackets. If the order is not specified, Fortran column-major order is assumed (the index i
moves the fastest)
|
inlinenoexcept |
|
inlinenoexcept |
The elements of an Array2D object are accessed using parentheses, e.g. array(i,j)
, instead of using square brackets. If the order is not specified, Fortran column-major order is assumed (the index i
moves the fastest)
|
inlinenoexcept |
|
inlineconstexprnoexcept |
When called without any arguments, returns the product of all elements in the Array2D object.
|
inlineconstexprnoexcept |
When called with two arguments, performs a product reduction over the specified axis
, for a particular location index loc
.
axis | The dimension to reduce (0 for x dimension, 1 for y dimension) |
loc | The appropriate location index |
This can be used, for instance, to calculate the product over the x dimension of an Array2D object that was instantiated as
Array2D<amrex::Real, 1, M, 1, N> array;
One could instantiate an Array1D object to hold the results with,
Array1D<amrex::Real, 1, N> vec;
and then perform the product for each element of the resulting vector.
for (int j = 1; j <= N; ++j) { vec(j) = array.sum(0,j) }
In this example, the axis is 0 and the location index is j
.
|
inlinestaticconstexprnoexcept |
Returns the total number of elements of the Array2D object as an unsigned integer.
|
inlineconstexprnoexcept |
When called without any arguments, returns the sum of all elements in the Array2D object.
|
inlineconstexprnoexcept |
When called with two arguments, performs a sum reduction over the specified axis
, for a particular location index loc
.
axis | The dimension to reduce (0 for x dimension, 1 for y dimension) |
loc | The appropriate location index |
This can be used, for instance, to calculate the sum over the y dimension of an Array2D object that was instantiated as
Array2D<amrex::Real, 1, M, 1, N> array;
One could instantiate an Array1D object to hold the results,
Array1D<amrex::Real, 1, M> vec;
and then perform the summation for each element of the resulting vector.
for (int i = 1; i <= M; ++i) { vec(i) = array.sum(1,i) }
In this example, the axis is 1 and the location index is i
.
|
inlinestaticconstexprnoexcept |
Returns the index of the upper bound of the Array2D object in the x direction.
|
inlinestaticconstexprnoexcept |
Returns the number of elements of the Array2D object in the x direction as an unsigned integer.
|
inlinestaticconstexprnoexcept |
Returns the index of the lower bound of the Array2D object in the x direction. Can be other than 0.
|
inlinestaticconstexprnoexcept |
Returns the index of the upper bound of the Array2D object in the y direction.
|
inlinestaticconstexprnoexcept |
Returns the number of elements of the Array2D object in the y direction as an unsigned integer.
|
inlinestaticconstexprnoexcept |
Returns the index of the lower bound of the Array2D object in the y direction. Can be other than 0.
T amrex::Array2D< T, XLO, XHI, YLO, YHI, ORDER >::arr[(XHI-XLO+1) *(YHI-YLO+1)] |