ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Molecule.cpp
Revision: 427
Committed: Thu Mar 27 20:48:37 2003 UTC (21 years, 3 months ago) by mmeineke
File size: 1830 byte(s)
Log Message:
fixed a few more bugs.

File Contents

# User Rev Content
1 mmeineke 427 #include <cstdlib>
2 mmeineke 426
3    
4     #include "Molecule.hpp"
5    
6    
7    
8     Molecule::Molecule( void ){
9    
10     myAtoms = NULL;
11     myBonds = NULL;
12     myBends = NULL;
13     myTorsions = NULL;
14    
15     }
16    
17    
18    
19     Molecule::~Molecule( void ){
20     int i;
21    
22     if( myAtoms != NULL ){
23     for(i=0; i<nAtoms; i++) if(myAtoms[i] != NULL ) delete myAtoms[i];
24     delete[] myAtoms;
25     }
26    
27     if( myBonds != NULL ){
28     for(i=0; i<nBonds; i++) if(myBonds[i] != NULL ) delete myBonds[i];
29     delete[] myBonds;
30     }
31    
32     if( myBends != NULL ){
33     for(i=0; i<nBends; i++) if(myBends[i] != NULL ) delete myBends[i];
34     delete[] myBends;
35     }
36    
37     if( myTorsions != NULL ){
38     for(i=0; i<nTorsions; i++) if(myTorsions[i] != NULL ) delete myTorsions[i];
39     delete[] myTorsions;
40     }
41    
42     if( myExcludes != NULL ){
43     for(i=0; i<nExcludes; i++) if(myExcludes[i] != NULL ) delete myExcludes[i];
44     delete[] myExcludes;
45     }
46     }
47    
48    
49     void Molecule::initialize( molInit &theInit ){
50    
51     nAtoms = theInit.nAtoms;
52     nMembers = nAtoms;
53     nBonds = theInit.nBonds;
54     nBends = theInit.nBends;
55     nTorsions = theInit.nTorsions;
56     nExcludes = theInit.nExcludes;
57     nOriented = theInit.nOriented;
58    
59     myAtoms = theInit.myAtoms;
60     myBonds = theInit.myBonds;
61     myBends = theInit.myBends;
62     myTorsions = theInit.myTorsions;
63     myExcludes = theInit.myExcludses;
64    
65     }
66    
67     void Molecule::calcForces( void ){
68    
69     int i;
70    
71     for(i=0; i<nBonds; i++){
72     myBonds[i]->calc_forces();
73     }
74    
75     for(i=0; i<nBends; i++){
76     myBends[i]->calc_forces();
77     }
78    
79     for(i=0; i<nTorsions; i++){
80     myTorsions[i]->calc_forces();
81     }
82     }
83    
84    
85     void Molecule::getPotential( void ){
86    
87     int i;
88     double myPot = 0.0;
89    
90     for(i=0; i<nBonds; i++){
91     myPot += myBonds[i]->get_potential();
92     }
93    
94     for(i=0; i<nBends; i++){
95     myPot += myBends[i]->get_potential();
96     }
97    
98     for(i=0; i<nTorsions; i++){
99     myPot += myTorsions[i]->get_potential();
100     }
101    
102     return myPot;
103     }