NAMD
Public Types | Public Member Functions | Public Attributes | List of all members
PmePencil< T > Class Template Reference
Inheritance diagram for PmePencil< T >:

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 4587 of file ComputePme.C.

Member Typedef Documentation

◆ AtomicInt

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

Definition at line 4629 of file ComputePme.C.

Constructor & Destructor Documentation

◆ PmePencil()

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

Definition at line 4589 of file ComputePme.C.

4589  {
4590  data = 0;
4591  work = 0;
4592  send_order = 0;
4593  needs_reply = 0;
4594 #if USE_PERSISTENT
4595  trans_handle = untrans_handle = ungrid_handle = NULL;
4596 #endif
4597  }
float * data
Definition: ComputePme.C:4637
float * work
Definition: ComputePme.C:4638
int * needs_reply
Definition: ComputePme.C:4640
int * send_order
Definition: ComputePme.C:4639

◆ ~PmePencil()

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

Definition at line 4598 of file ComputePme.C.

4598  {
4599 #ifdef NAMD_FFTW
4600  fftwf_free(data);
4601 #endif
4602  delete [] work;
4603  delete [] send_order;
4604  delete [] needs_reply;
4605  }
float * data
Definition: ComputePme.C:4637
#define fftwf_free
Definition: ComputePme.C:14
float * work
Definition: ComputePme.C:4638
int * needs_reply
Definition: ComputePme.C:4640
int * send_order
Definition: ComputePme.C:4639

Member Function Documentation

◆ base_init()

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

Definition at line 4606 of file ComputePme.C.

4606  {
4607  imsg=0;
4608  imsgb=0;
4609  hasData=0;
4610  initdata = msg->data;
4611  }
PmePencilInitMsgData initdata
Definition: ComputePme.C:4624
AtomicInt imsg
Definition: ComputePme.C:4633
AtomicInt imsgb
Definition: ComputePme.C:4634
PmePencilInitMsgData data
Definition: ComputePme.C:255

◆ order_init()

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

Definition at line 4612 of file ComputePme.C.

4612  {
4613  send_order = new int[nBlocks];
4614  for ( int i=0; i<nBlocks; ++i ) send_order[i] = i;
4615  if ( Node::Object()->simParameters->PMESendOrder ) {
4616  std::sort(send_order,send_order+nBlocks,sortop_bit_reversed());
4617  } else {
4618  Random rand(CkMyPe());
4619  rand.reorder(send_order,nBlocks);
4620  }
4621  needs_reply = new int[nBlocks];
4623  }
static Node * Object()
Definition: Node.h:86
SimParameters * simParameters
Definition: Node.h:181
Definition: Random.h:37
int * needs_reply
Definition: ComputePme.C:4640
int * send_order
Definition: ComputePme.C:4639

Member Data Documentation

◆ data

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

◆ evir

template<class T>
PmeReduction PmePencil< T >::evir

Definition at line 4626 of file ComputePme.C.

◆ hasData

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

Definition at line 4635 of file ComputePme.C.

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

◆ imsg

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

Definition at line 4633 of file ComputePme.C.

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

◆ imsgb

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

Definition at line 4634 of file ComputePme.C.

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

◆ initdata

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

Definition at line 4624 of file ComputePme.C.

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

◆ lattice

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

Definition at line 4625 of file ComputePme.C.

◆ needs_reply

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

◆ offload

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

Definition at line 4636 of file ComputePme.C.

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

◆ send_order

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

◆ sequence

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

Definition at line 4627 of file ComputePme.C.

◆ work

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

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