NAMD
Public Member Functions | Public Attributes | List of all members
CollectProxyVectorInstance Class Reference

Public Member Functions

 CollectProxyVectorInstance ()
 
void free ()
 
int notfree ()
 
void reset (int s, CollectVectorVarMsg::DataStatus v, int numClients)
 
int append (CollectVectorVarMsg *msg)
 
CollectVectorVarMsgbuildMsg ()
 

Public Attributes

int seq
 
AtomIDList aid
 
CollectVectorVarMsg::DataStatus vstatus
 
ResizeArray< Vectordata
 
ResizeArray< FloatVectorfdata
 

Detailed Description

Definition at line 42 of file ParallelIOMgr.C.

Constructor & Destructor Documentation

◆ CollectProxyVectorInstance()

CollectProxyVectorInstance::CollectProxyVectorInstance ( )
inline

Definition at line 45 of file ParallelIOMgr.C.

45 : seq(-10) { ; }

Member Function Documentation

◆ append()

int CollectProxyVectorInstance::append ( CollectVectorVarMsg msg)
inline

Definition at line 61 of file ParallelIOMgr.C.

References CollectVectorVarMsg::aid, CollectVectorVarMsg::BothValid, CollectVectorVarMsg::data, CollectVectorVarMsg::fdata, CollectVectorVarMsg::FloatVectorValid, NAMD_bug(), CollectVectorVarMsg::seq, CollectVectorVarMsg::size, CollectVectorVarMsg::status, and CollectVectorVarMsg::VectorValid.

62  {
63  if ( msg->status != vstatus ) {
64  NAMD_bug("CollectProxyVectorInstance vstatus mismatch");
65  }
66  if ( msg->seq != seq ) {
67  NAMD_bug("CollectProxyVectorInstance seq mismatch");
68  }
69  int size = msg->size;
70  for( int i = 0; i < size; ++i ) { aid.add(msg->aid[i]); }
73  for( int i = 0; i < size; ++i ) { data.add(msg->data[i]); }
74  }
77  for( int i = 0; i < size; ++i ) { fdata.add(msg->fdata[i]); }
78  }
79  const int atoms_per_message_target = 100000;
80  return ( ! --remaining || aid.size() > atoms_per_message_target );
81  }
int size(void) const
Definition: ResizeArray.h:131
int add(const Elem &elem)
Definition: ResizeArray.h:101
CollectVectorVarMsg::DataStatus vstatus
void NAMD_bug(const char *err_msg)
Definition: common.C:195
ResizeArray< FloatVector > fdata
ResizeArray< Vector > data

◆ buildMsg()

CollectVectorVarMsg* CollectProxyVectorInstance::buildMsg ( )
inline

Definition at line 83 of file ParallelIOMgr.C.

References CollectVectorVarMsg::aid, CollectVectorVarMsg::data, CollectVectorVarMsg::fdata, CollectVectorVarMsg::FloatVectorValid, CollectVectorVarMsg::seq, CollectVectorVarMsg::size, CollectVectorVarMsg::status, and CollectVectorVarMsg::VectorValid.

83  {
84  int numAtoms = aid.size();
86  if ( ! numAtoms ) {
87  msg = 0;
89  msg = new(numAtoms, numAtoms, 0, 0) CollectVectorVarMsg;
90  for(int j=0; j<numAtoms; j++) {
91  msg->aid[j] = aid[j];
92  msg->data[j] = data[j];
93  }
95  msg = new(numAtoms, 0, numAtoms, 0) CollectVectorVarMsg;
96  for(int j=0; j<numAtoms; j++) {
97  msg->aid[j] = aid[j];
98  msg->fdata[j] = fdata[j];
99  }
100  } else {
101  msg = new(numAtoms, numAtoms, numAtoms, 0) CollectVectorVarMsg;
102  for(int j=0; j<numAtoms; j++) {
103  msg->aid[j] = aid[j];
104  msg->data[j] = data[j];
105  msg->fdata[j] = fdata[j];
106  }
107  }
108  if ( msg ) {
109  msg->seq = seq;
110  msg->size = numAtoms;
111  msg->status = vstatus;
112  }
113  if ( remaining ) reset(seq,vstatus,remaining);
114  else free();
115  return msg;
116  }
int size(void) const
Definition: ResizeArray.h:131
CollectVectorVarMsg::DataStatus vstatus
ResizeArray< FloatVector > fdata
ResizeArray< Vector > data
void reset(int s, CollectVectorVarMsg::DataStatus v, int numClients)
Definition: ParallelIOMgr.C:50

◆ free()

void CollectProxyVectorInstance::free ( )
inline

Definition at line 47 of file ParallelIOMgr.C.

47 { seq = -10; }

◆ notfree()

int CollectProxyVectorInstance::notfree ( )
inline

Definition at line 48 of file ParallelIOMgr.C.

Referenced by CollectProxyVectorSequence::submitData().

48 { return ( seq != -10 ); }

◆ reset()

void CollectProxyVectorInstance::reset ( int  s,
CollectVectorVarMsg::DataStatus  v,
int  numClients 
)
inline

Definition at line 50 of file ParallelIOMgr.C.

References NAMD_bug().

Referenced by CollectProxyVectorSequence::submitData().

50  {
51  if ( s == -10 ) NAMD_bug("seq == free in CollectionMgr");
52  seq = s;
53  vstatus = v;
54  remaining = numClients;
55  aid.resize(0);
56  data.resize(0);
57  fdata.resize(0);
58  }
void resize(int i)
Definition: ResizeArray.h:84
CollectVectorVarMsg::DataStatus vstatus
void NAMD_bug(const char *err_msg)
Definition: common.C:195
ResizeArray< FloatVector > fdata
ResizeArray< Vector > data

Member Data Documentation

◆ aid

AtomIDList CollectProxyVectorInstance::aid

Definition at line 119 of file ParallelIOMgr.C.

◆ data

ResizeArray<Vector> CollectProxyVectorInstance::data

Definition at line 121 of file ParallelIOMgr.C.

◆ fdata

ResizeArray<FloatVector> CollectProxyVectorInstance::fdata

Definition at line 122 of file ParallelIOMgr.C.

◆ seq

int CollectProxyVectorInstance::seq

Definition at line 118 of file ParallelIOMgr.C.

Referenced by CollectProxyVectorSequence::submitData().

◆ vstatus

CollectVectorVarMsg::DataStatus CollectProxyVectorInstance::vstatus

Definition at line 120 of file ParallelIOMgr.C.


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