bug in fix gravity

Dear LAMMPS Developers,

We (me and my Professor, Seyed Mehdi Vaez Allaei) found a minor bug in fix_gravity.cpp that occurs when specifying any of the quantities (except magnitude) as variables. Their values are computed but always stored in ‘magnitude’ rather than their respective variables. I’ve checked the 28Jun14 version and it’s Here’s the diff:

@@ -248,12 +248,12 @@
if (varflag != CONSTANT) {
modify->clearstep_compute();
if (mstyle == EQUAL) magnitude = input->variable->compute_equal(mvar);

  • if (vstyle == EQUAL) magnitude = input->variable->compute_equal(vvar);
  • if (pstyle == EQUAL) magnitude = input->variable->compute_equal(pvar);
  • if (tstyle == EQUAL) magnitude = input->variable->compute_equal(tvar);
  • if (xstyle == EQUAL) magnitude = input->variable->compute_equal(xvar);
  • if (ystyle == EQUAL) magnitude = input->variable->compute_equal(yvar);
  • if (zstyle == EQUAL) magnitude = input->variable->compute_equal(zvar);
  • if (vstyle == EQUAL) vert = input->variable->compute_equal(vvar);
  • if (pstyle == EQUAL) phi = input->variable->compute_equal(pvar);
  • if (tstyle == EQUAL) theta = input->variable->compute_equal(tvar);
  • if (xstyle == EQUAL) xdir = input->variable->compute_equal(xvar);
  • if (ystyle == EQUAL) ydir = input->variable->compute_equal(yvar);
  • if (zstyle == EQUAL) zdir = input->variable->compute_equal(zvar);
    modify->addstep_compute(update->ntimestep + 1);

set_acceleration();

I’ve attached the fixed version.

Cheers, Morteza

fix_gravity.cpp (9.91 KB)

yes, good catch, a copy/paste error

will be in the next patch,

thanks,
Steve