Skip to content

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:

  • C A container with NDim elements

Parameters:

  • initNGrid A container with NDim elements, each element is the size of the grid in that dimension.
  • nGhosts The number of ghost cells in each dimension.

Returns:

requires


function LayoutStruct [2/2]

inline TempLat::LayoutStruct::LayoutStruct () 

function getGlobalSizes

inline DEVICE_INLINE_FUNCTION const device::IdxArray< NDim > & TempLat::LayoutStruct::getGlobalSizes () const

function getHermitianPartners

inline DEVICE_INLINE_FUNCTION const auto & TempLat::LayoutStruct::getHermitianPartners () const

function getLocalSizes [1/2]

inline device::IdxArray< NDim > & TempLat::LayoutStruct::getLocalSizes () 

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

template<typename T>
inline DEVICE_INLINE_FUNCTION T TempLat::LayoutStruct::getMaxRadius () const

function getNGhosts

inline device::Idx TempLat::LayoutStruct::getNGhosts () const

function getOrigin

inline device::Idx TempLat::LayoutStruct::getOrigin () const

function getPadding

inline device::array< device::IdxArray< 2 >, NDim > TempLat::LayoutStruct::getPadding () const

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

inline DEVICE_INLINE_FUNCTION bool TempLat::LayoutStruct::isTransposed () const

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

inline void TempLat::LayoutStruct::setLocalSizes (
    const device::IdxArray< NDim > & input
) 

function setLocalStarts

inline void TempLat::LayoutStruct::setLocalStarts (
    const device::IdxArray< NDim > & input
) 

function setNGhosts

inline void TempLat::LayoutStruct::setNGhosts (
    const device::Idx & nGhosts
) 

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

inline device::Idx TempLat::LayoutStruct::stride (
    size_t dim
) const

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