  We consider the problem of recovering the divergence-free velocity field
${\mathbf U}\in\mathbf{L}^2(\Omega)$ of a given vorticity ${\mathbf
F}=\mathrm{curl}\,{\mathbf U}$ on a bounded Lipschitz domain
$\Omega\subset\mathbb{R}^3$. To that end, we solve the "div-curl problem" for a
given ${\mathbf F}\in{\mathbf H}^{-1}(\Omega)$. The solution is expressed in
terms of a vector potential (or stream function) ${\mathbf A}\in{\mathbf
H}^1(\Omega)$ such that ${\mathbf U}=\mathrm{curl}\,{\mathbf A}$. After
discussing existence and uniqueness of solutions and associated vector
potentials, we propose a well-posed construction for the stream function. A
numerical method based on this construction is presented, and experiments
confirm that the resulting approximations display higher regularity than those
of another common approach.
