mirror of
https://github.com/paboyle/Grid.git
synced 2025-10-13 12:44:42 +01:00
Need to protect pole operatoins to only take place on IcosahedralVertices mesh
This commit is contained in:
@@ -108,6 +108,8 @@ public:
|
||||
int southPoleOsites;
|
||||
|
||||
virtual int Icosahedral(void) override { return 1;}
|
||||
virtual int IcosahedralVertices(void) override { return meshType==IcosahedralVertices;}
|
||||
virtual int IcosahedralEdges (void) override { return meshType==IcosahedralEdges;}
|
||||
virtual int ownsNorthPole(void) const override { return hasNorthPole; };
|
||||
virtual int NorthPoleOsite(void) const override { return northPoleOsite; };
|
||||
virtual int NorthPoleOsites(void) const override { return northPoleOsites; };
|
||||
|
@@ -88,6 +88,8 @@ public:
|
||||
|
||||
// Icosahedral decisions
|
||||
virtual int Icosahedral(void) { return 0;}
|
||||
virtual int IcosahedralVertices(void) { return 0;}
|
||||
virtual int IcosahedralEdges (void) { return 0;}
|
||||
virtual int ownsNorthPole(void) const { return 0; };
|
||||
virtual int ownsSouthPole(void) const { return 0; };
|
||||
virtual int NorthPoleOsite(void) const { return 0; };
|
||||
|
@@ -58,7 +58,7 @@ template<class iobj> inline void LatticeCoordinate(Lattice<iobj> &l,int mu)
|
||||
});
|
||||
}
|
||||
|
||||
if (grid->Icosahedral()) {
|
||||
if (grid->IcosahedralVertices()) {
|
||||
uint64_t psites=1;
|
||||
Coordinate perpdims;
|
||||
typename iobj::scalar_object ss;
|
||||
@@ -95,7 +95,9 @@ template<class iobj> inline void LatticePole(Lattice<iobj> &l,NorthSouth pole)
|
||||
|
||||
l=Zero();
|
||||
|
||||
if (grid->Icosahedral()) {
|
||||
assert(grid->IcosahedralVertices());
|
||||
|
||||
if (grid->IcosahedralVertices()) {
|
||||
uint64_t psites=1;
|
||||
Coordinate perpdims;
|
||||
sobj ss;
|
||||
|
@@ -160,6 +160,7 @@ void peekPole(sobj &s,const Lattice<vobj> &l,const Coordinate &orthog,NorthSouth
|
||||
GridBase *grid=l.Grid();
|
||||
|
||||
assert(grid->Icosahedral());
|
||||
assert(grid->IcosahedralVertices());
|
||||
|
||||
int Nsimd = grid->Nsimd();
|
||||
|
||||
@@ -220,6 +221,7 @@ void pokePole(const sobj &s,Lattice<vobj> &l,const Coordinate &orthog,NorthSouth
|
||||
GridBase *grid=l.Grid();
|
||||
|
||||
assert(grid->Icosahedral());
|
||||
assert(grid->IcosahedralVertices());
|
||||
|
||||
grid->Broadcast(grid->BossRank(),s);
|
||||
|
||||
|
Reference in New Issue
Block a user