18 _conn(conn), _bandwidth(semi_bandwidth)
53 _procID = MPI::COMM_WORLD.Get_rank();
79 shared_ptr<Field> cellIndicesField(
new Field(
"cellID") );
82 const int cellCount = cells.
getCount();
83 shared_ptr< Array<int> > indPtr(
new Array<int>(cellCount) );
89 for (
int n = 0; n < cells.
getCount(); n++ ){
94 cellIndicesField->addArray(cells, indPtr);
96 cellIndicesField->syncLocal();
100 for (
int i = ibeg; i < iend; i++ ){
112 for (
int i = 1; i <=
_procID; i++)
118 foreach(
const StorageSite::GatherMap::value_type& mpos, gatherMap ){
121 const Array<int>& ghostIndices = *(mpos.second);
124 for (
int n = 0; n < ghostIndices.
getLength(); n++ ){
125 innerIndices[n] =
_conn( ghostIndices[n], 0 );
128 int indx_base_other = 0;
129 for (
int i = 1; i <= oRank; i++)
133 for (
int n = 0; n < ghostIndices.
getLength(); n++ ){
134 const int iGlbIndx = indx_base + innerIndices[n];
135 const int jGlbIndx = indx_base_other +
_ghostMap[ ghostIndices[n] ];
137 if ( (iGlbIndx > jGlbIndx) && ((iGlbIndx - jGlbIndx) <=
_bandwidth) ){
140 _LSPK_I.push_back( innerIndices[n] );
143 }
else if ( (iGlbIndx < jGlbIndx) && (jGlbIndx - iGlbIndx) <=
_bandwidth ) {
146 _RSPK_I.push_back( innerIndices[n] );
147 _RSPK_J.push_back( jGlbIndx - indx_base_other );
163 for (
int j = row[rowIndx]; j < row[rowIndx+1]; j++ ){
164 const int neighCellID = col[j];
172 for (
int j = row[rowIndx]; j < row[rowIndx+1]; j++ ){
173 const int neighCellID = col[j];
const Array< int > & getCol() const
const Array< int > & getRow() const
vector< int > _RSPK_GHOST
vector< int > _LSPK_OFFD_PTR
vector< int > _LSPKCountGhost
vector< int > _RSPK_OFFD_PTR
vector< int > _LSPK_GHOST
vector< int > _RSPKCountGhost
vector< int > _RSPK_INTERIOR
int getGatherProcID() const
const CRConnectivity & _conn
map< int, int > _ghostMap
SpikeStorage(const CRConnectivity &conn, int semi_bandwidth)
const GatherMap & getGatherMap() const
vector< int > _cellSelfCounts
map< const StorageSite *, shared_ptr< Array< int > > > GatherMap
const StorageSite & getRowSite() const
vector< int > _LSPK_INTERIOR