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

Member Typedef Documentation

◆ AtomicInt

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

Definition at line 4571 of file ComputePme.C.

Constructor & Destructor Documentation

◆ PmePencil()

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

Definition at line 4531 of file ComputePme.C.

4531  {
4532  data = 0;
4533  work = 0;
4534  send_order = 0;
4535  needs_reply = 0;
4536 #if USE_PERSISTENT
4537  trans_handle = untrans_handle = ungrid_handle = NULL;
4538 #endif
4539  }
float * data
Definition: ComputePme.C:4579
float * work
Definition: ComputePme.C:4580
int * needs_reply
Definition: ComputePme.C:4582
int * send_order
Definition: ComputePme.C:4581

◆ ~PmePencil()

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

Definition at line 4540 of file ComputePme.C.

4540  {
4541 #ifdef NAMD_FFTW
4542  fftwf_free(data);
4543 #endif
4544  delete [] work;
4545  delete [] send_order;
4546  delete [] needs_reply;
4547  }
float * data
Definition: ComputePme.C:4579
#define fftwf_free
Definition: ComputePme.C:14
float * work
Definition: ComputePme.C:4580
int * needs_reply
Definition: ComputePme.C:4582
int * send_order
Definition: ComputePme.C:4581

Member Function Documentation

◆ base_init()

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

Definition at line 4548 of file ComputePme.C.

4548  {
4549  imsg=0;
4550  imsgb=0;
4551  hasData=0;
4552  initdata = msg->data;
4553  }
PmePencilInitMsgData initdata
Definition: ComputePme.C:4566
AtomicInt imsg
Definition: ComputePme.C:4575
AtomicInt imsgb
Definition: ComputePme.C:4576
PmePencilInitMsgData data
Definition: ComputePme.C:253

◆ order_init()

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

Definition at line 4554 of file ComputePme.C.

4554  {
4555  send_order = new int[nBlocks];
4556  for ( int i=0; i<nBlocks; ++i ) send_order[i] = i;
4557  if ( Node::Object()->simParameters->PMESendOrder ) {
4558  std::sort(send_order,send_order+nBlocks,sortop_bit_reversed());
4559  } else {
4560  Random rand(CkMyPe());
4561  rand.reorder(send_order,nBlocks);
4562  }
4563  needs_reply = new int[nBlocks];
4565  }
static Node * Object()
Definition: Node.h:86
SimParameters * simParameters
Definition: Node.h:181
Definition: Random.h:37
int * needs_reply
Definition: ComputePme.C:4582
int * send_order
Definition: ComputePme.C:4581

Member Data Documentation

◆ data

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

◆ evir

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

Definition at line 4568 of file ComputePme.C.

◆ hasData

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

Definition at line 4577 of file ComputePme.C.

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

◆ imsg

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

Definition at line 4575 of file ComputePme.C.

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

◆ imsgb

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

Definition at line 4576 of file ComputePme.C.

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

◆ initdata

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

Definition at line 4566 of file ComputePme.C.

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

◆ lattice

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

Definition at line 4567 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 4578 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 4569 of file ComputePme.C.

◆ work

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

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