diff --git a/src/fix_addforce.cpp b/src/fix_addforce.cpp index 03445312a2f07d4ebe35757e777eded3975642fc..b51b2dcc0de84e1cc81192d75b1f0bda9ead64db 100644 --- a/src/fix_addforce.cpp +++ b/src/fix_addforce.cpp @@ -258,15 +258,15 @@ void FixAddForce::post_force(int vflag) modify->clearstep_compute(); if (xstyle == EQUAL) xvalue = input->variable->compute_equal(xvar); - else if (xstyle == ATOM) + else if (xstyle == ATOM && sforce) input->variable->compute_atom(xvar,igroup,&sforce[0][0],4,0); if (ystyle == EQUAL) yvalue = input->variable->compute_equal(yvar); - else if (ystyle == ATOM) + else if (ystyle == ATOM && sforce) input->variable->compute_atom(yvar,igroup,&sforce[0][1],4,0); if (zstyle == EQUAL) zvalue = input->variable->compute_equal(zvar); - else if (zstyle == ATOM) + else if (zstyle == ATOM && sforce) input->variable->compute_atom(zvar,igroup,&sforce[0][2],4,0); - if (estyle == ATOM) + if (estyle == ATOM && sforce) input->variable->compute_atom(evar,igroup,&sforce[0][3],4,0); modify->addstep_compute(update->ntimestep + 1); diff --git a/src/fix_ave_atom.cpp b/src/fix_ave_atom.cpp index ee2cf2b2d0cb2188a6557028546ef8494bf43cb3..a6f81a72b37b135cbac6ad5dd25dec5e307d380d 100644 --- a/src/fix_ave_atom.cpp +++ b/src/fix_ave_atom.cpp @@ -351,7 +351,7 @@ void FixAveAtom::end_of_step() // evaluate atom-style variable - } else if (which[m] == VARIABLE) + } else if (which[m] == VARIABLE && array) input->variable->compute_atom(n,igroup,&array[0][m],nvalues,1); } diff --git a/src/fix_efield.cpp b/src/fix_efield.cpp index f60522b56f90ad42458fed010f28716ab31b3f77..5a5048a871729c0d65c8bda8dc6b44ce585cc396 100644 --- a/src/fix_efield.cpp +++ b/src/fix_efield.cpp @@ -184,13 +184,13 @@ void FixEfield::post_force(int vflag) modify->clearstep_compute(); if (xstyle == EQUAL) ex = qe2f * input->variable->compute_equal(xvar); - else if (xstyle == ATOM) + else if (xstyle == ATOM && efield) input->variable->compute_atom(xvar,igroup,&efield[0][0],3,0); if (ystyle == EQUAL) ey = qe2f * input->variable->compute_equal(yvar); - else if (ystyle == ATOM) + else if (ystyle == ATOM && efield) input->variable->compute_atom(yvar,igroup,&efield[0][1],3,0); if (zstyle == EQUAL) ez = qe2f * input->variable->compute_equal(zvar); - else if (zstyle == ATOM) + else if (zstyle == ATOM && efield) input->variable->compute_atom(zvar,igroup,&efield[0][2],3,0); modify->addstep_compute(update->ntimestep + 1); diff --git a/src/fix_move.cpp b/src/fix_move.cpp index d14908d9c229b110c84652a36dafc2f850c8239d..43f5df7d24a47d821c3fa64b7f8299eeed441b35 100644 --- a/src/fix_move.cpp +++ b/src/fix_move.cpp @@ -576,27 +576,33 @@ void FixMove::initial_integrate(int vflag) if (xvarstr) { if (xvarstyle == EQUAL) dx = input->variable->compute_equal(xvar); - else input->variable->compute_atom(xvar,igroup,&displace[0][0],3,0); + else if (displace) + input->variable->compute_atom(xvar,igroup,&displace[0][0],3,0); } if (yvarstr) { if (yvarstyle == EQUAL) dy = input->variable->compute_equal(yvar); - else input->variable->compute_atom(yvar,igroup,&displace[0][1],3,0); + else if (displace) + input->variable->compute_atom(yvar,igroup,&displace[0][1],3,0); } if (zvarstr) { if (zvarstyle == EQUAL) dz = input->variable->compute_equal(zvar); - else input->variable->compute_atom(zvar,igroup,&displace[0][2],3,0); + else if (displace) + input->variable->compute_atom(zvar,igroup,&displace[0][2],3,0); } if (vxvarstr) { if (vxvarstyle == EQUAL) vx = input->variable->compute_equal(vxvar); - else input->variable->compute_atom(vxvar,igroup,&velocity[0][0],3,0); + else if (velocity) + input->variable->compute_atom(vxvar,igroup,&velocity[0][0],3,0); } if (vyvarstr) { if (vyvarstyle == EQUAL) vy = input->variable->compute_equal(vyvar); - else input->variable->compute_atom(vyvar,igroup,&velocity[0][1],3,0); + else if (velocity) + input->variable->compute_atom(vyvar,igroup,&velocity[0][1],3,0); } if (vzvarstr) { if (vzvarstyle == EQUAL) vz = input->variable->compute_equal(vzvar); - else input->variable->compute_atom(vzvar,igroup,&velocity[0][2],3,0); + else if (velocity) + input->variable->compute_atom(vzvar,igroup,&velocity[0][2],3,0); } modify->addstep_compute(update->ntimestep + 1); diff --git a/src/fix_setforce.cpp b/src/fix_setforce.cpp index d32c8145f2ecb5703e22875db437920e6d6f4597..0f137e87dbedad1e47e358e378f06758232e7f72 100644 --- a/src/fix_setforce.cpp +++ b/src/fix_setforce.cpp @@ -245,13 +245,13 @@ void FixSetForce::post_force(int vflag) modify->clearstep_compute(); if (xstyle == EQUAL) xvalue = input->variable->compute_equal(xvar); - else if (xstyle == ATOM) + else if (xstyle == ATOM && sforce) input->variable->compute_atom(xvar,igroup,&sforce[0][0],3,0); if (ystyle == EQUAL) yvalue = input->variable->compute_equal(yvar); - else if (ystyle == ATOM) + else if (ystyle == ATOM && sforce) input->variable->compute_atom(yvar,igroup,&sforce[0][1],3,0); if (zstyle == EQUAL) zvalue = input->variable->compute_equal(zvar); - else if (zstyle == ATOM) + else if (zstyle == ATOM && sforce) input->variable->compute_atom(zvar,igroup,&sforce[0][2],3,0); modify->addstep_compute(update->ntimestep + 1); diff --git a/src/velocity.cpp b/src/velocity.cpp index 77545a86fc873b45f9ff3ce4cf92b9c0a9fab017..efef0c9653cf4aef4c22f334b85600910d3e3e87 100644 --- a/src/velocity.cpp +++ b/src/velocity.cpp @@ -465,13 +465,13 @@ void Velocity::set(int narg, char **arg) } else { if (xstyle == EQUAL) vx = input->variable->compute_equal(xvar); - else if (xstyle == ATOM) + else if (xstyle == ATOM && vfield) input->variable->compute_atom(xvar,igroup,&vfield[0][0],3,0); if (ystyle == EQUAL) vy = input->variable->compute_equal(yvar); - else if (ystyle == ATOM) + else if (ystyle == ATOM && vfield) input->variable->compute_atom(yvar,igroup,&vfield[0][1],3,0); if (zstyle == EQUAL) vz = input->variable->compute_equal(zvar); - else if (zstyle == ATOM) + else if (zstyle == ATOM && vfield) input->variable->compute_atom(zvar,igroup,&vfield[0][2],3,0); for (int i = 0; i < nlocal; i++)