fix_gravity nan values

Submitted by jooj on Tue, 08/07/2012 - 00:22

Hi

Small recommendation for developers for next version:
File fix_gravity.cpp contains following code:

if (style == VECTOR) {
if (domain->dimension == 3) {
double length = sqrt(xdir*xdir + ydir*ydir + zdir*zdir);
xgrav = xdir/length;
ygrav = ydir/length;
zgrav = zdir/length;
} else {
double length = sqrt(xdir*xdir + ydir*ydir);
xgrav = xdir/length;
ygrav = ydir/length;
zgrav = 0.0;
}

If you give command such as:
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0 # for 2d
or
fix gravi all gravity 9.81 vector 0.0 0.0 0.0 # for 3d
than program produce nan values and segmentation fault(division by zero [length]).
It would be better if code give error and abort program or warn during calculation (I spend some time on debugging)

Thanks !