ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Exclude.cpp
Revision: 438
Committed: Mon Mar 31 21:50:59 2003 UTC (21 years, 3 months ago) by chuckv
File size: 1558 byte(s)
Log Message:
Fixes in MPI force calc and in Trappe_Ex parsing.

File Contents

# User Rev Content
1 mmeineke 431 #include <iostream>
2 mmeineke 408 #include <cstdlib>
3    
4 mmeineke 431
5 mmeineke 408 #include "Exclude.hpp"
6    
7 mmeineke 413 int Exclude::nExcludes;
8 mmeineke 428 int* Exclude::exPairs;
9 mmeineke 408
10 gezelter 410 Exclude::Exclude( int theIndex ){
11 mmeineke 435
12     index = theIndex;
13     exI = index*2;
14     exJ = index*2 + 1;
15 mmeineke 408 }
16    
17 mmeineke 412 void Exclude::createArray( int the_nExcludes ){
18    
19     nExcludes = the_nExcludes;
20 mmeineke 431 std::cerr << "nExcludes = " << nExcludes << "\n";
21 gezelter 410 exPairs = new int[nExcludes*2];
22 mmeineke 408 }
23    
24 gezelter 410 void Exclude::destroyArray( void ){
25     delete[] exPairs;
26 mmeineke 408 }
27    
28 mmeineke 435 void Exclude::printMe( void ){
29    
30 chuckv 438 std::cerr << "exclude[" << index << "] i, j: " << exPairs[exI] << " - " << exPairs[exJ] << "\n";
31 mmeineke 435 }
32    
33 mmeineke 408 void Exclude::setPair( int i, int j ){
34 gezelter 410 exPairs[exI] = i;
35     exPairs[exJ] = j;
36     }
37 mmeineke 408
38 gezelter 410 void Exclude::addExcludePairs(int nAdded, int* AexPairs) {
39     int nNew = nExcludes + nAdded;
40    
41     int* new_exPairs = new int[nNew*2];
42     int i, j;
43    
44     for (i = 0; i < 2*nExcludes; i++) {
45     new_exPairs[i] = exPairs[i];
46     }
47    
48     for (i=0; i < 2*nAdded; i++) {
49     j = i + 2*nExcludes;
50     new_exPairs[j] = AexPairs[i];
51     }
52    
53     delete[] exPairs;
54    
55     exPairs = new_exPairs;
56    
57     nExcludes = nNew;
58 mmeineke 408 }
59 gezelter 410
60     void Exclude::deleteExcludePair(int theIndex) {
61     deleteRange(theIndex, theIndex);
62     }
63    
64     void Exclude::deleteRange(int startIndex, int stopIndex) {
65    
66     int nNew = nExcludes - (stopIndex - startIndex + 1);
67     int* new_exPairs = new int[nNew*2];
68     int i, j;
69    
70     for (i=0; i < 2*startIndex; i++) {
71     new_exPairs[i] = exPairs[i];
72     }
73     for(i=2*(stopIndex+1); i < 2*nExcludes; i++) {
74     j = i-2*startIndex + 1;
75     new_exPairs[j] = exPairs[i];
76     }
77    
78     delete[] exPairs;
79    
80     exPairs = new_exPairs;
81     nExcludes = nNew;
82     }