| 55 |  |  | 
| 56 |  | } | 
| 57 |  |  | 
| 58 | < | DataStorage::DataStorage(int size, int storageLayout) : size_(size){ | 
| 58 | > | DataStorage::DataStorage(std::size_t size, int storageLayout) : size_(size){ | 
| 59 |  | setStorageLayout(storageLayout); | 
| 60 |  | resize(size); | 
| 61 |  | } | 
| 62 |  |  | 
| 63 | < | int DataStorage::getSize() { | 
| 63 | > | std::size_t DataStorage::getSize() { | 
| 64 |  |  | 
| 65 |  | if (storageLayout_ & dslPosition && position.size() != size_) { | 
| 66 |  | //error | 
| 146 |  | //error | 
| 147 |  | cerr << "size does not match"<< endl; | 
| 148 |  | } | 
| 149 | + |  | 
| 150 | + | if (storageLayout_ & dslSitePotential && sitePotential.size() != size_) { | 
| 151 | + | //error | 
| 152 | + | cerr << "size does not match"<< endl; | 
| 153 | + | } | 
| 154 |  |  | 
| 155 |  | return size_; | 
| 156 |  |  | 
| 157 |  | } | 
| 158 |  |  | 
| 159 | < | void DataStorage::resize(int newSize) { | 
| 159 | > | void DataStorage::resize(std::size_t newSize) { | 
| 160 |  |  | 
| 161 |  | if (storageLayout_ & dslPosition) { | 
| 162 |  | internalResize(position, newSize); | 
| 226 |  | internalResize(flucQFrc, newSize); | 
| 227 |  | } | 
| 228 |  |  | 
| 229 | + | if (storageLayout_ & dslSitePotential) { | 
| 230 | + | internalResize(sitePotential, newSize); | 
| 231 | + | } | 
| 232 | + |  | 
| 233 |  | size_ = newSize; | 
| 234 |  | } | 
| 235 |  |  | 
| 236 | < | void DataStorage::reserve(int size) { | 
| 236 | > | void DataStorage::reserve(std::size_t size) { | 
| 237 |  | if (storageLayout_ & dslPosition) { | 
| 238 |  | position.reserve(size); | 
| 239 |  | } | 
| 301 |  | if (storageLayout_ & dslFlucQForce) { | 
| 302 |  | flucQFrc.reserve(size); | 
| 303 |  | } | 
| 304 | + |  | 
| 305 | + | if (storageLayout_ & dslSitePotential) { | 
| 306 | + | sitePotential.reserve(size); | 
| 307 | + | } | 
| 308 |  | } | 
| 309 |  |  | 
| 310 | < | void DataStorage::copy(int source, int num, int target) { | 
| 310 | > | void DataStorage::copy(int source, std::size_t num, std::size_t target) { | 
| 311 |  | if (num + target > size_ ) { | 
| 312 |  | //error | 
| 313 |  | } | 
| 378 |  | if (storageLayout_ & dslFlucQForce) { | 
| 379 |  | internalCopy(flucQFrc, source, num, target); | 
| 380 |  | } | 
| 381 | + |  | 
| 382 | + | if (storageLayout_ & dslSitePotential) { | 
| 383 | + | internalCopy(sitePotential, source, num, target); | 
| 384 | + | } | 
| 385 |  | } | 
| 386 |  |  | 
| 387 |  | int DataStorage::getStorageLayout() { | 
| 447 |  | case dslFlucQForce: | 
| 448 |  | return internalGetArrayPointer(flucQFrc); | 
| 449 |  |  | 
| 450 | + | case dslSitePotential: | 
| 451 | + | return internalGetArrayPointer(sitePotential); | 
| 452 | + |  | 
| 453 |  | default: | 
| 454 |  | //error message | 
| 455 |  | return NULL; | 
| 483 |  | } | 
| 484 |  |  | 
| 485 |  | template<typename T> | 
| 486 | < | void DataStorage::internalResize(std::vector<T>& v, int newSize){ | 
| 487 | < | int oldSize = v.size(); | 
| 486 | > | void DataStorage::internalResize(std::vector<T>& v, std::size_t newSize){ | 
| 487 | > | std::size_t oldSize = v.size(); | 
| 488 |  |  | 
| 489 |  | if (oldSize == newSize) { | 
| 490 |  | return; | 
| 499 |  | } | 
| 500 |  |  | 
| 501 |  | template<typename T> | 
| 502 | < | void DataStorage::internalCopy(std::vector<T>& v, int source,  int num, int target) { | 
| 502 | > | void DataStorage::internalCopy(std::vector<T>& v, int source, | 
| 503 | > | std::size_t num, std::size_t target) { | 
| 504 |  | typename std::vector<T>::iterator first; | 
| 505 |  | typename std::vector<T>::iterator last; | 
| 506 |  | typename std::vector<T>::iterator result; | 
| 517 |  | std::copy(first, last, result); | 
| 518 |  | } | 
| 519 |  |  | 
| 520 | < | int DataStorage::getBytesPerStuntDouble(int layout) { | 
| 521 | < | int bytes = 0; | 
| 520 | > | std::size_t DataStorage::getBytesPerStuntDouble(int layout) { | 
| 521 | > | std::size_t  bytes = 0; | 
| 522 |  | if (layout & dslPosition) { | 
| 523 |  | bytes += sizeof(Vector3d); | 
| 524 |  | } | 
| 570 |  | if (layout & dslFlucQForce) { | 
| 571 |  | bytes += sizeof(RealType); | 
| 572 |  | } | 
| 573 | + | if (layout & dslSitePotential) { | 
| 574 | + | bytes += sizeof(RealType); | 
| 575 | + | } | 
| 576 |  |  | 
| 577 |  | return bytes; | 
| 578 |  | } |