ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Molecule.hpp
Revision: 446
Committed: Thu Apr 3 20:19:50 2003 UTC (21 years, 3 months ago) by gezelter
File size: 2602 byte(s)
Log Message:
Starting work on NPT

File Contents

# User Rev Content
1 mmeineke 377 #ifndef _MOLECULE_H_
2     #define _MOLECULE_H_
3    
4     #include "Atom.hpp"
5     #include "SRI.hpp"
6 mmeineke 407 #include "MoleculeStamp.hpp"
7 gezelter 416 #include "Exclude.hpp"
8 mmeineke 377
9 mmeineke 407 typedef struct{
10    
11     int stampID; // the ID in the BASS component stamp array
12     int nAtoms; // the number of atoms in the molecule
13     int nBonds; // ... .. .. . .bonds .. .. . . . .
14     int nBends; // . . . . .. . .bends . . . . .. .
15 gezelter 416 int nTorsions; // .. . . .. . . torsions . . .. . .
16     int nOriented; // .. . . . .. . oriented atoms . . .
17 mmeineke 425 int nExcludes; // . . .. . . . .exclude pairs.. . . .
18 gezelter 446
19     double* COM; // the location of the center of mass of the molecule
20 mmeineke 407
21 mmeineke 412 Atom** myAtoms; // the array of atoms
22     Exclude** myExcludes;// the array of Excluded pairs
23 mmeineke 407 Bond** myBonds; // arrays of all the short range interactions
24     Bend** myBends;
25     Torsion** myTorsions;
26    
27    
28     } molInit;
29    
30 mmeineke 377 class Molecule{
31    
32     public:
33    
34 mmeineke 407 Molecule( void );
35     ~Molecule( void );
36 mmeineke 377
37 mmeineke 407 void initialize( molInit &theInit );
38 chuckv 438
39     void setMyIndex( int theIndex ){ myIndex = theIndex;}
40 mmeineke 423
41     int getNAtoms ( void ) {return nAtoms;}
42     int getNBonds ( void ) {return nBonds;}
43     int getNBends ( void ) {return nBends;}
44     int getNTorsions( void ) {return nTorsions;}
45     int getNOriented( void ) {return nOriented;}
46     int getNExcludes( void ) {return nExcludes;}
47     int getNMembers ( void ) {return nMembers;}
48     int getStampID ( void ) {return stampID;}
49 mmeineke 407
50 mmeineke 423 Atom** getMyAtoms ( void ) {return myAtoms;}
51     Bond** getMyBonds ( void ) {return myBonds;}
52     Bend** getMyBends ( void ) {return myBends;}
53 mmeineke 424 Torsion** getMyTorsions( void ) {return myTorsions;}
54     Exclude** getMyExcludes( void ) {return myExcludes;}
55 mmeineke 377
56 mmeineke 423 void setStampID( int info ) {stampID = info;}
57    
58     void calcForces( void );
59     double getPotential( void );
60 mmeineke 377
61 mmeineke 435 void printMe( void );
62 mmeineke 377
63 gezelter 446 double* getCOM();
64     void moveCOM(double* delta);
65    
66 mmeineke 377 private:
67    
68 mmeineke 407 int stampID; // the ID in the BASS component stamp array
69     int nAtoms; // the number of atoms in the molecule
70     int nBonds; // ... .. .. . .bonds .. .. . . . .
71     int nBends; // . . . . .. . .bends . . . . .. .
72 gezelter 416 int nTorsions; // .. . . .. . . torsions . . .. . .
73     int nOriented; // .. . . . .. . oriented atoms . . .
74 mmeineke 423 int nMembers; // .. . . . . . .atoms (legacy code) . . .
75     int nExcludes; // . . . . .. .. excludes .. . .
76 mmeineke 407
77 chuckv 438 int myIndex; // mostly just for debug
78    
79 mmeineke 407 Atom** myAtoms; // the array of atoms
80 mmeineke 423 Bond** myBonds; // arrays of all the short range interactions
81 mmeineke 407 Bend** myBends;
82     Torsion** myTorsions;
83 mmeineke 423 Exclude** myExcludes; // array of the excluded pairs of long range forces
84 mmeineke 407
85 gezelter 446 double* COM;
86 mmeineke 377 };
87    
88     #endif