3d helmoltz decomposition