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

#include <structures.h>

Public Member Functions

 AtomSignature ()
 
 AtomSignature (const AtomSignature &sig)
 
AtomSignatureoperator= (const AtomSignature &sig)
 
int operator== (const AtomSignature &sig) const
 
 ~AtomSignature ()
 
void removeEmptyTupleSigs ()
 
void pack (MOStream *msg)
 
void unpack (MIStream *msg)
 

Public Attributes

int bondCnt
 
int angleCnt
 
int dihedralCnt
 
int improperCnt
 
int crosstermCnt
 
int gromacsPairCnt
 
TupleSignaturebondSigs
 
TupleSignatureangleSigs
 
TupleSignaturedihedralSigs
 
TupleSignatureimproperSigs
 
TupleSignaturecrosstermSigs
 
TupleSignaturegromacsPairSigs
 

Detailed Description

Definition at line 333 of file structures.h.

Constructor & Destructor Documentation

◆ AtomSignature() [1/2]

AtomSignature::AtomSignature ( )
inline

Definition at line 351 of file structures.h.

References angleCnt, angleSigs, bondCnt, bondSigs, crosstermCnt, crosstermSigs, dihedralCnt, dihedralSigs, gromacsPairCnt, gromacsPairSigs, improperCnt, and improperSigs.

351  {
353  // JLai
354  gromacsPairCnt=0;
355  bondSigs = NULL;
356  angleSigs = NULL;
357  dihedralSigs = NULL;
358  improperSigs = NULL;
359  crosstermSigs = NULL;
360  // JLai
361  gromacsPairSigs = NULL;
362  }
TupleSignature * improperSigs
Definition: structures.h:346
TupleSignature * dihedralSigs
Definition: structures.h:345
TupleSignature * crosstermSigs
Definition: structures.h:347
TupleSignature * gromacsPairSigs
Definition: structures.h:349
TupleSignature * bondSigs
Definition: structures.h:343
int gromacsPairCnt
Definition: structures.h:341
TupleSignature * angleSigs
Definition: structures.h:344

◆ AtomSignature() [2/2]

AtomSignature::AtomSignature ( const AtomSignature sig)
inline

Definition at line 363 of file structures.h.

References angleCnt, angleSigs, bondCnt, bondSigs, crosstermCnt, crosstermSigs, dihedralCnt, dihedralSigs, gromacsPairCnt, gromacsPairSigs, improperCnt, and improperSigs.

363  {
364  bondSigs = NULL;
365  angleSigs = NULL;
366  dihedralSigs = NULL;
367  improperSigs = NULL;
368  crosstermSigs = NULL;
369  // JLai
370  gromacsPairSigs = NULL;
371 
372  bondCnt = sig.bondCnt;
373  if(bondCnt>0){
375  for(int i=0; i<bondCnt; i++)
376  bondSigs[i] = sig.bondSigs[i];
377  }
378 
379  angleCnt = sig.angleCnt;
380  if(angleCnt>0){
382  for(int i=0; i<angleCnt; i++)
383  angleSigs[i] = sig.angleSigs[i];
384  }
385 
386  dihedralCnt = sig.dihedralCnt;
387  if(dihedralCnt>0){
389  for(int i=0; i<dihedralCnt; i++)
390  dihedralSigs[i] = sig.dihedralSigs[i];
391  }
392 
393  improperCnt = sig.improperCnt;
394  if(improperCnt>0){
396  for(int i=0; i<improperCnt; i++)
397  improperSigs[i] = sig.improperSigs[i];
398  }
399 
401  if(crosstermCnt>0){
403  for(int i=0; i<crosstermCnt; i++)
404  crosstermSigs[i] = sig.crosstermSigs[i];
405  }
406 
407  // JLai
409  if(gromacsPairCnt>0){
411  for(int i=0; i<gromacsPairCnt; i++) {
412  gromacsPairSigs[i] = sig.gromacsPairSigs[i];
413  }
414  }
415  }
TupleSignature * improperSigs
Definition: structures.h:346
TupleSignature * dihedralSigs
Definition: structures.h:345
TupleSignature * crosstermSigs
Definition: structures.h:347
TupleSignature * gromacsPairSigs
Definition: structures.h:349
TupleSignature * bondSigs
Definition: structures.h:343
int gromacsPairCnt
Definition: structures.h:341
TupleSignature * angleSigs
Definition: structures.h:344

◆ ~AtomSignature()

AtomSignature::~AtomSignature ( )
inline

Definition at line 498 of file structures.h.

References angleSigs, bondSigs, crosstermSigs, dihedralSigs, gromacsPairSigs, and improperSigs.

498  {
499  if(bondSigs) delete[] bondSigs;
500  if(angleSigs) delete[] angleSigs;
501  if(dihedralSigs) delete[] dihedralSigs;
502  if(improperSigs) delete[] improperSigs;
503  if(crosstermSigs) delete[] crosstermSigs;
504  // JLai
505  if(gromacsPairSigs) delete[] gromacsPairSigs;
506  }
TupleSignature * improperSigs
Definition: structures.h:346
TupleSignature * dihedralSigs
Definition: structures.h:345
TupleSignature * crosstermSigs
Definition: structures.h:347
TupleSignature * gromacsPairSigs
Definition: structures.h:349
TupleSignature * bondSigs
Definition: structures.h:343
TupleSignature * angleSigs
Definition: structures.h:344

Member Function Documentation

◆ operator=()

AtomSignature& AtomSignature::operator= ( const AtomSignature sig)
inline

Definition at line 416 of file structures.h.

References angleCnt, angleSigs, bondCnt, bondSigs, crosstermCnt, crosstermSigs, dihedralCnt, dihedralSigs, gromacsPairCnt, gromacsPairSigs, improperCnt, and improperSigs.

416  {
417  bondCnt = sig.bondCnt;
418  if(bondSigs) delete [] bondSigs;
419  if(bondCnt>0){
421  for(int i=0; i<bondCnt; i++)
422  bondSigs[i] = sig.bondSigs[i];
423  }else
424  bondSigs = NULL;
425 
426  angleCnt = sig.angleCnt;
427  if(angleSigs) delete [] angleSigs;
428  if(angleCnt>0){
430  for(int i=0; i<angleCnt; i++)
431  angleSigs[i] = sig.angleSigs[i];
432  }else
433  angleSigs = NULL;
434 
435  dihedralCnt = sig.dihedralCnt;
436  if(dihedralSigs) delete [] dihedralSigs;
437  if(dihedralCnt>0){
439  for(int i=0; i<dihedralCnt; i++)
440  dihedralSigs[i] = sig.dihedralSigs[i];
441  }else
442  dihedralSigs = NULL;
443 
444  improperCnt = sig.improperCnt;
445  if(improperSigs) delete [] improperSigs;
446  if(improperCnt>0){
448  for(int i=0; i<improperCnt; i++)
449  improperSigs[i] = sig.improperSigs[i];
450  }else
451  improperSigs = NULL;
452 
454  if(crosstermSigs) delete [] crosstermSigs;
455  if(crosstermCnt>0){
457  for(int i=0; i<crosstermCnt; i++)
458  crosstermSigs[i] = sig.crosstermSigs[i];
459  }else
460  crosstermSigs = NULL;
461 
462  // JLai
464  if(gromacsPairSigs) delete [] gromacsPairSigs;
465  if(gromacsPairCnt>0){
467  for(int i=0; i<gromacsPairCnt; i++)
468  gromacsPairSigs[i] = sig.gromacsPairSigs[i];
469  }else
470  gromacsPairSigs = NULL;
471 
472  return *this;
473  }
TupleSignature * improperSigs
Definition: structures.h:346
TupleSignature * dihedralSigs
Definition: structures.h:345
TupleSignature * crosstermSigs
Definition: structures.h:347
TupleSignature * gromacsPairSigs
Definition: structures.h:349
TupleSignature * bondSigs
Definition: structures.h:343
int gromacsPairCnt
Definition: structures.h:341
TupleSignature * angleSigs
Definition: structures.h:344

◆ operator==()

int AtomSignature::operator== ( const AtomSignature sig) const
inline

Definition at line 474 of file structures.h.

References angleCnt, bondCnt, CMPSIGS, crosstermCnt, dihedralCnt, gromacsPairCnt, and improperCnt.

474  {
475  if(bondCnt!=sig.bondCnt) return 0;
476  if(angleCnt!=sig.angleCnt) return 0;
477  if(dihedralCnt!=sig.dihedralCnt) return 0;
478  if(improperCnt!=sig.improperCnt) return 0;
479  if(crosstermCnt!=sig.crosstermCnt) return 0;
480  //JLai
481  if(gromacsPairCnt!=sig.gromacsPairCnt) return 0;
482 
483  #define CMPSIGS(TUPLE) \
484  for(int i=0; i<sig.TUPLE##Cnt; i++){ \
485  if(!(TUPLE##Sigs[i]==sig.TUPLE##Sigs[i])) return 0; \
486  } \
487 
488  CMPSIGS(bond)
489  CMPSIGS(angle)
493  // JLai
495 
496  return 1;
497  }
#define CMPSIGS(TUPLE)
int gromacsPairCnt
Definition: structures.h:341

◆ pack()

void AtomSignature::pack ( MOStream msg)

◆ removeEmptyTupleSigs()

void AtomSignature::removeEmptyTupleSigs ( )

◆ unpack()

void AtomSignature::unpack ( MIStream msg)

Member Data Documentation

◆ angleCnt

int AtomSignature::angleCnt

◆ angleSigs

TupleSignature* AtomSignature::angleSigs

◆ bondCnt

int AtomSignature::bondCnt

◆ bondSigs

TupleSignature* AtomSignature::bondSigs

◆ crosstermCnt

int AtomSignature::crosstermCnt

◆ crosstermSigs

TupleSignature* AtomSignature::crosstermSigs

◆ dihedralCnt

int AtomSignature::dihedralCnt

◆ dihedralSigs

TupleSignature* AtomSignature::dihedralSigs

◆ gromacsPairCnt

int AtomSignature::gromacsPairCnt

◆ gromacsPairSigs

TupleSignature* AtomSignature::gromacsPairSigs

◆ improperCnt

int AtomSignature::improperCnt

◆ improperSigs

TupleSignature* AtomSignature::improperSigs

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