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 37 of file ParallelIOMgr.C.

Constructor & Destructor Documentation

◆ CollectProxyVectorInstance()

CollectProxyVectorInstance::CollectProxyVectorInstance ( )
inline

Definition at line 40 of file ParallelIOMgr.C.

40 : seq(-10) { ; }

Member Function Documentation

◆ append()

int CollectProxyVectorInstance::append ( CollectVectorVarMsg msg)
inline

Definition at line 56 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.

57  {
58  if ( msg->status != vstatus ) {
59  NAMD_bug("CollectProxyVectorInstance vstatus mismatch");
60  }
61  if ( msg->seq != seq ) {
62  NAMD_bug("CollectProxyVectorInstance seq mismatch");
63  }
64  int size = msg->size;
65  for( int i = 0; i < size; ++i ) { aid.add(msg->aid[i]); }
68  for( int i = 0; i < size; ++i ) { data.add(msg->data[i]); }
69  }
72  for( int i = 0; i < size; ++i ) { fdata.add(msg->fdata[i]); }
73  }
74  const int atoms_per_message_target = 100000;
75  return ( ! --remaining || aid.size() > atoms_per_message_target );
76  }
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 78 of file ParallelIOMgr.C.

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

78  {
79  int numAtoms = aid.size();
81  if ( ! numAtoms ) {
82  msg = 0;
84  msg = new(numAtoms, numAtoms, 0, 0) CollectVectorVarMsg;
85  for(int j=0; j<numAtoms; j++) {
86  msg->aid[j] = aid[j];
87  msg->data[j] = data[j];
88  }
90  msg = new(numAtoms, 0, numAtoms, 0) CollectVectorVarMsg;
91  for(int j=0; j<numAtoms; j++) {
92  msg->aid[j] = aid[j];
93  msg->fdata[j] = fdata[j];
94  }
95  } else {
96  msg = new(numAtoms, numAtoms, numAtoms, 0) CollectVectorVarMsg;
97  for(int j=0; j<numAtoms; j++) {
98  msg->aid[j] = aid[j];
99  msg->data[j] = data[j];
100  msg->fdata[j] = fdata[j];
101  }
102  }
103  if ( msg ) {
104  msg->seq = seq;
105  msg->size = numAtoms;
106  msg->status = vstatus;
107  }
108  if ( remaining ) reset(seq,vstatus,remaining);
109  else free();
110  return msg;
111  }
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:45

◆ free()

void CollectProxyVectorInstance::free ( )
inline

Definition at line 42 of file ParallelIOMgr.C.

42 { seq = -10; }

◆ notfree()

int CollectProxyVectorInstance::notfree ( )
inline

Definition at line 43 of file ParallelIOMgr.C.

Referenced by CollectProxyVectorSequence::submitData().

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

◆ reset()

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

Definition at line 45 of file ParallelIOMgr.C.

References NAMD_bug().

Referenced by CollectProxyVectorSequence::submitData().

45  {
46  if ( s == -10 ) NAMD_bug("seq == free in CollectionMgr");
47  seq = s;
48  vstatus = v;
49  remaining = numClients;
50  aid.resize(0);
51  data.resize(0);
52  fdata.resize(0);
53  }
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 114 of file ParallelIOMgr.C.

◆ data

ResizeArray<Vector> CollectProxyVectorInstance::data

Definition at line 116 of file ParallelIOMgr.C.

◆ fdata

ResizeArray<FloatVector> CollectProxyVectorInstance::fdata

Definition at line 117 of file ParallelIOMgr.C.

◆ seq

int CollectProxyVectorInstance::seq

Definition at line 113 of file ParallelIOMgr.C.

Referenced by CollectProxyVectorSequence::submitData().

◆ vstatus

CollectVectorVarMsg::DataStatus CollectProxyVectorInstance::vstatus

Definition at line 115 of file ParallelIOMgr.C.


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