Remove curl from vector field

289 Views Asked by At

I have a discretized real-valued vector field on a 3D Cartesian grid as an input, which possesses some non-zero curl. I would like to find the closest possible approximation to this vector field which can be expressed as the gradient of a potential. Or more precisely, I am looking for the potential whose gradient is the closest possible approximation to the input vector field (all on the same discrete grid). I understand that only an approximate solution can exist, because the gradient of a potential is curl-free. Can you recommend a numerical method to achieve this?

1

There are 1 best solutions below

0
On

I think I found a method which comes quite close to what I require; it is called Helmholtz decomposition:

https://en.wikipedia.org/wiki/Helmholtz_decomposition

It expresses an arbitrary smooth vector field as a sum of a curl-free part and a divergence-free part. I could not find a proof that the curl-free part is indeed the closest possible approximation to the original vector field... Still, it looks pretty promising for my task.