NAMD
Public Member Functions | Public Attributes | List of all members
MsmBlock Class Reference
Inheritance diagram for MsmBlock:
MsmBlockKernel< Float, Float >

Public Member Functions

 MsmBlock (int level)
 
 MsmBlock (CkMigrateMessage *m)
 
void setupSections ()
 
void sumReducedPotential (CkReductionMsg *msg)
 
void addCharge (GridMsg *)
 
void restriction ()
 
void sendUpCharge ()
 
void gridCutoff ()
 
void addPotential (GridMsg *)
 
void prolongation ()
 
void sendDownPotential ()
 
void sendPatch ()
 
- Public Member Functions inherited from MsmBlockKernel< Float, Float >
 MsmBlockKernel (const msm::BlockIndex &)
 
 MsmBlockKernel (CkMigrateMessage *m)
 
void init ()
 
void setupStencils (const msm::Grid< Float > *res, const msm::Grid< Float > *pro)
 
void restrictionKernel ()
 
void prolongationKernel ()
 

Public Attributes

CProxySection_MsmGridCutoff msmGridCutoffBroadcast
 
CProxySection_MsmGridCutoff msmGridCutoffReduction
 
- Public Attributes inherited from MsmBlockKernel< Float, Float >
CProxy_ComputeMsmMgr mgrProxy
 
ComputeMsmMgrmgrLocal
 
msm::Mapmap
 
msm::BlockDiagrambd
 
msm::Grid< Floatqh
 
msm::Grid< Floateh
 
const msm::Grid< Float > * resStencil
 
const msm::Grid< Float > * proStencil
 
msm::Grid< FloatqhRestricted
 
msm::Grid< FloatehProlongated
 
int cntRecvsCharge
 
int cntRecvsPotential
 
msm::BlockIndex blockIndex
 
msm::Grid< Floatsubgrid
 
int sequence
 

Detailed Description

Definition at line 3071 of file ComputeMsm.C.

Constructor & Destructor Documentation

MsmBlock::MsmBlock ( int  level)
inline

Definition at line 3079 of file ComputeMsm.C.

References msm::Map::gc, msm::Map::grespro, and ComputeMsmMgr::map.

3079  :
3081  msm::BlockIndex(level,
3082  msm::Ivec(thisIndex.x, thisIndex.y, thisIndex.z))
3083  )
3084  {
3085 #ifndef MSM_GRID_CUTOFF_DECOMP
3086  setupStencils(&(map->grespro), &(map->grespro), &(map->gc[level]));
3087 #else
3088  setupStencils(&(map->grespro), &(map->grespro));
3089 #endif
3090  }
Array< Grid< Float > > gc
Definition: MsmMap.h:944
Grid< Float > grespro
Definition: MsmMap.h:946
void setupStencils(const msm::Grid< Float > *res, const msm::Grid< Float > *pro)
Definition: ComputeMsm.C:2774
MsmBlock::MsmBlock ( CkMigrateMessage *  m)
inline

Member Function Documentation

void MsmBlock::addCharge ( GridMsg gm)

Definition at line 3200 of file ComputeMsm.C.

References MsmTimer::COMM, GridMsg::get(), ComputeMsmMgr::nlevels, restriction(), and ComputeMsmMgr::subgrid.

3201 {
3202 #ifdef MSM_TIMING
3203  double startTime, stopTime;
3204  startTime = CkWallTimer();
3205 #endif
3206  int pid;
3207  gm->get(subgrid, pid, sequence);
3208  delete gm;
3209  qh += subgrid;
3210 #ifdef MSM_TIMING
3211  stopTime = CkWallTimer();
3212  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3213 #endif
3214  if (++cntRecvsCharge == bd->numRecvsCharge) {
3215  int nlevels = mgrLocal->numLevels();
3216  if (blockIndex.level < nlevels-1) {
3217  restriction();
3218  }
3219  gridCutoff();
3220  }
3221 } // MsmBlock::addCharge()
int numLevels() const
Definition: ComputeMsm.C:449
void gridCutoff()
Definition: ComputeMsm.C:3259
msm::Grid< Float > subgrid
Definition: ComputeMsm.C:2753
void restriction()
Definition: ComputeMsm.C:3119
msm::BlockDiagram * bd
Definition: ComputeMsm.C:2738
void get(msm::Grid< T > &g, int &id, int &seq)
Definition: ComputeMsm.C:141
int numRecvsCharge
Definition: MsmMap.h:923
void MsmBlock::addPotential ( GridMsg gm)

Definition at line 3351 of file ComputeMsm.C.

References MsmTimer::COMM, GridMsg::get(), prolongation(), and ComputeMsmMgr::subgrid.

3352 {
3353 #ifdef MSM_TIMING
3354  double startTime, stopTime;
3355  startTime = CkWallTimer();
3356 #endif
3357  int pid;
3358  int pseq;
3359  gm->get(subgrid, pid, pseq); // receive sender's level
3360  delete gm;
3361  eh += subgrid;
3362 #ifdef MSM_TIMING
3363  stopTime = CkWallTimer();
3364  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3365 #endif
3367  if (blockIndex.level > 0) {
3368  prolongation();
3369  }
3370  else {
3371  sendPatch();
3372  }
3373  }
3374 } // MsmBlock::addPotential()
void prolongation()
Definition: ComputeMsm.C:3131
msm::Grid< Float > subgrid
Definition: ComputeMsm.C:2753
int numRecvsPotential
Definition: MsmMap.h:924
void sendPatch()
Definition: ComputeMsm.C:3414
msm::BlockDiagram * bd
Definition: ComputeMsm.C:2738
void get(msm::Grid< T > &g, int &id, int &seq)
Definition: ComputeMsm.C:141
void MsmBlock::gridCutoff ( )

Definition at line 3259 of file ComputeMsm.C.

References MsmTimer::COMM, MSM_PRIORITY, GridMsg::put(), and SET_PRIORITY.

3260 {
3261 #ifdef DEBUG_MSM_GRID
3262  printf("MsmBlock level=%d, id=%d %d %d: grid cutoff\n",
3264 #endif
3265 #ifndef MSM_GRID_CUTOFF_DECOMP
3266  gridCutoffKernel();
3267  sendAcrossPotential();
3268 #else // MSM_GRID_CUTOFF_DECOMP
3269 
3270  // send charge block to MsmGridCutoff compute objects
3271 #ifdef MSM_TIMING
3272  double startTime, stopTime;
3273  startTime = CkWallTimer();
3274 #endif
3275  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level)-1;
3276  int msgsz = qh.data().len() * sizeof(Float);
3277  int len = bd->indexGridCutoff.len();
3278 
3279 #if 0
3280  // send charge message to each MsmGridCutoff compute element in list
3281  for (int n = 0; n < len; n++) {
3282 #ifdef MSM_TIMING
3283  startTime = CkWallTimer();
3284 #endif
3285  int index = bd->indexGridCutoff[n];
3286  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3287  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3288  gm->put(qh, blockIndex.level, sequence); // send my level
3289 #ifdef MSM_TIMING
3290  stopTime = CkWallTimer();
3291  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3292 #endif
3293  mgrLocal->msmGridCutoff[index].compute(gm);
3294  }
3295 #else
3296 
3297  // broadcast charge message to section
3298  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3299  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3300  gm->put(qh, blockIndex.level, sequence); // send my level
3301  msmGridCutoffBroadcast.compute(gm);
3302 #ifdef MSM_TIMING
3303  stopTime = CkWallTimer();
3304  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3305 #endif
3306 
3307 #endif // 0
3308 
3309 #endif // MSM_GRID_CUTOFF_DECOMP
3310 
3311 } // MsmBlock::gridCutoff()
int len() const
Definition: MsmMap.h:218
int k
Definition: MsmMap.h:411
const Array< T > & data() const
Definition: MsmMap.h:666
int i
Definition: MsmMap.h:411
#define MSM_PRIORITY
Definition: Priorities.h:36
int j
Definition: MsmMap.h:411
void put(const msm::Grid< T > &g, int id, int seq)
Definition: ComputeMsm.C:126
CProxySection_MsmGridCutoff msmGridCutoffBroadcast
Definition: ComputeMsm.C:3076
CProxy_MsmGridCutoff msmGridCutoff
Definition: ComputeMsm.C:467
float Float
Definition: MsmMap.h:74
msm::BlockDiagram * bd
Definition: ComputeMsm.C:2738
Array< int > indexGridCutoff
Definition: MsmMap.h:917
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
void MsmBlock::prolongation ( )
inline

Definition at line 3131 of file ComputeMsm.C.

3131  {
3134  }
void sendDownPotential()
Definition: ComputeMsm.C:3377
void MsmBlock::restriction ( )
inline

Definition at line 3119 of file ComputeMsm.C.

3119  {
3121  sendUpCharge();
3122  }
void sendUpCharge()
Definition: ComputeMsm.C:3224
void MsmBlock::sendDownPotential ( )

Definition at line 3377 of file ComputeMsm.C.

References ComputeMsmMgr::addPotential(), ASSERT, MsmTimer::COMM, msm::Ivec::i, msm::Grid< T >::init(), msm::Ivec::j, msm::Ivec::k, msm::BlockIndex::level, MSM_PRIORITY, msm::BlockIndex::n, msm::IndexRange::nn(), GridMsg::put(), SET_PRIORITY, ComputeMsmMgr::subgrid, and msm::Grid< T >::updateLower().

3378 {
3379 #ifdef MSM_TIMING
3380  double startTime, stopTime;
3381  startTime = CkWallTimer();
3382 #endif
3383  int lnext = blockIndex.level - 1;
3384  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level);
3385  // buffer portions of grid to send to Blocks on next level
3386  for (int n = 0; n < bd->sendDown.len(); n++) {
3387  // initialize the proper subgrid indexing range
3388  subgrid.init( bd->sendDown[n].nrange );
3389  // extract the values from the larger grid into the subgrid
3391  // translate the subgrid indexing range to match the MSM block
3392  subgrid.updateLower( bd->sendDown[n].nrange_wrap.lower() );
3393  // add the subgrid charges into the block
3394  msm::BlockIndex& bindex = bd->sendDown[n].nblock_wrap;
3395  ASSERT(bindex.level == lnext);
3396  // place subgrid into message
3397  int msgsz = subgrid.nn() * sizeof(Float);
3398  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3399  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3400  gm->put(subgrid, blockIndex.level, sequence); // send my level
3401  // lookup in ComputeMsmMgr proxy array by level
3402  mgrLocal->msmBlock[lnext](
3403  bindex.n.i, bindex.n.j, bindex.n.k).addPotential(gm);
3404  } // for
3405 #ifdef MSM_TIMING
3406  stopTime = CkWallTimer();
3407  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3408  mgrLocal->doneTiming();
3409 #endif
3410  init(); // reinitialize for next computation
3411 } // MsmBlock::sendDownPotential()
int k
Definition: MsmMap.h:411
int i
Definition: MsmMap.h:411
#define MSM_PRIORITY
Definition: Priorities.h:36
msm::Grid< Float > subgrid
Definition: ComputeMsm.C:2753
void extract(Grid< T > &g)
Definition: MsmMap.h:748
int j
Definition: MsmMap.h:411
void init(const IndexRange &n)
Definition: MsmMap.h:603
#define ASSERT(E)
int nn() const
Definition: MsmMap.h:443
void put(const msm::Grid< T > &g, int id, int seq)
Definition: ComputeMsm.C:126
float Float
Definition: MsmMap.h:74
void updateLower(const Ivec &n)
Definition: MsmMap.h:677
void addPotential(GridMsg *)
Definition: ComputeMsm.C:3351
msm::Array< CProxy_MsmBlock > msmBlock
Definition: ComputeMsm.C:464
msm::BlockDiagram * bd
Definition: ComputeMsm.C:2738
msm::Grid< Float > ehProlongated
Definition: ComputeMsm.C:2748
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
Array< BlockSend > sendDown
Definition: MsmMap.h:921
void MsmBlock::sendPatch ( )

Definition at line 3414 of file ComputeMsm.C.

References ASSERT, MsmTimer::COMM, msm::Grid< T >::init(), MSM_PRIORITY, msm::IndexRange::nn(), PatchMap::node(), PatchMap::Object(), GridMsg::put(), SET_PRIORITY, ComputeMsmMgr::subgrid, and msm::Grid< T >::updateLower().

3415 {
3416 #ifdef MSM_TIMING
3417  double startTime, stopTime;
3418  startTime = CkWallTimer();
3419 #endif
3420  int lnext = blockIndex.level;
3421  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level);
3422  ASSERT(lnext == 0);
3423  // buffer portions of grid to send to Blocks on next level
3424  for (int n = 0; n < bd->sendPatch.len(); n++) {
3425  // initialize the proper subgrid indexing range
3426  subgrid.init( bd->sendPatch[n].nrange );
3427  // extract the values from the larger grid into the subgrid
3428  eh.extract(subgrid);
3429  // translate the subgrid indexing range to match the MSM block
3430  subgrid.updateLower( bd->sendPatch[n].nrange_unwrap.lower() );
3431  // add the subgrid charges into the block, need its patch ID
3432  int pid = bd->sendPatch[n].patchID;
3433  // place subgrid into message
3434  int msgsz = subgrid.nn() * sizeof(Float);
3435  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3436  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3437  gm->put(subgrid, pid, sequence); // send patch ID
3438  // lookup which PE has this patch
3439  PatchMap *pm = PatchMap::Object();
3440  int pe = pm->node(pid);
3441  mgrProxy[pe].addPotential(gm);
3442  }
3443 #ifdef MSM_TIMING
3444  stopTime = CkWallTimer();
3445  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3446  mgrLocal->doneTiming();
3447 #endif
3448  init(); // reinitialize for next computation
3449 } // MsmBlock::sendPatch()
static PatchMap * Object()
Definition: PatchMap.h:27
#define MSM_PRIORITY
Definition: Priorities.h:36
msm::Grid< Float > subgrid
Definition: ComputeMsm.C:2753
CProxy_ComputeMsmMgr mgrProxy
Definition: ComputeMsm.C:2735
void extract(Grid< T > &g)
Definition: MsmMap.h:748
void init(const IndexRange &n)
Definition: MsmMap.h:603
#define ASSERT(E)
int nn() const
Definition: MsmMap.h:443
void put(const msm::Grid< T > &g, int id, int seq)
Definition: ComputeMsm.C:126
Array< PatchSend > sendPatch
Definition: MsmMap.h:922
float Float
Definition: MsmMap.h:74
void updateLower(const Ivec &n)
Definition: MsmMap.h:677
int node(int pid) const
Definition: PatchMap.h:114
msm::BlockDiagram * bd
Definition: ComputeMsm.C:2738
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
void MsmBlock::sendUpCharge ( )

Definition at line 3224 of file ComputeMsm.C.

References ASSERT, MsmTimer::COMM, msm::Ivec::i, msm::Grid< T >::init(), msm::Ivec::j, msm::Ivec::k, msm::BlockIndex::level, MSM_PRIORITY, msm::BlockIndex::n, msm::IndexRange::nn(), GridMsg::put(), SET_PRIORITY, ComputeMsmMgr::subgrid, and msm::Grid< T >::updateLower().

3225 {
3226 #ifdef MSM_TIMING
3227  double startTime, stopTime;
3228  startTime = CkWallTimer();
3229 #endif
3230  int lnext = blockIndex.level + 1;
3231  // buffer portions of grid to send to Blocks on next level
3232  for (int n = 0; n < bd->sendUp.len(); n++) {
3233  // initialize the proper subgrid indexing range
3234  subgrid.init( bd->sendUp[n].nrange );
3235  // extract the values from the larger grid into the subgrid
3237  // translate the subgrid indexing range to match the MSM block
3238  subgrid.updateLower( bd->sendUp[n].nrange_wrap.lower() );
3239  // add the subgrid charges into the block
3240  msm::BlockIndex& bindex = bd->sendUp[n].nblock_wrap;
3241  ASSERT(bindex.level == lnext);
3242  // place subgrid into message
3243  // SET MESSAGE PRIORITY
3244  int msgsz = subgrid.nn() * sizeof(Float);
3245  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3246  SET_PRIORITY(gm, sequence, MSM_PRIORITY + lnext);
3247  gm->put(subgrid, blockIndex.level, sequence); // send my level
3248  // lookup in ComputeMsmMgr proxy array by level
3249  mgrLocal->msmBlock[lnext](
3250  bindex.n.i, bindex.n.j, bindex.n.k).addCharge(gm);
3251  } // for
3252 #ifdef MSM_TIMING
3253  stopTime = CkWallTimer();
3254  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3255 #endif
3256 } // MsmBlock::sendUpCharge()
int k
Definition: MsmMap.h:411
int i
Definition: MsmMap.h:411
#define MSM_PRIORITY
Definition: Priorities.h:36
msm::Grid< Float > subgrid
Definition: ComputeMsm.C:2753
Array< BlockSend > sendUp
Definition: MsmMap.h:915
void extract(Grid< T > &g)
Definition: MsmMap.h:748
int j
Definition: MsmMap.h:411
void init(const IndexRange &n)
Definition: MsmMap.h:603
#define ASSERT(E)
int nn() const
Definition: MsmMap.h:443
void addCharge(GridMsg *)
Definition: ComputeMsm.C:3200
void put(const msm::Grid< T > &g, int id, int seq)
Definition: ComputeMsm.C:126
float Float
Definition: MsmMap.h:74
void updateLower(const Ivec &n)
Definition: MsmMap.h:677
msm::Array< CProxy_MsmBlock > msmBlock
Definition: ComputeMsm.C:464
msm::BlockDiagram * bd
Definition: ComputeMsm.C:2738
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
msm::Grid< Float > qhRestricted
Definition: ComputeMsm.C:2747
void MsmBlock::setupSections ( )

Definition at line 3140 of file ComputeMsm.C.

References MsmGridCutoffSetupMsg::put().

3141 {
3142 #ifdef DEBUG_MSM_GRID
3143  CkPrintf("LEVEL %d MSM BLOCK (%d,%d,%d): "
3144  "creating broadcast section on PE %d\n",
3145  blockIndex.level, thisIndex.x, thisIndex.y, thisIndex.z, CkMyPe());
3146 #endif
3147  CkVec<CkArrayIndex1D> elems;
3148  for (int n = 0; n < bd->indexGridCutoff.len(); n++) {
3149  elems.push_back(CkArrayIndex1D( bd->indexGridCutoff[n] ));
3150  }
3151  msmGridCutoffBroadcast = CProxySection_MsmGridCutoff::ckNew(
3152  mgrLocal->msmGridCutoff, elems.getVec(), elems.size()
3153  );
3154  CProxy_CkMulticastMgr mcastProxy = CkpvAccess(BOCclass_group).multicastMgr;
3155  CkMulticastMgr *mcastPtr = CProxy_CkMulticastMgr(mcastProxy).ckLocalBranch();
3156  msmGridCutoffBroadcast.ckSectionDelegate(mcastPtr);
3157 
3158 #ifdef DEBUG_MSM_GRID
3159  char s[1024];
3160  sprintf(s, "LEVEL %d MSM BLOCK (%d,%d,%d): "
3161  "creating reduction section on PE %d\n",
3162  blockIndex.level, thisIndex.x, thisIndex.y, thisIndex.z, CkMyPe());
3163 #endif
3164  CkVec<CkArrayIndex1D> elems2;
3165 #ifdef DEBUG_MSM_GRID
3166  strcat(s, "receiving from MsmGridCutoff ID:");
3167 #endif
3168  for (int n = 0; n < bd->recvGridCutoff.len(); n++) {
3169 #ifdef DEBUG_MSM_GRID
3170  char t[20];
3171  sprintf(t, " %d", bd->recvGridCutoff[n]);
3172  strcat(s, t);
3173 #endif
3174  elems2.push_back(CkArrayIndex1D( bd->recvGridCutoff[n] ));
3175  }
3176 #ifdef DEBUG_MSM_GRID
3177  strcat(s, "\n");
3178  CkPrintf(s);
3179 #endif
3180  msmGridCutoffReduction = CProxySection_MsmGridCutoff::ckNew(
3181  mgrLocal->msmGridCutoff, elems2.getVec(), elems2.size()
3182  );
3183  msmGridCutoffReduction.ckSectionDelegate(mcastPtr);
3185  CProxyElement_MsmBlock thisElementProxy = thisProxy(thisIndex);
3186  msg->put(&thisElementProxy);
3187 
3188  msmGridCutoffReduction.setupSections(msg); // broadcast to entire section
3189 
3190  /* XXX alternatively, setup default reduction client
3191  *
3192  mcastPtr->setReductionClient(msmGridCutoffReduction,
3193  new CkCallback(CkIndex_MsmBlock::myReductionEntry(NULL),
3194  thisElementProxy));
3195  *
3196  */
3197 }
Array< int > recvGridCutoff
Definition: MsmMap.h:919
int len() const
Definition: MsmMap.h:218
void put(const CProxyElement_MsmBlock *q)
Definition: ComputeMsm.C:252
CProxySection_MsmGridCutoff msmGridCutoffBroadcast
Definition: ComputeMsm.C:3076
CProxy_MsmGridCutoff msmGridCutoff
Definition: ComputeMsm.C:467
msm::BlockDiagram * bd
Definition: ComputeMsm.C:2738
Array< int > indexGridCutoff
Definition: MsmMap.h:917
CProxySection_MsmGridCutoff msmGridCutoffReduction
Definition: ComputeMsm.C:3077
void MsmBlock::sumReducedPotential ( CkReductionMsg *  msg)
inline

Definition at line 3095 of file ComputeMsm.C.

References ComputeMsmMgr::addPotential(), msm::Array< T >::buffer(), MsmTimer::COMM, msm::Grid< T >::data(), msm::Grid< T >::init(), msm::Array< T >::len(), MSM_PRIORITY, GridMsg::put(), and SET_PRIORITY.

3095  {
3096 #ifdef MSM_TIMING
3097  double startTime, stopTime;
3098  startTime = CkWallTimer();
3099 #endif
3100  msm::Grid<Float> ehfull;
3101  ehfull.init( msm::IndexRange(eh) );
3102  memcpy(ehfull.data().buffer(), msg->getData(), msg->getSize());
3103  delete msg;
3104  int priority = mgrLocal->nlevels
3105  + 2*(mgrLocal->nlevels - blockIndex.level)-1;
3106  int msgsz = ehfull.data().len() * sizeof(Float);
3107  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3108  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3109  gm->put(ehfull, blockIndex.level, sequence); // send my level
3110 #ifdef MSM_TIMING
3111  stopTime = CkWallTimer();
3112  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3113 #endif
3114  addPotential(gm);
3115  }
int len() const
Definition: MsmMap.h:218
const Array< T > & data() const
Definition: MsmMap.h:666
#define MSM_PRIORITY
Definition: Priorities.h:36
void init(const IndexRange &n)
Definition: MsmMap.h:603
void put(const msm::Grid< T > &g, int id, int seq)
Definition: ComputeMsm.C:126
float Float
Definition: MsmMap.h:74
void addPotential(GridMsg *)
Definition: ComputeMsm.C:3351
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
const T * buffer() const
Definition: MsmMap.h:259

Member Data Documentation

CProxySection_MsmGridCutoff MsmBlock::msmGridCutoffBroadcast

Definition at line 3076 of file ComputeMsm.C.

CProxySection_MsmGridCutoff MsmBlock::msmGridCutoffReduction

Definition at line 3077 of file ComputeMsm.C.


The documentation for this class was generated from the following file: