git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@10886 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2013-10-30 14:10:10 +00:00
parent 85d15b93bc
commit 6eff712573

View File

@ -684,7 +684,10 @@ void Special::angle_trim()
// and list of 1,3 and 2,4 atoms in each dihedral stored by atom
int nbuf = 0;
for (i = 0; i < nlocal; i++) nbuf += 2*num_angle[i] + 2*2*num_dihedral[i];
for (i = 0; i < nlocal; i++) {
if (num_angle && atom->nangles) nbuf += 2*num_angle[i];
if (num_dihedral && atom->ndihedrals) nbuf + 2*2*num_dihedral[i];
}
int *buf;
memory->create(buf,nbuf,"special:buf");
@ -692,18 +695,21 @@ void Special::angle_trim()
// and with list of 1,3 and 2,4 atoms in each dihedral
int size = 0;
for (i = 0; i < nlocal; i++)
for (j = 0; j < num_angle[i]; j++) {
buf[size++] = angle_atom1[i][j];
buf[size++] = angle_atom3[i][j];
}
for (i = 0; i < nlocal; i++)
for (j = 0; j < num_dihedral[i]; j++) {
buf[size++] = dihedral_atom1[i][j];
buf[size++] = dihedral_atom3[i][j];
buf[size++] = dihedral_atom2[i][j];
buf[size++] = dihedral_atom4[i][j];
}
if (num_angle && atom->nangles)
for (i = 0; i < nlocal; i++)
for (j = 0; j < num_angle[i]; j++) {
buf[size++] = angle_atom1[i][j];
buf[size++] = angle_atom3[i][j];
}
if (num_dihedral && atom->ndihedrals)
for (i = 0; i < nlocal; i++)
for (j = 0; j < num_dihedral[i]; j++) {
buf[size++] = dihedral_atom1[i][j];
buf[size++] = dihedral_atom3[i][j];
buf[size++] = dihedral_atom2[i][j];
buf[size++] = dihedral_atom4[i][j];
}
// cycle buffer around ring of procs back to self
// when receive buffer, scan list of 1,3 atoms looking for atoms I own