It is known that if a vector field $\vec{B}$ is divergence-free, and defined on $\mathbb R^3$ then it can be shown as $\vec{B} = \nabla\times\vec{A}$ for some vector field $A$.

Is there a way to find $A$ that would satisfy this equation? (I know there are many possibilities for $A$)

Note: I want to find it without using the explicit formula for $B_x(x,y,z), B_y(x,y,z), B_z(x,y,z)$, but maybe with a formula involving surface/curve integrals. For example, I've found that in the 2D case (if $B_z=0$ and $\vec{B}=\vec{B}(x,y)$) then $A$ can be shown as:

$$\vec{A}(x,y)=\hat{z}\int_{\vec{R_0}}^{\vec{r}} (\hat{z}\times\vec{B})\cdot\vec{dl}$$

I am looking for something similar in the general case.


3 Answers 3


This is called Poincare's Lemma. I will write the standard version, in a neighborhood around the origin. The usual phrasing is to say that a closed form is locally exact, the fact that this is not globally true is the stuff of cohomology. This is from pages 94-96 of Calculus on Manifolds by Michael Spivak.

Given your divergence-free vector field $(F_1(x,y,z), \; F_2(x,y,z), \; F_3(x,y,z)),$ the $x$-coordinate of the new vector field $G$ is $$ G_1(x,y,z) = \int_0^1 \; \left( \; t z F_2(tx, ty,tz) - t y F_3(tx, ty,tz) \; \right) \; dt, $$ the $y$-coordinate is $$ G_2(x,y,z) = \int_0^1 \; \left( \; t x F_3(tx, ty,tz) - t z F_1(tx, ty,tz) \; \right) \; dt, $$
with $z$-coordinate $$ G_3(x,y,z) = \int_0^1 \; \left( \; t y F_1(tx, ty,tz) - t x F_2(tx, ty,tz) \; \right) \; dt. $$

Note that fractions tend to show up if you have any exponents. I did a test run with a random field, $$ H = (xyz, \; x y^2 z^3, \; x y^3 z^5).$$ I then took the curl to get $$ F = \nabla \times H = ( 3 x y^2 z^5 - 3 x y^2 z^2, \; x y - y^3 z^5, \; y^2 z^3 - x z).$$ The three components are what I am calling $F_1,F_2,F_3.$ We know that $F$ is a curl, by construction, and we know it is divergence free (check!). Going through Poincare's recipe, after fixing a few of my bookkeeping errors, gave instead $$ G_1 = \frac{1}{2} x y z - \frac{1}{10} y^3 z^6 - \frac{1}{7} y^3 z^3,$$ $$ G_2 = \frac{4}{7} x y^2 z^3 - \frac{1}{4} x^2 z - \frac{3}{10} x y^2 z^6,$$ $$ G_3 = \frac{4}{10} x y^3 z^5 - \frac{1}{4} x^2 y - \frac{3}{7} x y^3 z^2.$$ This has a bit of a different appearance from $H.$ That is fine. As $H,G$ have the same curl, it follows merely that $(G-H)$ is the gradient of some function.

On that note, if you have a curl-free field $W = (W_1, W_2, W_3),$ it is the gradient of a function $f$ given by $$ f(x,y,z) = \int_0^1 \; \left( \; x W_1(tx, ty,tz) + y W_2(tx, ty,tz) + z W_3(tx, ty,tz) \; \right) dt.$$

  • 4
    $\begingroup$ @Max: simple connectedness is crucial for this idea. If the domain on which $\mathbf{B}$ is defined isn't simply connected, then you don't have the implication $\nabla \cdot \mathbf{B} = 0 \Rightarrow \mathbf{B} = \nabla \times \mathbf{A}$ for some $\mathbf{A}.$ $\endgroup$
    – Gerben
    Nov 13, 2011 at 12:05
  • 2
    $\begingroup$ @Max: the 'de Rham cohomology' is a general way of studing whether, given some space $M$, the implication $df = 0 \rightarrow f = d a$ for some $a$ holds. Here, $d$ is some generalized derivative operator - the notion includes grad, div and curl. In particular, the curl corresponds to the first cohomology group, so the mathematician's way of stating your question is 'is $H^1(M)$ trivial'? For $\mathbb{R}^n$ it's true, but for spaces like $\mathbb{S}^1$ or $\mathbb{R}^2 - \{p\}$ for some point $p$, it's not. $\endgroup$
    – Gerben
    Nov 13, 2011 at 21:15
  • 2
    $\begingroup$ @Max: that doesn't change much, but you should be careful about what you mean by a 'closed surface'. If $D$ is a manifold with boundary $S$, then $$\oint_S \vec{B}\cdot\vec{ds}= \int_D \nabla \cdot \vec{B}$$ (through Stokes' theorem), so that doesn't help you much. $\endgroup$
    – Gerben
    Nov 13, 2011 at 21:19
  • 2
    $\begingroup$ @Gerben: Not exactly. Stoke's theorem can be applied in a simply connected domain (when D is inside the domain). The fact that $\oint_S \vec{B}\cdot\vec{ds}=0$ for every closed surface S, insures that $div(B)=0$, but not vice versa. Its like the fact that $\nabla\times\vec{E}=0$ doesnt insure you that $\vec{E}=-\nabla\Phi$, but if you say that $\oint_L \vec{E}\cdot\vec{dl}=0$ for every closed curve in the domain, then $\vec{E}=-\nabla\Phi$ does hold, even if you arn't in a simply connected domain. $\endgroup$
    – Max
    Nov 13, 2011 at 22:27
  • 3
    $\begingroup$ @Gerben: you are mistaken that what matters here is simple connectedness and that "the mathematician's way of stating your question is 'is $H^1(M)$ trivial'." what matters here is actually $H^2(M)$: non-trivial second homology (or cohomology) is what keeps a divergence-free field from having a vector potential. for example, $\mathbb{R}^3$ with the $z$ axis deleted is not simply connected, but any divergence-free field there will admit a vector potential. $\endgroup$ Mar 9, 2015 at 3:23

I'm not sure if this is what you meant by excluding the 'explicit formula', but such a vector field is constructed in the proof of Helmholtz' theorem; $\mathbf{A}(\mathbf{r})$ is given by

$$\mathbf{A}(\mathbf{r}) = \frac{1}{4\pi} \int_{\mathbb{R}^3} \frac{\nabla \times \mathbf{B}(\mathbf{r}')}{\mathbf{|r - r'|}}$$

where $\mathbf{r'}$ is the variable you're integrating over.

To see why this works, you need to take the curl of the above equation; however, you'll need some delta function identities, especially

$$\nabla^2(1/\mathbf{|r - r'|}) = -4 \pi \delta(\mathbf{r - r'}).$$

If you're at ease with those, you should be able to finish the proof on your own. If you're not sure, just ask over here and I'll be glad to provide details.

  • $\begingroup$ The problem with that formula is that the integral may not converge.. $\endgroup$
    – Max
    Nov 13, 2011 at 11:53
  • $\begingroup$ Indeed, you'll need to impose some conditions at infinity. I guess that $\nabla \times \mathbf{B}(\mathbf{r}) = \mathcal{O}(1/r^2)$ suffices, but someone competent should check this. Of course, there are also smoothness conditions on $\mathbf{B}$; $\mathcal{C}^2$ should suffice, I reckon. $\endgroup$
    – Gerben
    Nov 13, 2011 at 12:12
  • $\begingroup$ you are right, but i'm considering the general case: $\vec{B} $ doesnt have to go rapidly to zero at infinity. It may not even go to zero. $\endgroup$
    – Max
    Nov 13, 2011 at 20:52
  • $\begingroup$ Simple, take a partition of unity of $\mathbb{R}^3$ called $\{\phi_\alpha\}$. Let $\mathbf{B}_\alpha = \phi_\alpha \mathbf{B}$, they are compactly supported. Apply Helmholz formula to them to get $\mathbf{A}_\alpha$. Formally $\mathbf{A} = \sum_\alpha \mathbf{A}_\alpha$, but notice that if you are only interested in the values of $\mathbf{A}$ on some compact set $\bar{\Omega}\subset\mathbb{R}^3$, you just need to sum over the (finitely many) $\alpha$s such that the support of $\phi_\alpha$ intersects $\bar{\Omega}$. $\endgroup$ Nov 14, 2011 at 12:26
  • 1
    $\begingroup$ @Gerben If I may revive this thread, would you kindly expand on how you would reach the correct answer (i.e. $\nabla \times \boldsymbol{A}=\boldsymbol{B}$) by taking curl of both sides of the equation above? Thanks. $\endgroup$
    – user135626
    Sep 6, 2017 at 2:06

I do NOT (repeat: NOT) own the rights to this webpage, but I think this might be more along the lines of about what the OP was asking http://galileo.math.siu.edu/Courses/251/S12/vpot.pdf


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.