Struct TempLat::LayoutStruct
template <size_t NDim>
ClassList > TempLat > LayoutStruct
Holds the result of FFTLibraryInterface::computeLocalSizes . In itself, has practically no logic, only forwards all the getters and setters to their respective owners. SeeLayoutStructGlobal ,LayoutStructLocal andLayoutStructLocalTransposed .More...
#include <layoutstruct.h>
Public Functions
| Type | Name |
|---|---|
| LayoutStruct (const device::IdxArray< NDim > & initNGrid, const device::Idx nGhosts) Create a new LayoutStruct object. |
|
| LayoutStruct () |
|
| DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & | getGlobalSizes () const |
| DEVICE_INLINE_FUNCTION const auto & | getHermitianPartners () const |
| device::IdxArray< NDim > & | getLocalSizes () |
| DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & | getLocalSizes () const |
| DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & | getLocalStarts () const |
| DEVICE_INLINE_FUNCTION T | getMaxRadius () const |
| device::Idx | getNGhosts () const |
| device::Idx | getOrigin () const |
| device::array< device::IdxArray< 2 >, NDim > | getPadding () const |
| DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & | getSizesInMemory () const |
| DEVICE_INLINE_FUNCTION const auto & | getTranspositionMap_memoryToGlobalSpace () const |
| DEVICE_INLINE_FUNCTION bool | isTransposed () const |
| DEVICE_INLINE_FUNCTION bool | putMemoryIndexFromSpatialLocationInto (Container & target, const IDX... pos) const Inverse of putSpatialLocationFromMemoryIndexInto: from spatial coordinate to memory indices, in memory-layout order (that is, transposed. |
| DEVICE_INLINE_FUNCTION void | putSpatialLocationFromMemoryIndexInto (Container & target, const IDX... idx) const local index in some dimension of the memory layout, goes into its corresponding spatial dimension in the target memory. No bounds checking! |
| DEVICE_INLINE_FUNCTION void | putSpatialLocationFromMemoryIndexInto0N (Container & target, const IDX... idx) const |
| void | setHermitianPartners (HermitianPartners< NDim > && newInstance) |
| void | setLocalSizes (const device::IdxArray< NDim > & input) |
| void | setLocalStarts (const device::IdxArray< NDim > & input) |
| void | setNGhosts (const device::Idx & nGhosts) |
| void | setPadding (const device::array< device::IdxArray< 2 >, NDim > & padding) |
| void | setSignConversionMidpoint (const device::IdxArray< NDim > & newMidpoint) |
| void | setTranspositionMap_memoryToGlobalSpace (const device::IdxArray< NDim > & input) |
| device::Idx | stride (size_t dim) const |
Public Static Functions
| Type | Name |
|---|---|
| LayoutStruct< NDim > | createGlobalFFTLayout (const device::IdxArray< NDim > & initNGrid) An almost constructor: return a new instance which has a default global FFT layout. |
Detailed Description
Unit test: ctest -R test-layoutstruct
Public Functions Documentation
function LayoutStruct [1/2]
Create a new LayoutStruct object.
inline TempLat::LayoutStruct::LayoutStruct (
const device::IdxArray< NDim > & initNGrid,
const device::Idx nGhosts
)
Template parameters:
CA container with NDim elements
Parameters:
initNGridA container with NDim elements, each element is the size of the grid in that dimension.nGhostsThe number of ghost cells in each dimension.
Returns:
requires
function LayoutStruct [2/2]
function getGlobalSizes
inline DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & TempLat::LayoutStruct::getGlobalSizes () const
function getHermitianPartners
function getLocalSizes [1/2]
function getLocalSizes [2/2]
inline DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & TempLat::LayoutStruct::getLocalSizes () const
function getLocalStarts
inline DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & TempLat::LayoutStruct::getLocalStarts () const
function getMaxRadius
function getNGhosts
function getOrigin
function getPadding
function getSizesInMemory
inline DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & TempLat::LayoutStruct::getSizesInMemory () const
function getTranspositionMap_memoryToGlobalSpace
inline DEVICE_INLINE_FUNCTION const auto & TempLat::LayoutStruct::getTranspositionMap_memoryToGlobalSpace () const
function isTransposed
function putMemoryIndexFromSpatialLocationInto
Inverse of putSpatialLocationFromMemoryIndexInto: from spatial coordinate to memory indices, in memory-layout order (that is, transposed.
template<typename Container, typename... IDX>
inline DEVICE_INLINE_FUNCTION bool TempLat::LayoutStruct::putMemoryIndexFromSpatialLocationInto (
Container & target,
const IDX... pos
) const
function putSpatialLocationFromMemoryIndexInto
local index in some dimension of the memory layout, goes into its corresponding spatial dimension in the target memory. No bounds checking!
template<typename Container, typename... IDX>
inline DEVICE_INLINE_FUNCTION void TempLat::LayoutStruct::putSpatialLocationFromMemoryIndexInto (
Container & target,
const IDX... idx
) const
function putSpatialLocationFromMemoryIndexInto0N
template<typename Container, typename... IDX>
inline DEVICE_INLINE_FUNCTION void TempLat::LayoutStruct::putSpatialLocationFromMemoryIndexInto0N (
Container & target,
const IDX... idx
) const
function setHermitianPartners
inline void TempLat::LayoutStruct::setHermitianPartners (
HermitianPartners < NDim > && newInstance
)
function setLocalSizes
function setLocalStarts
function setNGhosts
function setPadding
inline void TempLat::LayoutStruct::setPadding (
const device::array< device::IdxArray< 2 >, NDim > & padding
)
function setSignConversionMidpoint
inline void TempLat::LayoutStruct::setSignConversionMidpoint (
const device::IdxArray< NDim > & newMidpoint
)
function setTranspositionMap_memoryToGlobalSpace
inline void TempLat::LayoutStruct::setTranspositionMap_memoryToGlobalSpace (
const device::IdxArray< NDim > & input
)
function stride
Public Static Functions Documentation
function createGlobalFFTLayout
An almost constructor: return a new instance which has a default global FFT layout.
static inline LayoutStruct < NDim > TempLat::LayoutStruct::createGlobalFFTLayout (
const device::IdxArray< NDim > & initNGrid
)
Friends Documentation
friend operator<<
inline std::ostream & TempLat::LayoutStruct::operator<< (
std::ostream & ostream,
const LayoutStruct & ls
)
friend operator==
template<size_t d2>
inline bool TempLat::LayoutStruct::operator== (
const LayoutStruct < NDim > & a,
const LayoutStruct < d2 > & b
)
The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/lattice/memory/memorylayouts/layoutstruct.h