diff -Naur fix_line_force.cpp new_fix_line_force.cpp --- fix_line_force.cpp 2008-01-09 16:56:57.000000000 -0500 +++ new_fix_line_force.cpp 2008-10-14 10:09:12.000000000 -0400 @@ -26,10 +26,17 @@ FixLineForce::FixLineForce(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { + double rdir; if (narg != 6) error->all("Illegal fix lineforce command"); xdir = atof(arg[3]); ydir = atof(arg[4]); zdir = atof(arg[5]); + rdir = sqrt(xdir*xdir + ydir*ydir + zdir*zdir); + if (rdir > 0.001) { + xdir = xdir/rdir; ydir = ydir/rdir; zdir = zdir/rdir; + } else { + error->all("In 'fix lineforce' command, the length of the direction vector is too small"); + } } diff -Naur fix_plane_force.cpp new_fix_plane_force.cpp --- fix_plane_force.cpp 2008-01-09 16:56:57.000000000 -0500 +++ new_fix_plane_force.cpp 2008-10-14 10:10:17.000000000 -0400 @@ -26,10 +26,17 @@ FixPlaneForce::FixPlaneForce(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { + double rdir; if (narg != 6) error->all("Illegal fix planeforce command"); xdir = atof(arg[3]); ydir = atof(arg[4]); zdir = atof(arg[5]); + rdir = sqrt(xdir*xdir + ydir*ydir + zdir*zdir); + if (rdir > 0.001) { + xdir = xdir/rdir; ydir = ydir/rdir; zdir = zdir/rdir; + } else { + error->all("In 'fix lineforce' command, the length of the direction vector is too small"); + } }