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 3202 of file ComputeMsm.C.

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

3203 {
3204 #ifdef MSM_TIMING
3205  double startTime, stopTime;
3206  startTime = CkWallTimer();
3207 #endif
3208  int pid;
3209  gm->get(subgrid, pid, sequence);
3210  delete gm;
3211  qh += subgrid;
3212 #ifdef MSM_TIMING
3213  stopTime = CkWallTimer();
3214  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3215 #endif
3216  if (++cntRecvsCharge == bd->numRecvsCharge) {
3217  int nlevels = mgrLocal->numLevels();
3218  if (blockIndex.level < nlevels-1) {
3219  restriction();
3220  }
3221  gridCutoff();
3222  }
3223 } // MsmBlock::addCharge()
int numLevels() const
Definition: ComputeMsm.C:449
void gridCutoff()
Definition: ComputeMsm.C:3261
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 3353 of file ComputeMsm.C.

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

3354 {
3355 #ifdef MSM_TIMING
3356  double startTime, stopTime;
3357  startTime = CkWallTimer();
3358 #endif
3359  int pid;
3360  int pseq;
3361  gm->get(subgrid, pid, pseq); // receive sender's level
3362  delete gm;
3363  eh += subgrid;
3364 #ifdef MSM_TIMING
3365  stopTime = CkWallTimer();
3366  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3367 #endif
3369  if (blockIndex.level > 0) {
3370  prolongation();
3371  }
3372  else {
3373  sendPatch();
3374  }
3375  }
3376 } // 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:3416
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 3261 of file ComputeMsm.C.

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

3262 {
3263 #ifdef DEBUG_MSM_GRID
3264  printf("MsmBlock level=%d, id=%d %d %d: grid cutoff\n",
3266 #endif
3267 #ifndef MSM_GRID_CUTOFF_DECOMP
3268  gridCutoffKernel();
3269  sendAcrossPotential();
3270 #else // MSM_GRID_CUTOFF_DECOMP
3271 
3272  // send charge block to MsmGridCutoff compute objects
3273 #ifdef MSM_TIMING
3274  double startTime, stopTime;
3275  startTime = CkWallTimer();
3276 #endif
3277  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level)-1;
3278  int msgsz = qh.data().len() * sizeof(Float);
3279  int len = bd->indexGridCutoff.len();
3280 
3281 #if 0
3282  // send charge message to each MsmGridCutoff compute element in list
3283  for (int n = 0; n < len; n++) {
3284 #ifdef MSM_TIMING
3285  startTime = CkWallTimer();
3286 #endif
3287  int index = bd->indexGridCutoff[n];
3288  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3289  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3290  gm->put(qh, blockIndex.level, sequence); // send my level
3291 #ifdef MSM_TIMING
3292  stopTime = CkWallTimer();
3293  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3294 #endif
3295  mgrLocal->msmGridCutoff[index].compute(gm);
3296  }
3297 #else
3298 
3299  // broadcast charge message to section
3300  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3301  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3302  gm->put(qh, blockIndex.level, sequence); // send my level
3303  msmGridCutoffBroadcast.compute(gm);
3304 #ifdef MSM_TIMING
3305  stopTime = CkWallTimer();
3306  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3307 #endif
3308 
3309 #endif // 0
3310 
3311 #endif // MSM_GRID_CUTOFF_DECOMP
3312 
3313 } // 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:3379
void MsmBlock::restriction ( )
inline

Definition at line 3119 of file ComputeMsm.C.

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

Definition at line 3379 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().

3380 {
3381 #ifdef MSM_TIMING
3382  double startTime, stopTime;
3383  startTime = CkWallTimer();
3384 #endif
3385  int lnext = blockIndex.level - 1;
3386  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level);
3387  // buffer portions of grid to send to Blocks on next level
3388  for (int n = 0; n < bd->sendDown.len(); n++) {
3389  // initialize the proper subgrid indexing range
3390  subgrid.init( bd->sendDown[n].nrange );
3391  // extract the values from the larger grid into the subgrid
3393  // translate the subgrid indexing range to match the MSM block
3394  subgrid.updateLower( bd->sendDown[n].nrange_wrap.lower() );
3395  // add the subgrid charges into the block
3396  msm::BlockIndex& bindex = bd->sendDown[n].nblock_wrap;
3397  ASSERT(bindex.level == lnext);
3398  // place subgrid into message
3399  int msgsz = subgrid.nn() * sizeof(Float);
3400  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3401  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3402  gm->put(subgrid, blockIndex.level, sequence); // send my level
3403  // lookup in ComputeMsmMgr proxy array by level
3404  mgrLocal->msmBlock[lnext](
3405  bindex.n.i, bindex.n.j, bindex.n.k).addPotential(gm);
3406  } // for
3407 #ifdef MSM_TIMING
3408  stopTime = CkWallTimer();
3409  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3410  mgrLocal->doneTiming();
3411 #endif
3412  init(); // reinitialize for next computation
3413 } // 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:3353
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 3416 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().

3417 {
3418 #ifdef MSM_TIMING
3419  double startTime, stopTime;
3420  startTime = CkWallTimer();
3421 #endif
3422  int lnext = blockIndex.level;
3423  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level);
3424  ASSERT(lnext == 0);
3425  // buffer portions of grid to send to Blocks on next level
3426  for (int n = 0; n < bd->sendPatch.len(); n++) {
3427  // initialize the proper subgrid indexing range
3428  subgrid.init( bd->sendPatch[n].nrange );
3429  // extract the values from the larger grid into the subgrid
3430  eh.extract(subgrid);
3431  // translate the subgrid indexing range to match the MSM block
3432  subgrid.updateLower( bd->sendPatch[n].nrange_unwrap.lower() );
3433  // add the subgrid charges into the block, need its patch ID
3434  int pid = bd->sendPatch[n].patchID;
3435  // place subgrid into message
3436  int msgsz = subgrid.nn() * sizeof(Float);
3437  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3438  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3439  gm->put(subgrid, pid, sequence); // send patch ID
3440  // lookup which PE has this patch
3441  PatchMap *pm = PatchMap::Object();
3442  int pe = pm->node(pid);
3443  mgrProxy[pe].addPotential(gm);
3444  }
3445 #ifdef MSM_TIMING
3446  stopTime = CkWallTimer();
3447  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3448  mgrLocal->doneTiming();
3449 #endif
3450  init(); // reinitialize for next computation
3451 } // 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 3226 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().

3227 {
3228 #ifdef MSM_TIMING
3229  double startTime, stopTime;
3230  startTime = CkWallTimer();
3231 #endif
3232  int lnext = blockIndex.level + 1;
3233  // buffer portions of grid to send to Blocks on next level
3234  for (int n = 0; n < bd->sendUp.len(); n++) {
3235  // initialize the proper subgrid indexing range
3236  subgrid.init( bd->sendUp[n].nrange );
3237  // extract the values from the larger grid into the subgrid
3239  // translate the subgrid indexing range to match the MSM block
3240  subgrid.updateLower( bd->sendUp[n].nrange_wrap.lower() );
3241  // add the subgrid charges into the block
3242  msm::BlockIndex& bindex = bd->sendUp[n].nblock_wrap;
3243  ASSERT(bindex.level == lnext);
3244  // place subgrid into message
3245  // SET MESSAGE PRIORITY
3246  int msgsz = subgrid.nn() * sizeof(Float);
3247  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3248  SET_PRIORITY(gm, sequence, MSM_PRIORITY + lnext);
3249  gm->put(subgrid, blockIndex.level, sequence); // send my level
3250  // lookup in ComputeMsmMgr proxy array by level
3251  mgrLocal->msmBlock[lnext](
3252  bindex.n.i, bindex.n.j, bindex.n.k).addCharge(gm);
3253  } // for
3254 #ifdef MSM_TIMING
3255  stopTime = CkWallTimer();
3256  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3257 #endif
3258 } // 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:3202
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  std::vector<CkArrayIndex1D> elems;
3148  elems.reserve(bd->indexGridCutoff.len());
3149  for (int n = 0; n < bd->indexGridCutoff.len(); n++) {
3150  elems.emplace_back(bd->indexGridCutoff[n]);
3151  }
3152  msmGridCutoffBroadcast = CProxySection_MsmGridCutoff::ckNew(
3153  mgrLocal->msmGridCutoff, elems.data(), elems.size()
3154  );
3155  CProxy_CkMulticastMgr mcastProxy = CkpvAccess(BOCclass_group).multicastMgr;
3156  CkMulticastMgr *mcastPtr = CProxy_CkMulticastMgr(mcastProxy).ckLocalBranch();
3157  msmGridCutoffBroadcast.ckSectionDelegate(mcastPtr);
3158 
3159 #ifdef DEBUG_MSM_GRID
3160  char s[1024];
3161  sprintf(s, "LEVEL %d MSM BLOCK (%d,%d,%d): "
3162  "creating reduction section on PE %d\n",
3163  blockIndex.level, thisIndex.x, thisIndex.y, thisIndex.z, CkMyPe());
3164 #endif
3165  std::vector<CkArrayIndex1D> elems2;
3166  elems2.reserve(bd->recvGridCutoff.len());
3167 #ifdef DEBUG_MSM_GRID
3168  strcat(s, "receiving from MsmGridCutoff ID:");
3169 #endif
3170  for (int n = 0; n < bd->recvGridCutoff.len(); n++) {
3171 #ifdef DEBUG_MSM_GRID
3172  char t[20];
3173  sprintf(t, " %d", bd->recvGridCutoff[n]);
3174  strcat(s, t);
3175 #endif
3176  elems2.emplace_back(bd->recvGridCutoff[n]);
3177  }
3178 #ifdef DEBUG_MSM_GRID
3179  strcat(s, "\n");
3180  CkPrintf(s);
3181 #endif
3182  msmGridCutoffReduction = CProxySection_MsmGridCutoff::ckNew(
3183  mgrLocal->msmGridCutoff, elems2.data(), elems2.size()
3184  );
3185  msmGridCutoffReduction.ckSectionDelegate(mcastPtr);
3187  CProxyElement_MsmBlock thisElementProxy = thisProxy(thisIndex);
3188  msg->put(&thisElementProxy);
3189 
3190  msmGridCutoffReduction.setupSections(msg); // broadcast to entire section
3191 
3192  /* XXX alternatively, setup default reduction client
3193  *
3194  mcastPtr->setReductionClient(msmGridCutoffReduction,
3195  new CkCallback(CkIndex_MsmBlock::myReductionEntry(NULL),
3196  thisElementProxy));
3197  *
3198  */
3199 }
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:3353
#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: