35 |
|
* |
36 |
|
* [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). |
37 |
|
* [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). |
38 |
< |
* [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). |
38 |
> |
* [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). |
39 |
|
* [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
40 |
|
* [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
41 |
|
*/ |
128 |
|
} |
129 |
|
|
130 |
|
void DumpReader::scanFile(void) { |
131 |
< |
int lineNo = 0; |
131 |
> |
|
132 |
|
std::streampos prevPos; |
133 |
|
std::streampos currPos; |
134 |
|
|
142 |
|
bool foundOpenSnapshotTag = false; |
143 |
|
bool foundClosedSnapshotTag = false; |
144 |
|
|
145 |
+ |
int lineNo = 0; |
146 |
|
while(inFile_->getline(buffer, bufferSize)) { |
147 |
|
++lineNo; |
148 |
|
|
228 |
|
needVel_ = false; |
229 |
|
} |
230 |
|
|
231 |
< |
if (storageLayout & DataStorage::dslAmat || storageLayout & DataStorage::dslElectroFrame) { |
231 |
> |
if (storageLayout & DataStorage::dslAmat || |
232 |
> |
storageLayout & DataStorage::dslDipole || |
233 |
> |
storageLayout & DataStorage::dslQuadrupole) { |
234 |
|
needQuaternion_ = true; |
235 |
|
} else { |
236 |
|
needQuaternion_ = false; |
528 |
|
|
529 |
|
StringTokenizer tokenizer(line); |
530 |
|
int nTokens; |
531 |
< |
|
531 |
> |
|
532 |
|
nTokens = tokenizer.countTokens(); |
533 |
|
|
534 |
|
if (nTokens < 2) { |
560 |
|
if (i >> siteIndex) { |
561 |
|
// chew up this token and parse as an int: |
562 |
|
siteIndex = tokenizer.nextTokenAsInt(); |
563 |
< |
RigidBody* rb = static_cast<RigidBody*>(sd); |
564 |
< |
sd = rb->getAtoms()[siteIndex]; |
563 |
> |
|
564 |
> |
if (sd->isRigidBody()) { |
565 |
> |
RigidBody* rb = static_cast<RigidBody*>(sd); |
566 |
> |
sd = rb->getAtoms()[siteIndex]; |
567 |
> |
} |
568 |
|
} |
569 |
|
|
570 |
|
/** |
651 |
|
|
652 |
|
void DumpReader::readSiteData(std::istream& inputStream) { |
653 |
|
|
648 |
– |
inputStream.getline(buffer, bufferSize); |
654 |
|
std::string line(buffer); |
650 |
– |
|
651 |
– |
if (line.find("<SiteData>") == std::string::npos) { |
652 |
– |
// site data isn't required for a simulation, so skip |
653 |
– |
return; |
654 |
– |
} |
655 |
|
|
656 |
+ |
// We already found the starting <SiteData> tag or we wouldn't be |
657 |
+ |
// here, so just start parsing until we get to the ending |
658 |
+ |
// </SiteData> tag: |
659 |
+ |
|
660 |
|
while(inputStream.getline(buffer, bufferSize)) { |
661 |
|
line = buffer; |
662 |
|
|