Fixed rare bug in fida weights
The vectors perpendicular to B were being spatially averaged.
Most of the time this is fine since they were all calculated the same way.
However if the third b component one cell is 0 or 1 the vectors are
calculated differently and the assumption breaks.
Fixed by introducing subroutine that calculates perp. vectors based on B
instead of averaging