Test Case of Elasto-Magnetism in Stationary and Axisymmetrical Case
1. Introduction
This page presents the simulation and result of page Elastic Equations with Electromagnetism and Thermic in Axisymmetrical case : Elastic and Electromagnetism problem coupled by Laplace Force in stationnary and axisymmetrical case.
2. Run the calculation
The command line to run this case is :
mpirun -np 16 feelpp_toolbox_coefficientformpdes --config-file=elasto-thermo-mag.cfg --cfpdes.gmsh.hsize=5e-3
To compute with the Laplace Force and the Thermal Dilatation, please, put :
"bool_laplace":1, "bool_dilatation":1,
On Parameter function of .json file elasto-thermo-mag.json.
3. Data Files
The case data files are available in Github here :
-
CFG file - Edit the file
-
JSON file - Edit the file
-
GEO file - Edit the file
4. Equation
In this subsection, we couple the equation (Static Elasticity Axis) of Elastic equation and (AV Axis) AV-Formulation in axisymmetrical coordinates.
The domain of resolution of electromagnetism part is Ωaxis with bounds Γaxis, ΓaxisD the bound of Dirichlet conditions and ΓaxisN the bound of Neumann conditions such that Γaxis=ΓaxisN∪ΓaxisD.
The domain of resolution of elastic part is Ωaxisc⊂Ωaxis (and the domain of definition of electrical potential V and electrical conductivity σ) with bounds Γaxisc, ΓaxisDelas the bound of Dirichlet conditions and ΓaxisNelas the bound of Neumann conditions such that Γaxisc=ΓaxisDelas∪ΓaxisNelas. The domain Ωaxisc correspond to the conductor.
With :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
And notations :
-
Divergence of tensor : ∇⋅ˉˉσ=(∇⋅ˉˉσr,:+ˉˉσrr−ˉˉσθθr∇⋅ˉˉσz,:+ˉˉσrzr)
-
Scalar produce of tensor : ˉˉσ⋅n=(ˉˉσr,:⋅naxisˉˉσz,:⋅naxis)=(ˉˉσrrnr+ˉˉσrznzˉˉσzrnr+ˉˉσzznz)
The equation become coupled in one senses, the second equation (Elas-1 Axis) depends of potentials. |
We don’t care of geometrical deformation which can change the mesh or the density. We suppose the geometry is fixed. |
5. Geometry
The geometry is a torus of the conductor in cartesian coordinates (x,y,z) or rectangle in axisymmetric coordinates (r,z), surrounded by air.
![]() Geometry in axisymmetrical cut loop on Conductor
|
![]() Geometry in axisymmetrical cut
|
![]() Geometry in three dimensions
|
![]() Geometry in three dimensions cut loop on Conductor
|
The geometrical domains are :
-
Conductor
: the torus is composed by conductor material-
Interior
: interior surface of conductor ring -
Exterior
: exterior surface of conductor ring -
Upper
: upper of conductor ring -
Bottom
: bottom of conductor ring
-
-
Air
: the air surroundConductor
-
zAxis
: a bound ofAir
, correspond to Oz axis ({(z,r),z=0}) -
infty
: the rest of bound ofAir
-
Symbol |
Description |
value |
unit |
rint |
interior radius of torus |
75e−3 |
m |
rext |
exterior radius of torus |
100.2e−3 |
m |
z1 |
half-height of torus |
300e−3 |
m |
rinfty |
radius of infty border |
5∗rext |
m |
6. Boundary Conditions
We impose the boundary conditions :
-
Magnetic Equation :
-
Strong Dirichlet :
-
On
zAxis
: Φ=0 (Aθ=0 by symetric argument) -
On
infty
: Φ=0 (Aθ=0 we consider the bound of resolution like infty for magnetic field)
-
-
-
Heat Equation :
-
Neumann : ∂T∂n=0 on
Interior
andExterior
-
Robin : −k∂T∂n=h(T−Tc) on
Upper
andBottom
. The Robin condition represents the cooling by water.
-
-
Elastic Equation :
-
Strong Dirichlet : u=0 on
Upper
andBottom
. The Dirichlet condition represents the embedding of mechanical part. -
Neumann : ˉˉσ⋅n=0 on
Interior
andExterior
. The Neumann condition represents the freedom of displacement.
-
On JSON file, the boundary conditions are writed :
"BoundaryConditions": { "magnetic": { "Dirichlet": { "magdir": { "markers":["ZAxis","Infty"], "expr":"0" } } }, "heat": { "Robin": { "heatdir": { "markers":["Interior","Exterior"], "expr1":"h*x:h:x", "expr2":"h*T_c*x:h:T_c:x" } } }, "elastic": { "Dirichlet": { "elasdir": { "markers":["Upper","Bottom"], "expr":"{0,0}" } } } }
7. Weak Formulation
We obtain :
8. Parameters
The parameters of problem are :
-
On
Conductor
:
Symbol |
Description |
Value |
Unit |
V_0 |
scalar electrical potential on |
0 |
Volt |
V_1 |
scalar electrical potential on |
\frac{1}{4} \times 0.2 |
Volt |
\sigma |
electrical conductivity |
58e6 |
S/m |
\mu=\mu_0 |
magnetic permeability of vacuum |
4\pi.10^{-7} |
kg.m/A^2/S^2 |
k |
thermal conductivity |
380 |
W/m/K |
C_p |
thermal capacity |
380 |
J/K/kg |
\rho |
density |
10000 |
kg/m^3 |
h |
convective coefficient |
80000 |
W/m^2/K |
T_c |
cooling temperature |
293 |
K |
T_0 |
temperature of reference or rest temperature |
293 |
K |
E |
Young Modulus |
2.1e6 |
Pa |
\nu |
Poisson’s coefficient |
0.33 |
dimensionless |
Lame\_\lambda |
Lame’s coefficient |
\frac{E \, v}{(1-2v)(1+v)} |
Pa |
Lame\_\mu |
Lame’s coefficient |
\frac{E}{2 (1+v)} |
Pa |
\alpha_T |
linear coefficient of dilatation |
17e-6 |
K^{-1} |
\sigma_T = -\frac{E}{1-2*nu} alpha_T (T-T0) |
thermal dilatation term |
\frac{E}{2 (1+v)} |
Pa |
-
On
Air
:
Symbol |
Description |
Value |
Unit |
\mu=\mu_0 |
magnetic permeability of vacuum |
4\pi.10^{-7} |
kg \, m / A^2 / S^2 |
On JSON file, the parmeters are writed :
"Parameters": { "bool_laplace":1, "bool_dilatation":1, "h":80000, // W/m2/K "T_c":293, // K "T0":293, // K // Constants of analytical solve "a":77.32, // K "b":0.40041, // K "rmax":0.0861910719118454, // m "Tmax":295.85 // K }
9. Coefficient Form PDEs
We use the application Coefficient Form PDEs. The coefficient associate to Weak Formulation are :
-
For MQS equation (Weak MQS Axis) :
-
On
Conductor
:
Coefficient
Description
Expression
c
diffusion coefficient
\frac{1}{\mu}
f
source term
- \sigma \, \nabla V
-
On
Air
:
Coefficient
Description
Expression
c
diffusion coefficient
\frac{1}{\mu}
-
-
For heat equation, on
Conductor
(the temperature isn’t computed onAir
)
Coefficient |
Description |
Expression |
c |
diffusion coefficient |
k |
f |
source term |
\sigma \Vert \nabla V \Vert |
-
For elastic equation, on
Conductor
(the displacement isn’t computed onAir
) :Coefficient
Description
Expression
c
diffusion coefficient
Lame\_\mu
\gamma
conservative flux source term
\begin{pmatrix} - Lame\_\lambda \nabla \cdot \mathbf{u} - Lame\_\mu \frac{\partial u_x}{\partial x} - \sigma_T & -Lame\_\mu \frac{\partial u_y}{\partial x} & -Lame\_\mu \frac{\partial u_z}{\partial x} \\ -Lame\_\mu \frac{\partial u_x}{\partial y} & - Lame\_\lambda \nabla \cdot \mathbf{u} - Lame\_\mu \frac{\partial u_y}{\partial y} - \sigma_T & -Lame\_\mu \frac{\partial u_z}{\partial y} \\ -Lame\_\mu \frac{\partial u_x}{\partial z} & -Lame\_\mu \frac{\partial u_y}{\partial z} & - Lame\_\lambda \nabla \cdot \mathbf{u} - Lame\_\mu \frac{\partial u_z}{\partial z} - \sigma_T \end{pmatrix}
f
source term
\mathbf{F_{laplace}} = \begin{pmatrix} \frac{\partial V}{\partial y} \left( \frac{\partial A_y}{\partial x} - \frac{\partial A_x}{\partial y} \right) + \frac{\partial V}{\partial z} \left( - \frac{\partial A_z}{\partial y} + \frac{\partial A_y}{\partial z} \right) \\ \frac{\partial V}{\partial x} \left( \frac{\partial A_y}{\partial x} - \frac{\partial A_x}{\partial y} \right) - \frac{\partial V}{\partial z} \left( - \frac{\partial A_z}{\partial y} + \frac{\partial A_y}{\partial z} \right) \\ \frac{\partial V}{\partial x} \left( -\frac{\partial A_z}{\partial x} + \frac{\partial A_x}{\partial z} \right) + \frac{\partial V}{\partial y} \left( \frac{\partial A_z}{\partial y} - \frac{\partial A_y}{\partial z} \right) \end{pmatrix}
On JSON file, the coefficients are writed :
"Materials": { "Conductor": { // Magnetic Part "U":0.2, // Volt "sigma":58e+6, // S.m-1 "mu":"4*pi*1e-7", // kg.m/A2/S2 "j_th":"-sigma*U/2/pi/x:sigma:U:x", "magnetic_c":"x/mu:x:mu", "magnetic_beta":"{2/mu,0}:mu", "magnetic_f":"-sigma*U/2/pi*x:sigma:U:x", // Heat Part "k":380, // W/m/K "heat_c":"k*x:k:x", "heat_f":"sigma*U/(2*pi)*U/(2*pi)/x:sigma:U:x", // Elastic Part "E":2.1e6, // Pa "v":0.33, // dimensionless "alpha_T":"17e-6", // K-1 "Lame_lambda":"E*v/(1-2*v)/(1+v):E:v", "Lame_mu":"E/(2*(1+v)):E:v", "F_laplace":"{1/x*j_th*magnetic_grad_phi_0, 1/x*j_th*magnetic_grad_phi_1}::x:j_th:magnetic_grad_phi_0:magnetic_grad_phi_0:magnetic_grad_phi_1", "sigma_T":"-(3*Lame_lambda+2*Lame_mu)*alpha_T*(heat_T-T0):Lame_lambda:Lame_mu:alpha_T:heat_T:T0", "elastic_c":"x*Lame_mu:x:Lame_mu", "elastic_gamma":"{-Lame_lambda*(x*elastic_grad_u_00+elastic_u_0+x*elastic_grad_u_11)-x*Lame_mu*elastic_grad_u_00-bool_dilatation*x*sigma_T, -x*Lame_mu*elastic_grad_u_10, -x*Lame_mu*elastic_grad_u_01, -Lame_lambda*(x*elastic_grad_u_00+elastic_u_0+x*elastic_grad_u_11)-x*Lame_mu*elastic_grad_u_11-bool_dilatation*x*sigma_T}:bool_dilatation:x:Lame_lambda:Lame_mu:elastic_u_0:elastic_grad_u_00:elastic_grad_u_01:elastic_grad_u_10:elastic_grad_u_11:sigma_T", "elastic_f":"{bool_laplace*x*F_laplace_0-Lame_lambda*elastic_grad_u_00-(Lame_lambda+2*Lame_mu)*elastic_u_0/x-Lame_lambda*elastic_grad_u_11-bool_dilatation*sigma_T, bool_laplace*x*F_laplace_1}:bool_laplace:bool_dilatation:x:F_laplace_0:F_laplace_1:Lame_mu:Lame_lambda:elastic_u_0:elastic_grad_u_00:elastic_grad_u_01:elastic_grad_u_11:sigma_T", "sigma_rr":"(Lame_lambda+2*Lame_mu)*elastic_grad_u_00+Lame_lambda*elastic_u_0/x+Lame_lambda*elastic_grad_u_11+bool_dilatation*sigma_T:bool_dilatation:Lame_lambda:Lame_mu:x:elastic_u_0:elastic_grad_u_00:elastic_grad_u_11:elastic_grad_u_22:sigma_T", "sigma_thth":"Lame_lambda*elastic_grad_u_00+(Lame_lambda+2*Lame_mu)*Lame_lambda*elastic_u_0/x+Lame_lambda*elastic_grad_u_11+bool_dilatation*sigma_T:bool_dilatation:Lame_lambda:Lame_mu:x:elastic_u_0:elastic_grad_u_00:elastic_grad_u_11:elastic_grad_u_22:sigma_T", "sigma_zz":"Lame_lambda*elastic_grad_u_00+Lame_lambda*Lame_lambda*elastic_u_0/x+(Lame_lambda+2*Lame_mu)*elastic_grad_u_11+bool_dilatation*sigma_T:bool_dilatation:Lame_lambda:Lame_mu:x:elastic_u_0:elastic_grad_u_00:elastic_grad_u_11:elastic_grad_u_22:sigma_T", "sigma_rz":"Lame_mu*(elastic_grad_u_01+elastic_grad_u_10):Lame_mu:elastic_grad_u_01:elastic_grad_u_10", "sigma_1":"Lame_lambda/x*elastic_u_0+(Lame_lambda+Lame_mu)*(elastic_grad_u_00+elastic_grad_u_11)+bool_dilatation*sigma_T+Lame_mu*sqrt((elastic_grad_u_00-elastic_grad_u_11)*(elastic_grad_u_00-elastic_grad_u_11)+4*(elastic_grad_u_01+elastic_grad_u_10)*(elastic_grad_u_01+elastic_grad_u_10)):bool_dilatation:x:Lame_lambda:Lame_mu:elastic_u_0:elastic_grad_u_00:elastic_grad_u_11:elastic_grad_u_01:elastic_grad_u_10:sigma_T", "sigma_2":"Lame_lambda*elastic_grad_u_00+(Lame_lambda+2*Lame_mu)/x*elastic_u_0+Lame_lambda*elastic_grad_u_11+bool_dilatation*sigma_T:bool_dilatation:x:Lame_lambda:Lame_mu:elastic_u_0:elastic_grad_u_00:elastic_grad_u_11:sigma_T", "sigma_3":"Lame_lambda/x*elastic_u_0+(Lame_lambda+Lame_mu)*(elastic_grad_u_00+elastic_grad_u_11)+bool_dilatation*sigma_T-Lame_mu*sqrt((elastic_grad_u_00-elastic_grad_u_11)*(elastic_grad_u_00-elastic_grad_u_11)+4*(elastic_grad_u_01+elastic_grad_u_10)*(elastic_grad_u_01+elastic_grad_u_10)):bool_dilatation:x:Lame_lambda:Lame_mu:elastic_u_0:elastic_grad_u_00:elastic_grad_u_11:elastic_grad_u_01:elastic_grad_u_10:sigma_T" }, "Air": { "physics":"magnetic", "mu":"4*pi*1e-7", // kg.m/A2/s2 "magnetic_c":"x/mu:x:mu", "magnetic_beta":"{2/mu,0}:mu" } }