| 579 |
|
Atom* cutoffAtom; |
| 580 |
|
vector<Atom*>::iterator iterAtom; |
| 581 |
|
int atomIndex; |
| 582 |
+ |
double totalMass; |
| 583 |
|
|
| 584 |
|
mfact.clear(); |
| 585 |
|
groupList.clear(); |
| 607 |
|
if(myMols[i].belongToCutoffGroup(atomIndex)) |
| 608 |
|
continue; |
| 609 |
|
else{ |
| 610 |
< |
mfact.push_back(myAtoms[j]->getMass()); |
| 610 |
> |
// this is a fraction of the cutoff group's mass, not the mass itself! |
| 611 |
> |
mfact.push_back(1.0); |
| 612 |
|
groupList.push_back(myAtoms[j]->getIndex() + 1); |
| 613 |
|
groupStart.push_back(curIndex++); |
| 614 |
|
} |
| 617 |
|
numCutoffGroups = myMols[i].getNCutoffGroups(); |
| 618 |
|
for(myCutoffGroup =myMols[i].beginCutoffGroup(iterCutoff); myCutoffGroup != NULL; |
| 619 |
|
myCutoffGroup =myMols[i].nextCutoffGroup(iterCutoff)){ |
| 620 |
+ |
|
| 621 |
+ |
totalMass = myCutoffGroup->getMass(); |
| 622 |
|
|
| 623 |
|
for(cutoffAtom = myCutoffGroup->beginAtom(iterAtom); cutoffAtom != NULL; |
| 624 |
< |
cutoffAtom = myCutoffGroup->beginAtom(iterAtom)){ |
| 624 |
> |
cutoffAtom = myCutoffGroup->nextAtom(iterAtom)){ |
| 625 |
> |
mfact.push_back(cutoffAtom->getMass()/totalMass); |
| 626 |
|
groupList.push_back(cutoffAtom->getIndex() + 1); |
| 627 |
|
} |
| 628 |
|
|
| 629 |
|
groupStart.push_back(curIndex); |
| 630 |
|
curIndex += myCutoffGroup->getNumAtom(); |
| 626 |
– |
} |
| 627 |
– |
|
| 628 |
– |
} |
| 631 |
|
|
| 632 |
+ |
}//end for(myCutoffGroup =myMols[i].beginCutoffGroup(iterCutoff)) |
| 633 |
+ |
|
| 634 |
+ |
}//end for(int i = 0; i < numMol; i++) |
| 635 |
+ |
|
| 636 |
|
ngroup = groupStart.size(); |
| 637 |
|
} |