ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/SimSetup.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/SimSetup.cpp (file contents):
Revision 1203 by gezelter, Thu May 27 18:59:17 2004 UTC vs.
Revision 1204 by gezelter, Thu May 27 19:26:42 2004 UTC

# Line 1500 | Line 1500 | void SimSetup::mpiMolDivide(void){
1500    int i, j, k;
1501    int localMol, allMol;
1502    int local_atoms, local_bonds, local_bends, local_torsions, local_SRI;
1503 <  int local_rigid;
1503 >  int local_rigid, local_groups;
1504    vector<int> globalMolIndex;
1505 +  int ncutgroups, atomsingroups, ngroupsinstamp;
1506 +  CutoffGroupStamp* cg;
1507  
1508    mpiSim = new mpiSimulation(info);
1509  
# Line 1521 | Line 1523 | void SimSetup::mpiMolDivide(void){
1523    local_bends = 0;
1524    local_torsions = 0;
1525    local_rigid = 0;
1526 +  local_groups = 0;
1527    globalAtomCounter = 0;
1528  
1529    for (i = 0; i < n_components; i++){
# Line 1531 | Line 1534 | void SimSetup::mpiMolDivide(void){
1534          local_bends += comp_stamps[i]->getNBends();
1535          local_torsions += comp_stamps[i]->getNTorsions();
1536          local_rigid += comp_stamps[i]->getNRigidBodies();
1537 +
1538 +        ncutgroups = comp_stamps[i]->getNCutoffGroups();
1539 +        atomsingroups = 0;
1540 +        for (k=0; k < ncutgroups; k++) {
1541 +          cg = comp_stamps[i]->getCutoffGroup(k);
1542 +          atomsingroups += cg->getNMembers();
1543 +        }
1544 +        ngroupsinstamp = comp_stamps[i]->getNAtoms() - atomsingroups +
1545 +          ncutgroups;
1546 +        local_groups += ngroupsinstamp;    
1547 +
1548          localMol++;
1549        }      
1550        for (k = 0; k < comp_stamps[i]->getNAtoms(); k++){
# Line 1545 | Line 1559 | void SimSetup::mpiMolDivide(void){
1559  
1560    info[0].n_atoms = mpiSim->getNAtomsLocal();  
1561    
1548
1562    if (local_atoms != info[0].n_atoms){
1563      sprintf(painCave.errMsg,
1564              "SimSetup error: mpiSim's localAtom (%d) and SimSetup's\n"
# Line 1555 | Line 1568 | void SimSetup::mpiMolDivide(void){
1568      simError();
1569    }
1570  
1571 +  info[0].ngroup = mpiSim->getNGroupsLocal();  
1572 +  if (local_groups != info[0].ngroup){
1573 +    sprintf(painCave.errMsg,
1574 +            "SimSetup error: mpiSim's localGroups (%d) and SimSetup's\n"
1575 +            "\tlocalGroups (%d) are not equal.\n",
1576 +            info[0].ngroup, local_groups);
1577 +    painCave.isFatal = 1;
1578 +    simError();
1579 +  }
1580 +  
1581    info[0].n_bonds = local_bonds;
1582    info[0].n_bends = local_bends;
1583    info[0].n_torsions = local_torsions;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines