ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/props/AllCorr.cpp
Revision: 798
Committed: Fri Oct 3 22:02:52 2003 UTC (21 years, 7 months ago) by mmeineke
File size: 1946 byte(s)
Log Message:
changed the formating ogf the error statements in simError

added a function to get the maxCutoff

near completion of the staticProps code. still needs the pair loop, and the loop to allocate and read each frame.

File Contents

# User Rev Content
1 mmeineke 795 #include <stdlib.h>
2     #include <vector>
3    
4 mmeineke 762 #include "AllCorr.hpp"
5 mmeineke 795
6    
7     AllCorr::AllCorr(){
8    
9     pairCorrs = NULL;
10 mmeineke 798 haveFrames = false;
11     haveLength = false;
12 mmeineke 795 }
13    
14     AllCorr::~AllCorr(){
15 mmeineke 798 int i;
16 mmeineke 795
17 mmeineke 798 if( pairCorrs != NULL ){
18     for(i=0; i<nPairs; i++)
19     delete pairCorrs[i];
20     delete[] pairCorrs;
21     }
22 mmeineke 795 }
23    
24 mmeineke 798 void AllCorr::setMaxLength( double theLength ){
25     maxLength = theLength;
26     haveLength = true;
27     }
28 mmeineke 795
29 mmeineke 798 void AllCorr::setFrames( SimInfo* theInfoArray, int theNframes,
30     DumpReader* theReader ){
31     int i;
32    
33    
34     infoArray = theInfoArray;
35     nFrames = theNframes;
36     reader = theReader;
37    
38     nAtoms = infoArray[0].n_atoms;
39    
40    
41     // allocate the first frame's atom arrays
42    
43     (infoArray[0].getConfiguration())->createArrays(infoArray[0].n_atoms);
44     for (i = 0; i < infoArray[0].n_atoms; i++)
45     infoArray[0].atoms[i]->setCoords();
46    
47     // read in the first frame's positions
48    
49     reader->readFrame( &(infoArray[0]), 0 );
50    
51     if( !haveLength ){
52     maxLength = infoArray[0].getMaxCutoff();
53     haveLength = true;
54     }
55    
56     haveFrames = true;
57     }
58    
59 mmeineke 795 void AllCorr::setPairCorrList( vector <PairCorrList> &theList ){
60    
61     int i;
62 mmeineke 798 char pair1[PCL_NAME_LENGTH];
63     char pair2[PCL_NAME_LENGTH];
64 mmeineke 795
65 mmeineke 798 if( !haveFrames ){
66     sprintf( painCave.errMsg,
67     "\n"
68     "AllCorr Error: attempt to create the pair correlations without"
69     " first setting the Frames\n" );
70     painCave.isFatal = 1;
71     simError();
72     }
73    
74    
75 mmeineke 795 theList.sort();
76    
77     nPairs = (int)theList.size();
78     pairCorrs = new PairCorrType*[nPairs];
79    
80     for(i=0;i<nPairs;i++){
81 mmeineke 798
82     theList[i].getAtom1( pair1 );
83     theList[i].getAtom2( pair2 );
84    
85     switch( theList[i].getType() ){
86    
87     case gofr:
88     pairCorrs[i] = new GofR(pair1, pair2, nAtoms);
89     break;
90    
91     default:
92    
93     sprintf( painCave.errMsg,
94     "AllCorr Error: Unrecognized pair corr type in "
95     " setPairCorrList()->theList[%d]\n",
96     i );
97     painCave.isFatal = 1;
98     simError();
99     break;
100     }
101 mmeineke 795 }
102     }
103