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 325 of file structures.h.

Constructor & Destructor Documentation

◆ AtomSignature() [1/2]

AtomSignature::AtomSignature ( )
inline

Definition at line 343 of file structures.h.

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

343  {
345  // JLai
346  gromacsPairCnt=0;
347  bondSigs = NULL;
348  angleSigs = NULL;
349  dihedralSigs = NULL;
350  improperSigs = NULL;
351  crosstermSigs = NULL;
352  // JLai
353  gromacsPairSigs = NULL;
354  }
TupleSignature * improperSigs
Definition: structures.h:338
TupleSignature * dihedralSigs
Definition: structures.h:337
TupleSignature * crosstermSigs
Definition: structures.h:339
TupleSignature * gromacsPairSigs
Definition: structures.h:341
TupleSignature * bondSigs
Definition: structures.h:335
int gromacsPairCnt
Definition: structures.h:333
TupleSignature * angleSigs
Definition: structures.h:336

◆ AtomSignature() [2/2]

AtomSignature::AtomSignature ( const AtomSignature sig)
inline

Definition at line 355 of file structures.h.

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

355  {
356  bondSigs = NULL;
357  angleSigs = NULL;
358  dihedralSigs = NULL;
359  improperSigs = NULL;
360  crosstermSigs = NULL;
361  // JLai
362  gromacsPairSigs = NULL;
363 
364  bondCnt = sig.bondCnt;
365  if(bondCnt>0){
367  for(int i=0; i<bondCnt; i++)
368  bondSigs[i] = sig.bondSigs[i];
369  }
370 
371  angleCnt = sig.angleCnt;
372  if(angleCnt>0){
374  for(int i=0; i<angleCnt; i++)
375  angleSigs[i] = sig.angleSigs[i];
376  }
377 
378  dihedralCnt = sig.dihedralCnt;
379  if(dihedralCnt>0){
381  for(int i=0; i<dihedralCnt; i++)
382  dihedralSigs[i] = sig.dihedralSigs[i];
383  }
384 
385  improperCnt = sig.improperCnt;
386  if(improperCnt>0){
388  for(int i=0; i<improperCnt; i++)
389  improperSigs[i] = sig.improperSigs[i];
390  }
391 
393  if(crosstermCnt>0){
395  for(int i=0; i<crosstermCnt; i++)
396  crosstermSigs[i] = sig.crosstermSigs[i];
397  }
398 
399  // JLai
401  if(gromacsPairCnt>0){
403  for(int i=0; i<gromacsPairCnt; i++) {
404  gromacsPairSigs[i] = sig.gromacsPairSigs[i];
405  }
406  }
407  }
TupleSignature * improperSigs
Definition: structures.h:338
TupleSignature * dihedralSigs
Definition: structures.h:337
TupleSignature * crosstermSigs
Definition: structures.h:339
TupleSignature * gromacsPairSigs
Definition: structures.h:341
TupleSignature * bondSigs
Definition: structures.h:335
int gromacsPairCnt
Definition: structures.h:333
TupleSignature * angleSigs
Definition: structures.h:336

◆ ~AtomSignature()

AtomSignature::~AtomSignature ( )
inline

Definition at line 490 of file structures.h.

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

490  {
491  if(bondSigs) delete[] bondSigs;
492  if(angleSigs) delete[] angleSigs;
493  if(dihedralSigs) delete[] dihedralSigs;
494  if(improperSigs) delete[] improperSigs;
495  if(crosstermSigs) delete[] crosstermSigs;
496  // JLai
497  if(gromacsPairSigs) delete[] gromacsPairSigs;
498  }
TupleSignature * improperSigs
Definition: structures.h:338
TupleSignature * dihedralSigs
Definition: structures.h:337
TupleSignature * crosstermSigs
Definition: structures.h:339
TupleSignature * gromacsPairSigs
Definition: structures.h:341
TupleSignature * bondSigs
Definition: structures.h:335
TupleSignature * angleSigs
Definition: structures.h:336

Member Function Documentation

◆ operator=()

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

Definition at line 408 of file structures.h.

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

408  {
409  bondCnt = sig.bondCnt;
410  if(bondSigs) delete [] bondSigs;
411  if(bondCnt>0){
413  for(int i=0; i<bondCnt; i++)
414  bondSigs[i] = sig.bondSigs[i];
415  }else
416  bondSigs = NULL;
417 
418  angleCnt = sig.angleCnt;
419  if(angleSigs) delete [] angleSigs;
420  if(angleCnt>0){
422  for(int i=0; i<angleCnt; i++)
423  angleSigs[i] = sig.angleSigs[i];
424  }else
425  angleSigs = NULL;
426 
427  dihedralCnt = sig.dihedralCnt;
428  if(dihedralSigs) delete [] dihedralSigs;
429  if(dihedralCnt>0){
431  for(int i=0; i<dihedralCnt; i++)
432  dihedralSigs[i] = sig.dihedralSigs[i];
433  }else
434  dihedralSigs = NULL;
435 
436  improperCnt = sig.improperCnt;
437  if(improperSigs) delete [] improperSigs;
438  if(improperCnt>0){
440  for(int i=0; i<improperCnt; i++)
441  improperSigs[i] = sig.improperSigs[i];
442  }else
443  improperSigs = NULL;
444 
446  if(crosstermSigs) delete [] crosstermSigs;
447  if(crosstermCnt>0){
449  for(int i=0; i<crosstermCnt; i++)
450  crosstermSigs[i] = sig.crosstermSigs[i];
451  }else
452  crosstermSigs = NULL;
453 
454  // JLai
456  if(gromacsPairSigs) delete [] gromacsPairSigs;
457  if(gromacsPairCnt>0){
459  for(int i=0; i<gromacsPairCnt; i++)
460  gromacsPairSigs[i] = sig.gromacsPairSigs[i];
461  }else
462  gromacsPairSigs = NULL;
463 
464  return *this;
465  }
TupleSignature * improperSigs
Definition: structures.h:338
TupleSignature * dihedralSigs
Definition: structures.h:337
TupleSignature * crosstermSigs
Definition: structures.h:339
TupleSignature * gromacsPairSigs
Definition: structures.h:341
TupleSignature * bondSigs
Definition: structures.h:335
int gromacsPairCnt
Definition: structures.h:333
TupleSignature * angleSigs
Definition: structures.h:336

◆ operator==()

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

Definition at line 466 of file structures.h.

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

466  {
467  if(bondCnt!=sig.bondCnt) return 0;
468  if(angleCnt!=sig.angleCnt) return 0;
469  if(dihedralCnt!=sig.dihedralCnt) return 0;
470  if(improperCnt!=sig.improperCnt) return 0;
471  if(crosstermCnt!=sig.crosstermCnt) return 0;
472  //JLai
473  if(gromacsPairCnt!=sig.gromacsPairCnt) return 0;
474 
475  #define CMPSIGS(TUPLE) \
476  for(int i=0; i<sig.TUPLE##Cnt; i++){ \
477  if(!(TUPLE##Sigs[i]==sig.TUPLE##Sigs[i])) return 0; \
478  } \
479 
480  CMPSIGS(bond)
481  CMPSIGS(angle)
485  // JLai
487 
488  return 1;
489  }
#define CMPSIGS(TUPLE)
int gromacsPairCnt
Definition: structures.h:333

◆ 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: