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

This commit is contained in:
sjplimp
2016-06-06 23:21:39 +00:00
parent 1a52795e1d
commit 0f3e4182e8
67 changed files with 236 additions and 151 deletions

View File

@ -42,6 +42,8 @@ FixSpringRG::FixSpringRG(LAMMPS *lmp, int narg, char **arg) :
rg0_flag = 0;
if (strcmp(arg[4],"NULL") == 0) rg0_flag = 1;
else rg0 = force->numeric(FLERR,arg[4]);
dynamic_group_allow = 1;
}
/* ---------------------------------------------------------------------- */
@ -94,6 +96,8 @@ void FixSpringRG::post_force(int vflag)
// compute current Rg and center-of-mass
double xcm[3];
if (group->dynamic[igroup])
masstotal = group->mass(igroup);
group->xcm(igroup,masstotal,xcm);
double rg = group->gyration(igroup,masstotal,xcm);
@ -108,6 +112,7 @@ void FixSpringRG::post_force(int vflag)
int *type = atom->type;
imageint *image = atom->image;
double *mass = atom->mass;
double *rmass = atom->rmass;
int nlocal = atom->nlocal;
double massfrac;
@ -120,10 +125,14 @@ void FixSpringRG::post_force(int vflag)
dy = unwrap[1] - xcm[1];
dz = unwrap[2] - xcm[2];
term1 = 2.0 * k * (1.0 - rg0/rg);
massfrac = mass[type[i]]/masstotal;
f[i][0] -= term1*dx*massfrac;
f[i][1] -= term1*dy*massfrac;
f[i][2] -= term1*dz*massfrac;
if (masstotal > 0.0) {
if (rmass) massfrac = rmass[i]/masstotal;
else massfrac = mass[type[i]]/masstotal;
f[i][0] -= term1*dx*massfrac;
f[i][1] -= term1*dy*massfrac;
f[i][2] -= term1*dz*massfrac;
}
}
}