When trying to solve a magneto-static boundary-value problem (BVP) ($\nabla \times \mathbf{H} = \mathbf{J}$ and $\nabla \cdot \mathbf{B} = 0$), one can use either the magnetic vector potential $\mathbf{B} = \nabla \times \mathbf{A} $ or the scalar potential $\mathbf{H} = - \nabla \psi$ to fulfil one of the equations. What advantages and disadvantages does each of them have, especially regarding applicability to a wide range of problems (Do they introduce restrictions on the type of problem to be solved?) and possible implementation difficulties (e.g., when trying to impose gauge conditions)?

If the question is too broad, maybe you could give me a pointer to a paper or book I should read.


3 Answers 3


This is really a huge topic...For simplicity suppose we have linear isotropic media so that$\newcommand{\v}[1]{\boldsymbol{#1}}$ $\v{B} = \mu \v{H}$.

  • Like Wolfgang mentioned, the formulation you choose first depends on the boundary conditions you would like to impose: either $\v{B}\cdot\v{n} = 0$ or $\v{H}\times\v{n} = 0$. According to Demkowicz's paper Modeling of electromagnetic absorption/scattering problems using hp-adaptive finite elements, $\v{B}\cdot\v{n} = 0$ is used in modeling the region enclosing a perfect conductor, while $\v{H}\times\v{n} = 0$ is used in modeling a magnetic symmetry wall.

  • A systematic treatment of magnetostatic BVP using scalar or vector potential can be found in Bossavit's book Computational Electromagetism, chapter 2 and chapter 6 respectively.

  • The choice sometimes depends on the solenoidal nature of the current $\v{J}$, but in a slight different model than yours, in which there is a conductor and the equation is: $$\nabla \times \v{H} - \sigma \v{E} = \v{J}\tag{1}$$

    (a) If $\v{J}$ is divergence-free, then we get a div-curl system: you could introduce the vector potential $\v{A}$ such that $\mu \v{H} = \nabla \times \v{A}$ and a gauge condition $\nabla \cdot \v{A} = 0$. We could also impose the natural boundary condition weakly in the finite-element variational formulation.

    (b) If $\v{J}$ is not divergence-free, we could introduce an electric potential $\phi$: $\v{E} = \nabla \phi$ and apply the divergence operator to both sides of the equation (1). We then have the well-known div-grad electrostatic system: $$-\nabla \cdot (\sigma \nabla \phi) = \nabla \cdot \v{J}$$

  • Substituting $\v{H} = -\nabla \psi$ would lead us to a harmonic function $\psi$ that has proper jump conditions on the medium interfaces. Normally this can be done when $\v{B}\cdot\v{n} = 0$ is imposed, and we don't have to impose any gauge condition, merely a compatiblity condition should be taken care of for the pure Neumann problem. This is the relatively easy path.

  • The gauge condition for the vector potential can really be a pain, especially for people who would like to use $\v{H}^1$-conforming elements or are reluctant to switch to the Nédélec elements which preserves the de Rham cohomology at a discrete level. Imposing the divergence-free condition exactly is too tricky so people use the mixed formulation to impose it weakly; this leads to a solvable saddle-point problem. There are several ways to formulate the mixed variational problem, see Schoberl's notes page 13 for one formulation.

I will edit more into answer when more relevant issues popping into my mind.


The fundamental problem with going with the potentials is that they are non-physical entities (at least in the classical sense, leaving out quantum mechanical oddities such as the Aharonov-Bohm effect) and as such you have to deal with two problems:

  • What is the gauge? The potentials are not uniquely defined but only up to a gauge condition and you have to decide how you want that condition to look and how to introduce that into your numerical method.

  • What to do with boundary conditions? You will always be given boundary conditions in physical form, such as $n \times E = 0$ but it's not always easy to incorporate such conditions into numerical schemes because they're not natural to the equations you get if you write these equations with potentials whereas they're natural (and, thus, typically easy to incorporate) when writing equations in fields.

  • $\begingroup$ So I should forget about potentials and try to solve both equations directly? $\endgroup$
    – Psirus
    Commented Nov 6, 2012 at 13:59
  • $\begingroup$ If you have boundaries then that would be my recommendation. In particular in the time-independent case the system is not that much larger than if you used the potentials. $\endgroup$ Commented Nov 6, 2012 at 14:57

I would go with the magnetic vector potential formulation, discretizing with nedelec's curl conforming elements and using a tree-cotree gauge. There's a description of this approach in "Solution of three-dimensional eddy current problems by integral and differential methods" by R. Albanese and G. Rubinacci (IEEE Transactions on Magnetics), but it might be a little terse. A more thorough description of the tree-cotree gauge can be found in "Hierarchical vector finite elements for analyzing waveguiding structures" by Seong Cheol Lee (IEEE Transactions on Microwave Theory and Techniques), and it also has some stuff on higher order basis functions which you could use. Although that latter paper is about the wave equation, the gauging process is the same as what you'd do for magnetostatics.

The downside is that the Nédélec elements are less common than the scalar nodal ones that you'd use to model the scalar potential - might have to search a bit for a OSS implementation / roll your own. I thought one of the bigger OSS packages (deal.ii?) had them - I know libmesh does not.

  • 1
    $\begingroup$ Yes, deal.II has Nedelec elements of arbitrary order. $\endgroup$ Commented Nov 6, 2012 at 14:57
  • 2
    $\begingroup$ Does it also split the nedelec functions into those that are pure gradients and those that are not? I think that will be required in order to gauge the higher order functions correctly. (tree cotree only splits H0 curl). $\endgroup$ Commented Nov 6, 2012 at 15:11
  • $\begingroup$ I don't know. It's the usual edge element formulation. Your question is the first time I hear about such a split. $\endgroup$ Commented Nov 7, 2012 at 1:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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