ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/primitives/CutoffGroup.hpp
Revision: 1492
Committed: Fri Sep 24 16:27:58 2004 UTC (19 years, 9 months ago) by tim
File size: 1754 byte(s)
Log Message:
change the #include in source files

File Contents

# User Rev Content
1 gezelter 1490 #ifndef _CUTOFFGROUP_H_
2     #define _CUTOFFGROUP_H_
3 tim 1492 #include "primitives/Atom.hpp"
4 gezelter 1490
5     class CutoffGroup{
6     public:
7    
8     CutoffGroup() {
9     haveTotalMass = false;
10     totalMass = 0.0;
11     }
12    
13     void addAtom(Atom* atom) {cutoffAtomList.push_back(atom);}
14    
15     Atom* beginAtom(vector<Atom*>::iterator& i){
16     i = cutoffAtomList.begin();
17     return i != cutoffAtomList.end()? *i : NULL;
18     }
19    
20     Atom* nextAtom(vector<Atom*>::iterator& i){
21     i++;
22     return i != cutoffAtomList.end()? *i : NULL;
23     }
24    
25     double getMass(){
26     vector<Atom*>::iterator i;
27     Atom* atom;
28     double mass;
29    
30     if (!haveTotalMass) {
31    
32     totalMass = 0;
33    
34     for(atom = beginAtom(i); atom != NULL; atom = nextAtom(i)){
35     mass = atom->getMass();
36     totalMass += mass;
37     }
38    
39     haveTotalMass = true;
40     }
41    
42     return totalMass;
43     }
44    
45     void getCOM(double com[3]){
46    
47     vector<Atom*>::iterator i;
48     Atom* atom;
49     double pos[3];
50     double mass;
51    
52     com[0] = 0;
53     com[1] = 0;
54     com[2] = 0;
55     totalMass = getMass();
56    
57     if (cutoffAtomList.size() == 1) {
58    
59     beginAtom(i)->getPos(com);
60    
61     } else {
62    
63     for(atom = beginAtom(i); atom != NULL; atom = nextAtom(i)){
64     mass = atom->getMass();
65     atom->getPos(pos);
66     com[0] += pos[0] * mass;
67     com[1] += pos[1] * mass;
68     com[2] += pos[2] * mass;
69     }
70    
71     com[0] /= totalMass;
72     com[1] /= totalMass;
73     com[2] /= totalMass;
74     }
75    
76     }
77    
78     int getNumAtom() {return cutoffAtomList.size();}
79    
80     int getGlobalIndex() {return globalIndex;}
81     void setGlobalIndex(int id) {this->globalIndex = id;}
82     private:
83     vector<Atom*> cutoffAtomList;
84     bool haveTotalMass;
85     double totalMass;
86     int globalIndex;
87    
88     };
89    
90     #endif

Properties

Name Value
svn:executable *