PmePencil< T > Class Template Reference

List of all members.

Public Types

typedef int AtomicInt

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
AtomicInt imsg
AtomicInt 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 4498 of file ComputePme.C.


Member Typedef Documentation

template<class T>
typedef int PmePencil< T >::AtomicInt

Definition at line 4540 of file ComputePme.C.


Constructor & Destructor Documentation

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

Definition at line 4500 of file ComputePme.C.

04500               {
04501     data = 0;
04502     work = 0;
04503     send_order = 0;
04504     needs_reply = 0;
04505 #if USE_PERSISTENT
04506     trans_handle = untrans_handle = ungrid_handle = NULL;
04507 #endif
04508   }

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

Definition at line 4509 of file ComputePme.C.

04509                {
04510 #ifdef NAMD_FFTW
04511     fftwf_free(data);
04512 #endif
04513     delete [] work;
04514     delete [] send_order;
04515     delete [] needs_reply;
04516   }


Member Function Documentation

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

Definition at line 4517 of file ComputePme.C.

04517                                         {
04518     imsg=0;
04519     imsgb=0;
04520     hasData=0;
04521     initdata = msg->data;
04522   }

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

Definition at line 4523 of file ComputePme.C.

04523                                {
04524     send_order = new int[nBlocks];
04525     for ( int i=0; i<nBlocks; ++i ) send_order[i] = i;
04526     if ( Node::Object()->simParameters->PMESendOrder ) {
04527       std::sort(send_order,send_order+nBlocks,sortop_bit_reversed());
04528     } else {
04529       Random rand(CkMyPe());
04530       rand.reorder(send_order,nBlocks);
04531     }
04532     needs_reply = new int[nBlocks];
04533     offload = Node::Object()->simParameters->PMEOffload;
04534   }


Member Data Documentation

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

Definition at line 4537 of file ComputePme.C.

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

Definition at line 4546 of file ComputePme.C.

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

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

Definition at line 4544 of file ComputePme.C.

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

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

Definition at line 4545 of file ComputePme.C.

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

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

Definition at line 4535 of file ComputePme.C.

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

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

Definition at line 4536 of file ComputePme.C.

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

Definition at line 4547 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 4538 of file ComputePme.C.

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

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

Generated on 19 Sep 2020 for NAMD by  doxygen 1.6.1