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

Public Member Functions

 MsmC1HermiteBlock (int level)
 
 MsmC1HermiteBlock (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< C1Vector, C1Matrix >
 MsmBlockKernel (const msm::BlockIndex &)
 
 MsmBlockKernel (CkMigrateMessage *m)
 
void init ()
 
void setupStencils (const msm::Grid< C1Matrix > *res, const msm::Grid< C1Matrix > *pro)
 
void restrictionKernel ()
 
void prolongationKernel ()
 

Public Attributes

CProxySection_MsmC1HermiteGridCutoff msmGridCutoffBroadcast
 
CProxySection_MsmC1HermiteGridCutoff msmGridCutoffReduction
 
- Public Attributes inherited from MsmBlockKernel< C1Vector, C1Matrix >
CProxy_ComputeMsmMgr mgrProxy
 
ComputeMsmMgrmgrLocal
 
msm::Mapmap
 
msm::BlockDiagrambd
 
msm::Grid< C1Vectorqh
 
msm::Grid< C1Vectoreh
 
const msm::Grid< C1Matrix > * resStencil
 
const msm::Grid< C1Matrix > * proStencil
 
msm::Grid< C1VectorqhRestricted
 
msm::Grid< C1VectorehProlongated
 
int cntRecvsCharge
 
int cntRecvsPotential
 
msm::BlockIndex blockIndex
 
msm::Grid< C1Vectorsubgrid
 
int sequence
 

Detailed Description

Definition at line 3456 of file ComputeMsm.C.

Constructor & Destructor Documentation

MsmC1HermiteBlock::MsmC1HermiteBlock ( int  level)
inline

Definition at line 3464 of file ComputeMsm.C.

References msm::Map::gc_c1hermite, msm::Map::gpro_c1hermite, msm::Map::gres_c1hermite, msm::Map::gridrange, and ComputeMsmMgr::map.

3464  :
3466  msm::BlockIndex(level,
3467  msm::Ivec(thisIndex.x, thisIndex.y, thisIndex.z))
3468  )
3469  {
3470  int isfirstlevel = (level == 0);
3471  int istoplevel = (level == map->gridrange.len()-1);
3472  const msm::Grid<C1Matrix> *res =
3473  (istoplevel ? NULL : &(map->gres_c1hermite[level]));
3474  const msm::Grid<C1Matrix> *pro =
3475  (isfirstlevel ? NULL : &(map->gpro_c1hermite[level-1]));
3476 #ifndef MSM_GRID_CUTOFF_DECOMP
3477  const msm::Grid<C1Matrix> *gc = &(map->gc_c1hermite[level]);
3478  setupStencils(res, pro, gc);
3479 #else
3480  setupStencils(res, pro);
3481 #endif
3482  }
Array< Grid< C1Matrix > > gpro_c1hermite
Definition: MsmMap.h:952
Array< Grid< C1Matrix > > gres_c1hermite
Definition: MsmMap.h:951
Array< IndexRange > gridrange
Definition: MsmMap.h:942
Array< Grid< C1Matrix > > gc_c1hermite
Definition: MsmMap.h:949
void setupStencils(const msm::Grid< C1Matrix > *res, const msm::Grid< C1Matrix > *pro)
Definition: ComputeMsm.C:2774
MsmC1HermiteBlock::MsmC1HermiteBlock ( CkMigrateMessage *  m)
inline

Member Function Documentation

void MsmC1HermiteBlock::addCharge ( GridMsg gm)

Definition at line 3593 of file ComputeMsm.C.

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

3594 {
3595 #ifdef MSM_TIMING
3596  double startTime, stopTime;
3597  startTime = CkWallTimer();
3598 #endif
3599  int pid;
3600  gm->get(subgrid, pid, sequence);
3601  delete gm;
3602  qh += subgrid;
3603 #ifdef MSM_TIMING
3604  stopTime = CkWallTimer();
3605  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3606 #endif
3607  if (++cntRecvsCharge == bd->numRecvsCharge) {
3608  int nlevels = mgrLocal->numLevels();
3609  if (blockIndex.level < nlevels-1) {
3610  restriction();
3611  }
3612  gridCutoff();
3613  }
3614 } // MsmC1HermiteBlock::addCharge()
int numLevels() const
Definition: ComputeMsm.C:449
void get(msm::Grid< T > &g, int &id, int &seq)
Definition: ComputeMsm.C:141
int numRecvsCharge
Definition: MsmMap.h:923
void MsmC1HermiteBlock::addPotential ( GridMsg gm)

Definition at line 3744 of file ComputeMsm.C.

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

3745 {
3746 #ifdef MSM_TIMING
3747  double startTime, stopTime;
3748  startTime = CkWallTimer();
3749 #endif
3750  int pid;
3751  int pseq;
3752  gm->get(subgrid, pid, pseq); // receive sender's level
3753  delete gm;
3754  eh += subgrid;
3755 #ifdef MSM_TIMING
3756  stopTime = CkWallTimer();
3757  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3758 #endif
3760  if (blockIndex.level > 0) {
3761  prolongation();
3762  }
3763  else {
3764  sendPatch();
3765  }
3766  }
3767 } // MsmC1HermiteBlock::addPotential()
int numRecvsPotential
Definition: MsmMap.h:924
void get(msm::Grid< T > &g, int &id, int &seq)
Definition: ComputeMsm.C:141
void MsmC1HermiteBlock::gridCutoff ( )

Definition at line 3652 of file ComputeMsm.C.

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

3653 {
3654 #ifdef DEBUG_MSM_GRID
3655  printf("MsmC1HermiteBlock level=%d, id=%d %d %d: grid cutoff\n",
3657 #endif
3658 #ifndef MSM_GRID_CUTOFF_DECOMP
3659  gridCutoffKernel();
3660  sendAcrossPotential();
3661 #else // MSM_GRID_CUTOFF_DECOMP
3662 
3663  // send charge block to MsmGridCutoff compute objects
3664 #ifdef MSM_TIMING
3665  double startTime, stopTime;
3666  startTime = CkWallTimer();
3667 #endif
3668  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level)-1;
3669  int msgsz = qh.data().len() * sizeof(C1Vector);
3670  int len = bd->indexGridCutoff.len();
3671 
3672 #if 0
3673  // send charge message to each MsmGridCutoff compute element in list
3674  for (int n = 0; n < len; n++) {
3675 #ifdef MSM_TIMING
3676  startTime = CkWallTimer();
3677 #endif
3678  int index = bd->indexGridCutoff[n];
3679  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3680  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3681  gm->put(qh, blockIndex.level, sequence); // send my level
3682 #ifdef MSM_TIMING
3683  stopTime = CkWallTimer();
3684  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3685 #endif
3686  mgrLocal->msmGridCutoff[index].compute(gm);
3687  }
3688 #else
3689 
3690  // broadcast charge message to section
3691  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3692  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3693  gm->put(qh, blockIndex.level, sequence); // send my level
3694  msmGridCutoffBroadcast.compute(gm);
3695 #ifdef MSM_TIMING
3696  stopTime = CkWallTimer();
3697  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3698 #endif
3699 
3700 #endif // 0
3701 
3702 #endif // MSM_GRID_CUTOFF_DECOMP
3703 
3704 } // MsmC1HermiteBlock::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
CProxySection_MsmC1HermiteGridCutoff msmGridCutoffBroadcast
Definition: ComputeMsm.C:3461
int j
Definition: MsmMap.h:411
void put(const msm::Grid< T > &g, int id, int seq)
Definition: ComputeMsm.C:126
CProxy_MsmGridCutoff msmGridCutoff
Definition: ComputeMsm.C:467
Array< int > indexGridCutoff
Definition: MsmMap.h:917
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
void MsmC1HermiteBlock::prolongation ( )
inline

Definition at line 3524 of file ComputeMsm.C.

3524  {
3527  }
void sendDownPotential()
Definition: ComputeMsm.C:3770
void MsmC1HermiteBlock::restriction ( )
inline

Definition at line 3512 of file ComputeMsm.C.

3512  {
3514  sendUpCharge();
3515  }
void MsmC1HermiteBlock::sendDownPotential ( )

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

3771 {
3772 #ifdef MSM_TIMING
3773  double startTime, stopTime;
3774  startTime = CkWallTimer();
3775 #endif
3776  int lnext = blockIndex.level - 1;
3777  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level);
3778  // buffer portions of grid to send to Blocks on next level
3779  for (int n = 0; n < bd->sendDown.len(); n++) {
3780  // initialize the proper subgrid indexing range
3781  subgrid.init( bd->sendDown[n].nrange );
3782  // extract the values from the larger grid into the subgrid
3784  // translate the subgrid indexing range to match the MSM block
3785  subgrid.updateLower( bd->sendDown[n].nrange_wrap.lower() );
3786  // add the subgrid charges into the block
3787  msm::BlockIndex& bindex = bd->sendDown[n].nblock_wrap;
3788  ASSERT(bindex.level == lnext);
3789  // place subgrid into message
3790  int msgsz = subgrid.nn() * sizeof(C1Vector);
3791  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3792  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3793  gm->put(subgrid, blockIndex.level, sequence); // send my level
3794  // lookup in ComputeMsmMgr proxy array by level
3795  mgrLocal->msmC1HermiteBlock[lnext](
3796  bindex.n.i, bindex.n.j, bindex.n.k).addPotential(gm);
3797  } // for
3798 #ifdef MSM_TIMING
3799  stopTime = CkWallTimer();
3800  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3801  mgrLocal->doneTiming();
3802 #endif
3803  init(); // reinitialize for next computation
3804 } // MsmC1HermiteBlock::sendDownPotential()
int k
Definition: MsmMap.h:411
void addPotential(GridMsg *)
Definition: ComputeMsm.C:3744
int i
Definition: MsmMap.h:411
#define MSM_PRIORITY
Definition: Priorities.h:36
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
void updateLower(const Ivec &n)
Definition: MsmMap.h:677
msm::Array< CProxy_MsmC1HermiteBlock > msmC1HermiteBlock
Definition: ComputeMsm.C:465
msm::Grid< C1Vector > ehProlongated
Definition: ComputeMsm.C:2748
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
Array< BlockSend > sendDown
Definition: MsmMap.h:921
void MsmC1HermiteBlock::sendPatch ( )

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

3808 {
3809 #ifdef MSM_TIMING
3810  double startTime, stopTime;
3811  startTime = CkWallTimer();
3812 #endif
3813  int lnext = blockIndex.level;
3814  int priority = mgrLocal->nlevels + 2*(mgrLocal->nlevels - blockIndex.level);
3815  ASSERT(lnext == 0);
3816  // buffer portions of grid to send to Blocks on next level
3817  for (int n = 0; n < bd->sendPatch.len(); n++) {
3818  // initialize the proper subgrid indexing range
3819  subgrid.init( bd->sendPatch[n].nrange );
3820  // extract the values from the larger grid into the subgrid
3821  eh.extract(subgrid);
3822  // translate the subgrid indexing range to match the MSM block
3823  subgrid.updateLower( bd->sendPatch[n].nrange_unwrap.lower() );
3824  // add the subgrid charges into the block, need its patch ID
3825  int pid = bd->sendPatch[n].patchID;
3826  // place subgrid into message
3827  int msgsz = subgrid.nn() * sizeof(C1Vector);
3828  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3829  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3830  gm->put(subgrid, pid, sequence); // send patch ID
3831  // lookup which PE has this patch
3832  PatchMap *pm = PatchMap::Object();
3833  int pe = pm->node(pid);
3834  mgrProxy[pe].addPotential(gm);
3835  }
3836 #ifdef MSM_TIMING
3837  stopTime = CkWallTimer();
3838  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3839  mgrLocal->doneTiming();
3840 #endif
3841  init(); // reinitialize for next computation
3842 } // MsmC1HermiteBlock::sendPatch()
static PatchMap * Object()
Definition: PatchMap.h:27
#define MSM_PRIORITY
Definition: Priorities.h:36
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
void updateLower(const Ivec &n)
Definition: MsmMap.h:677
int node(int pid) const
Definition: PatchMap.h:114
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
void MsmC1HermiteBlock::sendUpCharge ( )

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

3618 {
3619 #ifdef MSM_TIMING
3620  double startTime, stopTime;
3621  startTime = CkWallTimer();
3622 #endif
3623  int lnext = blockIndex.level + 1;
3624  // buffer portions of grid to send to Blocks on next level
3625  for (int n = 0; n < bd->sendUp.len(); n++) {
3626  // initialize the proper subgrid indexing range
3627  subgrid.init( bd->sendUp[n].nrange );
3628  // extract the values from the larger grid into the subgrid
3630  // translate the subgrid indexing range to match the MSM block
3631  subgrid.updateLower( bd->sendUp[n].nrange_wrap.lower() );
3632  // add the subgrid charges into the block
3633  msm::BlockIndex& bindex = bd->sendUp[n].nblock_wrap;
3634  ASSERT(bindex.level == lnext);
3635  // place subgrid into message
3636  // SET MESSAGE PRIORITY
3637  int msgsz = subgrid.nn() * sizeof(C1Vector);
3638  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3639  SET_PRIORITY(gm, sequence, MSM_PRIORITY + lnext);
3640  gm->put(subgrid, blockIndex.level, sequence); // send my level
3641  // lookup in ComputeMsmMgr proxy array by level
3642  mgrLocal->msmC1HermiteBlock[lnext](
3643  bindex.n.i, bindex.n.j, bindex.n.k).addCharge(gm);
3644  } // for
3645 #ifdef MSM_TIMING
3646  stopTime = CkWallTimer();
3647  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3648 #endif
3649 } // MsmC1HermiteBlock::sendUpCharge()
void addCharge(GridMsg *)
Definition: ComputeMsm.C:3593
int k
Definition: MsmMap.h:411
int i
Definition: MsmMap.h:411
#define MSM_PRIORITY
Definition: Priorities.h:36
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 put(const msm::Grid< T > &g, int id, int seq)
Definition: ComputeMsm.C:126
void updateLower(const Ivec &n)
Definition: MsmMap.h:677
msm::Array< CProxy_MsmC1HermiteBlock > msmC1HermiteBlock
Definition: ComputeMsm.C:465
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
msm::Grid< C1Vector > qhRestricted
Definition: ComputeMsm.C:2747
void MsmC1HermiteBlock::setupSections ( )

Definition at line 3533 of file ComputeMsm.C.

References MsmC1HermiteGridCutoffSetupMsg::put().

3534 {
3535 #ifdef DEBUG_MSM_GRID
3536  CkPrintf("LEVEL %d MSM C1 HERMITE BLOCK (%d,%d,%d): "
3537  "creating broadcast section on PE %d\n",
3538  blockIndex.level, thisIndex.x, thisIndex.y, thisIndex.z, CkMyPe());
3539 #endif
3540  CkVec<CkArrayIndex1D> elems;
3541  for (int n = 0; n < bd->indexGridCutoff.len(); n++) {
3542  elems.push_back(CkArrayIndex1D( bd->indexGridCutoff[n] ));
3543  }
3544  msmGridCutoffBroadcast = CProxySection_MsmC1HermiteGridCutoff::ckNew(
3545  mgrLocal->msmC1HermiteGridCutoff, elems.getVec(), elems.size()
3546  );
3547  CProxy_CkMulticastMgr mcastProxy = CkpvAccess(BOCclass_group).multicastMgr;
3548  CkMulticastMgr *mcastPtr = CProxy_CkMulticastMgr(mcastProxy).ckLocalBranch();
3549  msmGridCutoffBroadcast.ckSectionDelegate(mcastPtr);
3550 
3551 #ifdef DEBUG_MSM_GRID
3552  char s[1024];
3553  sprintf(s, "LEVEL %d MSM C1 HERMITE BLOCK (%d,%d,%d): "
3554  "creating reduction section on PE %d\n",
3555  blockIndex.level, thisIndex.x, thisIndex.y, thisIndex.z, CkMyPe());
3556 #endif
3557  CkVec<CkArrayIndex1D> elems2;
3558 #ifdef DEBUG_MSM_GRID
3559  strcat(s, "receiving from MsmC1HermiteGridCutoff ID:");
3560 #endif
3561  for (int n = 0; n < bd->recvGridCutoff.len(); n++) {
3562 #ifdef DEBUG_MSM_GRID
3563  char t[20];
3564  sprintf(t, " %d", bd->recvGridCutoff[n]);
3565  strcat(s, t);
3566 #endif
3567  elems2.push_back(CkArrayIndex1D( bd->recvGridCutoff[n] ));
3568  }
3569 #ifdef DEBUG_MSM_GRID
3570  strcat(s, "\n");
3571  CkPrintf(s);
3572 #endif
3573  msmGridCutoffReduction = CProxySection_MsmC1HermiteGridCutoff::ckNew(
3574  mgrLocal->msmC1HermiteGridCutoff, elems2.getVec(), elems2.size()
3575  );
3576  msmGridCutoffReduction.ckSectionDelegate(mcastPtr);
3578  CProxyElement_MsmC1HermiteBlock thisElementProxy = thisProxy(thisIndex);
3579  msg->put(&thisElementProxy);
3580 
3581  msmGridCutoffReduction.setupSections(msg); // broadcast to entire section
3582 
3583  /* XXX alternatively, setup default reduction client
3584  *
3585  mcastPtr->setReductionClient(msmGridCutoffReduction,
3586  new CkCallback(CkIndex_MsmC1HermiteBlock::myReductionEntry(NULL),
3587  thisElementProxy));
3588  *
3589  */
3590 } // MsmC1HermiteBlock::setupSections()
Array< int > recvGridCutoff
Definition: MsmMap.h:919
int len() const
Definition: MsmMap.h:218
CProxySection_MsmC1HermiteGridCutoff msmGridCutoffBroadcast
Definition: ComputeMsm.C:3461
CProxySection_MsmC1HermiteGridCutoff msmGridCutoffReduction
Definition: ComputeMsm.C:3462
CProxy_MsmC1HermiteGridCutoff msmC1HermiteGridCutoff
Definition: ComputeMsm.C:468
Array< int > indexGridCutoff
Definition: MsmMap.h:917
void put(const CProxyElement_MsmC1HermiteBlock *q)
Definition: ComputeMsm.C:274
void MsmC1HermiteBlock::sumReducedPotential ( CkReductionMsg *  msg)
inline

Definition at line 3488 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.

3488  {
3489 #ifdef MSM_TIMING
3490  double startTime, stopTime;
3491  startTime = CkWallTimer();
3492 #endif
3493  msm::Grid<C1Vector> ehfull;
3494  ehfull.init( msm::IndexRange(eh) );
3495  memcpy(ehfull.data().buffer(), msg->getData(), msg->getSize());
3496  delete msg;
3497  int priority = mgrLocal->nlevels
3498  + 2*(mgrLocal->nlevels - blockIndex.level)-1;
3499  int msgsz = ehfull.data().len() * sizeof(C1Vector);
3500  GridMsg *gm = new(msgsz, sizeof(int)) GridMsg;
3501  SET_PRIORITY(gm, sequence, MSM_PRIORITY + priority);
3502  gm->put(ehfull, blockIndex.level, sequence); // send my level
3503 #ifdef MSM_TIMING
3504  stopTime = CkWallTimer();
3505  mgrLocal->msmTiming[MsmTimer::COMM] += stopTime - startTime;
3506 #endif
3507  addPotential(gm);
3508  }
int len() const
Definition: MsmMap.h:218
const Array< T > & data() const
Definition: MsmMap.h:666
void addPotential(GridMsg *)
Definition: ComputeMsm.C:3744
#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
#define SET_PRIORITY(MSG, SEQ, PRIO)
Definition: Priorities.h:18
const T * buffer() const
Definition: MsmMap.h:259

Member Data Documentation

CProxySection_MsmC1HermiteGridCutoff MsmC1HermiteBlock::msmGridCutoffBroadcast

Definition at line 3461 of file ComputeMsm.C.

CProxySection_MsmC1HermiteGridCutoff MsmC1HermiteBlock::msmGridCutoffReduction

Definition at line 3462 of file ComputeMsm.C.


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