30#ifndef GRID_CARTESIAN_BASE_H
31#define GRID_CARTESIAN_BASE_H
48 template<
class object>
friend class Lattice;
230 gidx+=
mult*gcoor[mu];
240 pcoor[mu] = gcoor[mu]/_fld;
241 lcoor[mu] = gcoor[mu]%_fld;
274 for(
int mu=0;mu<
_ndimension;mu++) gcoor[mu] += coor[mu];
281 fcoor[0] = fcoor[0]*2+cb;
AcceleratorVector< int, MaxDims > Coordinate
void mult(Lattice< obj1 > &ret, const Lattice< obj2 > &lhs, const Lattice< obj3 > &rhs)
GridLogger GridLogMessage(1, "Message", GridLogColours, "NORMAL")
#define NAMESPACE_BEGIN(A)
accelerator_inline void resize(size_type sz)
void ProcessorCoorFromRank(int rank, Coordinate &coor)
CartesianCommunicator(const Coordinate &processors, const CartesianCommunicator &parent, int &srank)
int RankFromProcessorCoor(Coordinate &coor)
unsigned long _ndimension
void LocalIndexToLocalCoor(int lidx, Coordinate &lcoor)
GridBase(const Coordinate &processor_grid, const CartesianCommunicator &parent, int &split_rank)
int PermuteDim(int dimension)
const Coordinate & GlobalDimensions(void)
virtual int CheckerBoardFromOindex(int Oindex)=0
int oIndexReduced(Coordinate &ocoor)
int64_t gSites(void) const
int PermuteType(int dimension)
virtual int oIndex(Coordinate &coor)
void GlobalCoorToRankIndex(int &rank, int &o_idx, int &i_idx, const Coordinate &gcoor)
Coordinate _checker_dim_mask
virtual int CheckerBoarded(int dim)=0
void InOutCoorToLocalCoor(Coordinate &ocoor, Coordinate &icoor, Coordinate &lcoor)
GridBase(const Coordinate &processor_grid)
virtual int CheckerBoard(const Coordinate &site)=0
void oCoorFromOindex(Coordinate &coor, int Oindex)
void show_decomposition()
virtual ~GridBase()=default
void GlobalCoorToProcessorCoorLocalCoor(Coordinate &pcoor, Coordinate &lcoor, const Coordinate &gcoor)
virtual int CheckerBoardFromOindexTable(int Oindex)=0
void GlobalCoorToGlobalIndex(const Coordinate &gcoor, int64_t &gidx)
void RankIndexToGlobalCoor(int rank, int o_idx, int i_idx, Coordinate &gcoor)
virtual int CheckerBoardShift(int source_cb, int dim, int shift, int osite)=0
virtual int iIndex(Coordinate &lcoor)
const Coordinate & FullDimensions(void)
void ProcessorCoorLocalCoorToGlobalCoor(Coordinate &Pcoor, Coordinate &Lcoor, Coordinate &gcoor)
void RankIndexCbToFullGlobalCoor(int rank, int o_idx, int i_idx, int cb, Coordinate &fcoor)
void GlobalIndexToGlobalCoor(int64_t gidx, Coordinate &gcoor)
const Coordinate & LocalDimensions(void)
virtual int CheckerBoardDestination(int source_cb, int shift, int dim)=0
const Coordinate LocalStarts(void)
void iCoorFromIindex(Coordinate &coor, int lane)
GridBase(const Coordinate &processor_grid, const CartesianCommunicator &parent)
virtual int CheckerBoardShiftForCB(int source_cb, int dim, int shift, int cb)=0
const Coordinate & VirtualLocalDimensions(void)