Jump to: navigation, search

2D model of inductor with magnetostriction.

Download model archive (
Browse individual model files and modification history


To run the model, open with Gmsh.

This 2D model computes the mechanical deflections of a two-column inductor (choke) with distributed air gaps along the limbs. It takes into account:

  • the magnetostriction effect in magnetic sheets
  • the Maxwell stress tensor into the whole domain (airgaps and magnetic core)

Magnetostatics and structural mechanics are weakly coupled, assuming that mechanical deflections do not modify the magnetic field distribution. The magnetic field distribution is first computed, and the resulting Maxwell stress tensor and magnetostriction strain tensor are then calculated. The mechanical model also allows to estimate the different resonant frequencies or the inductor.

File details:

  • choke.geo: parametrized geometry of the two-limb inductor
  • .pro file associated to choke.geo
  • the magnetostatics physics
  • the structural mechanics
  • the integration and Jacobian methods
  • magnetostriction.txt: the magnetostriction curve \(\Lambda(B)\)



A two columns inductor is modelled and the geometry can be modified using parameters:

  • column height
  • column width
  • number of airgap
  • airgap thichness
  • yoke length
  • winding thickness



The magnectic vector potential a is fixed to 0 on the external boundaries of the system. The current density is imposed into the winding and deduced thanks to the nominal current, the number of turns and the cross section of the winding.


The inferior yoke is assumed fixed (displacement u=0).


A 2D Magnetostatic solver is used for this study. The model computes the magnectic vector potential a. Materials are considered linear and sources of currents are directly imposed. The solver is coded in the file

\( \begin{eqnarray} \nabla^2 \mathbf{A} + \mu_0 \mu_r \mathbf{j_z} = \mathbf{0} \label{eq:vector_potential} \end{eqnarray} \)

Different post-proccessing are predefined:

  • The flux density B
  • The magnetic field H
  • The energy per length unit (J/m)

Maxwell Stress Tensor

The Maxwell Stress Tensor is deduced directly from the magnetic field and is injected into the mechanical solver.

\(\begin{eqnarray} \sigma_{mst}= \frac{1}{\mu_0\mu_r}\begin{bmatrix} B_x^2 -\frac{1}{2}B^2 & B_xB_y\\ B_xB_y & B_y^2 -\frac{1}{2}B^2 \end{bmatrix} \label{eq:stress} \end{eqnarray}\)

The following code in used :

 sig_maxwell[]=Vector[ CompX[\$1]*CompX[\$1]-Norm[\$1]*Norm[\$1]/2,

Magnetostriction strain tensor

The magnetostriction tensor is obtained using the flux density map and with the magnetostriction curve of the material witch links the strain with the flux density. This kind of curve is presented on the following figure:

Magnetostriction curve.png

The curve permits to determine the strain tensor in the referential (Bt,Bn) presented below:


The strain tensor is decomposed into two phenomenas: the normal and tangential magnetostriction, called respectively \(\lambda_N\) and \(\lambda_T\). \(\lambda_T\) could be obtained using experimental data, or by asuming that magnetostriction doesn't modify the volume, a simple relation is obtained\[\lambda_N=-\lambda_N/2\]

\( \begin{eqnarray} \epsilon_{(B_t,B_n)}=\begin{bmatrix} \lambda_T & 0 \\ 0 & \lambda_N \end{bmatrix} \label{eq:strain_tensor1} \end{eqnarray} \)

In order to be injected into the mechanical model, the strain tensor needs to be converted into the (x,y) basis. This is done by computing the change of basis matrix P. In this way the strain tensor in the basis (x,y) is determined\[ \begin{eqnarray} P=\begin{bmatrix} \frac{B_x}{B} & -\frac{B_y}{B} \\ \frac{B_y}{B} & \frac{B_x}{B} \\ \end{bmatrix} \label{eq:P} \end{eqnarray} \]

\( \begin{eqnarray} \epsilon_{(x,y)}=P \epsilon_{(B_t,B_n)}\ P^t \label{eq:PPT} \end{eqnarray} \)

\( \begin{eqnarray} \epsilon_{(x,y)}=\begin{bmatrix} \frac{1}{B^2}(\lambda_T B_x^2+\lambda_N B_y^2) & \frac{B_xB_y}{B^2}(\lambda_T-\lambda_N) \\ \frac{B_xB_y}{B^2}(\lambda_T-\lambda_N) & \frac{1}{B^2}(\lambda_T B_y^2+\lambda_N B_x^2) \\ \end{bmatrix} \label{eq:strain_xyz} \end{eqnarray} \)

The following code in used :



sig_mat[]=Tensor[CompX[sig_vect[\$1]], CompZ[sig_vect[\$1]]  ,   0,
	         CompZ[sig_vect[\$1]], CompY[sig_vect[\$1]]  ,   0,
		            0	    ,          0	   ,   0 ];

// Change of basis

P[]=Tensor[ CompX[\$1]/Norm[\$1]  ,   -CompY[\$1]/Norm[\$1] , 0,
            CompY[\$1]/Norm[\$1]  ,    CompX[\$1]/Norm[\$1] , 0,
                       0        ,             0         , 1 ];


A 2D mechanical solver is added to the model. This harmonic solver permits to compute the deflection of the inductor due to the magnetostriction and the Maxwell stress tensor. It also permits to obtain the eigen modes of the magnetic core. No damping is currently added so the resonance magnitude is only limited by numerical damping effect.


3 resolution methods are provided:

  • A pure magnetostatic study
  • A magneto-mechanical study with allows to estimate the complete deflection of the magnetic core due to magnetic effects (combined effect of magnetostrictive and reluctant forces)
  • A mechanical study to obtain the eigenmodes of the inductor.

Models developed by Mathieu Rossi, Jean Le Besnerais and Christophe Geuzaine. Copyright (c) 2015 EOMYS