git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15109 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user