So when you're looking at B-H curves for ferromagnetic substances, you often see these magnetic hysteresis curves, which occur, I gather, largely because of domain formation which has some reversible and some irreversible components:

A magnetic hysteresis curve.

I've been reading through many papers, web sites and this book (Hysteresis in Magnetism), but I haven't seen any equations for how to generate these curves. I recognize that there may be no easy way to express the entire curve in a single equation, but clearly people are generating these plots, and I think they're doing it from some equations, presumably based on some characteristic parameters like the saturation remanance, the coercive force, etc. Is there anyone out there who can help me with this?

Personally, my first choice would be an equation that actually describes the system given some set of material conditions (subject to some constraints is fine, too) but if that's quite complicated and for the most part, people just stitch together two sigmoid functions until it looks about right, then I'm fine with that answer as well, so long as there's some justification for why this is done in there somewhere.1

1Full disclosure: I am in thesis deadline mode and I'm currently probably a 5 on the Stanford Sleepiness Scale, so I apologize if some of the words in this post don't make sense - I'll try and edit it if people find that I haven't adequately conveyed my question.

  • $\begingroup$ I'm only one hour into trying to answer that question myself, and I'm at the same thesis deadline state. this is the best I've found so far: vincent.francois-l.be/VINCH_model.pdf Not as simple as I would like! Good luck. $\endgroup$
    – user24319
    May 10, 2013 at 15:20
  • $\begingroup$ This book has a mathematica script for generating a hysteresis curve in its Appendix. Since I don't have a mathematica licence I tried converting it to python without much success. Do let me know if you get it up and running. $\endgroup$
    – user24406
    May 12, 2013 at 16:53
  • $\begingroup$ My guess is the problem is complex to tackle from scratch(first principles) because of non equilibrium physics. Correct me if Im wrong but, equilibrium statistical mechanics is based on the assumption that given long enough time scales materials do not possess a memory of what had happened. This leads me to believe that hysteresis cannot be understood using simple techniques based on partition functions. Perhaps one has to use some non equilibrium physics(more along the lines of near equilibrium physics) to understand this. $\endgroup$
    – Prathyush
    Jul 30, 2013 at 17:44

1 Answer 1


The Jiles-Atherton model of ferromagnetism is used in some circuit analysis programs. It may be overkill for this question, but it does give pretty pictures.

I'm going to work in MKS units exclusively.

The model equations are: $$ B= \mu_0 M \quad , \quad M = M_{rev} + M_{irr} $$ where $B$ is the magnetic flux density, and the magnetization $M$ is composed of reversible ($M_{rev}$) and irreversible ($M_{irr}$) components.

Physically, during the magnetization process:

  • $M_{rev}$ corresponds to (reversible) magnetic domain wall bending (the S-shaped magnetization curve, but without hysteresis)
  • $M_{irr}$ corresponds to (irreversible) magnetic domain wall displacement against the pinning effect (the hysteresis).

These components are calculated according to:

$$ M_{rev} = c (M_{an} - M_{irr}) $$ $$ M_{an} = M_s \left[ \coth \left(\frac{H + \alpha M}{A}\right)-\frac{A}{H+ \alpha M}\right] $$ $$ \frac{dM_{irr}}{dH} = \frac{M_{an}-M_{irr}}{k \delta - \alpha (M_{an}-M_{irr})} $$

Here the anhysteretic magnetization $M_{an}$ represents the magnetization for the case where the pinning effect is disregarded. (This case corresponds to $c=1$, where $M=M_{an}$ and $M_{irr}$ therefore does not contribute to $M$.)

The quantity in the expression for $M_{an}$ in square brackets is the Langevin function $\mathcal{L}$: $$ \mathcal{L}(x) = \coth(x) - \frac{1}{x} \quad , \quad \mathcal{L}(x) \approx \left\{\begin{array}{ccc} \frac{x}{3} & , & |x|<<1 \\ 1 & , & x >> 1 \\ -1 & , & x<<-1 \end{array} \right.$$

and $\delta$ is the sign of the time rate of change of the applied magnetic field $H$: $$ \delta = \left\{ \begin{array}{ccc} +1 & , & \frac{dH}{dt}>0 \\ -1 & , & \frac{dH}{dt}<0 \end{array} \right. $$

$M_{rev}$ can be eliminated from this system of equations to reduce their number by 1: $$ M = c M_{an} + (1-c)M_{irr} $$

The equations for $M, M_{an},$ and $M_{irr}$ are inter-dependent and so are to be solved simultaneously.

There are 5 parameters (listed here together with sample values):

  • $M_s$, the saturation magnetization [1.48 MA/m]
  • $c$, the weighting of anhysteretic vs. irreversible components [0.0889]
  • $\alpha$, the mean field parameter (representing interdomain coupling) [0.000938]
  • $A$ sets the scale for the magnetic field strength [470 A/m]
  • $k$ sizes the hysteresis [483 A/m]

For the values listed, a crude spreadsheet produced this plot: Jiles-Atherton model

The horizontal axis is the applied magnetic field H, in A/m, sweeping from 0 up to 2500, then down to -2500, and then up again to 2500. The vertical axis is the flux density B in T.

This example comes from a 1999 IEEE paper by Lederer et al, "On the Parameter Identification and Application of the Jiles-Atherton Hysteresis Model for Numerical Modelling of Measured Characteristics".

It appears that choosing the parameters to match a given material is a chore, but that's another story...

  • $\begingroup$ Can you please, comment on how the expression for Man and Mirr are obtained for a given sample. Is it a consequence of microscopic physics? $\endgroup$
    – Prathyush
    Jul 31, 2013 at 8:25
  • $\begingroup$ @Prathyush: The model is based on the physical ideas of domain wall motion and domain rotation, but choosing the parameter values looks to be a matter of matching experimental data. $\endgroup$
    – Art Brown
    Jul 31, 2013 at 15:34
  • $\begingroup$ Do you still have the spreadsheet you used to plot the figure? $\endgroup$
    – cjorssen
    Jan 18, 2016 at 22:10
  • $\begingroup$ @ArtBrown Got it! Thank you very much. You saved me a precious amount of time. $\endgroup$
    – cjorssen
    Jan 19, 2016 at 9:48
  • 1
    $\begingroup$ Thought this would be worth mentioning: github.com/romanszewczyk/jamodel there is also a wikipedia article on the subject $\endgroup$ Feb 3, 2017 at 0:12

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