PmePencil< T > Class Template Reference

List of all members.

Public Member Functions

 PmePencil ()
 ~PmePencil ()
void base_init (PmePencilInitMsg *msg)
void order_init (int nBlocks)

Public Attributes

PmePencilInitMsgData initdata
Lattice lattice
PmeReduction evir
int sequence
int imsg
int imsgb
int hasData
int offload
float * data
float * work
int * send_order
int * needs_reply

Detailed Description

template<class T>
class PmePencil< T >

Definition at line 4479 of file ComputePme.C.


Constructor & Destructor Documentation

template<class T>
PmePencil< T >::PmePencil (  )  [inline]

Definition at line 4481 of file ComputePme.C.

04481               {
04482     data = 0;
04483     work = 0;
04484     send_order = 0;
04485     needs_reply = 0;
04486 #if USE_PERSISTENT
04487     trans_handle = untrans_handle = ungrid_handle = NULL;
04488 #endif
04489   }

template<class T>
PmePencil< T >::~PmePencil (  )  [inline]

Definition at line 4490 of file ComputePme.C.

04490                {
04491 #ifdef NAMD_FFTW
04492     fftwf_free(data);
04493 #endif
04494     delete [] work;
04495     delete [] send_order;
04496     delete [] needs_reply;
04497   }


Member Function Documentation

template<class T>
void PmePencil< T >::base_init ( PmePencilInitMsg msg  )  [inline]

Definition at line 4498 of file ComputePme.C.

04498                                         {
04499     imsg=0;
04500     imsgb=0;
04501     hasData=0;
04502     initdata = msg->data;
04503   }

template<class T>
void PmePencil< T >::order_init ( int  nBlocks  )  [inline]

Definition at line 4504 of file ComputePme.C.

04504                                {
04505     send_order = new int[nBlocks];
04506     for ( int i=0; i<nBlocks; ++i ) send_order[i] = i;
04507     if ( Node::Object()->simParameters->PMESendOrder ) {
04508       std::sort(send_order,send_order+nBlocks,sortop_bit_reversed());
04509     } else {
04510       Random rand(CkMyPe());
04511       rand.reorder(send_order,nBlocks);
04512     }
04513     needs_reply = new int[nBlocks];
04514     offload = Node::Object()->simParameters->PMEOffload;
04515   }


Member Data Documentation

template<class T>
float* PmePencil< T >::data
template<class T>
PmeReduction PmePencil< T >::evir

Definition at line 4518 of file ComputePme.C.

template<class T>
int PmePencil< T >::hasData

Definition at line 4522 of file ComputePme.C.

Referenced by PmePencil< CBase_PmeZPencil >::base_init().

template<class T>
int PmePencil< T >::imsg

Definition at line 4520 of file ComputePme.C.

Referenced by PmePencil< CBase_PmeZPencil >::base_init().

template<class T>
int PmePencil< T >::imsgb

Definition at line 4521 of file ComputePme.C.

Referenced by PmePencil< CBase_PmeZPencil >::base_init().

template<class T>
PmePencilInitMsgData PmePencil< T >::initdata

Definition at line 4516 of file ComputePme.C.

Referenced by PmePencil< CBase_PmeZPencil >::base_init().

template<class T>
Lattice PmePencil< T >::lattice

Definition at line 4517 of file ComputePme.C.

template<class T>
int* PmePencil< T >::needs_reply
template<class T>
int PmePencil< T >::offload

Definition at line 4523 of file ComputePme.C.

Referenced by PmePencil< CBase_PmeZPencil >::order_init().

template<class T>
int* PmePencil< T >::send_order
template<class T>
int PmePencil< T >::sequence

Definition at line 4519 of file ComputePme.C.

template<class T>
float* PmePencil< T >::work

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

Generated on 8 Dec 2019 for NAMD by  doxygen 1.6.1