From 1e9bc3a0490b2b35a2b32103a68d2c0efec51e70 Mon Sep 17 00:00:00 2001
From: fontchas5 <j.fontchastagner@gmail.com>
Date: Tue, 16 Nov 2021 11:31:43 +0100
Subject: [PATCH] ajout

---
 Ressources-Onelab/Levitation/BH.pro         |  65 ++++++++
 Ressources-Onelab/Levitation/F.dat          |   9 ++
 Ressources-Onelab/Levitation/data.geo       |  95 ++++++++++++
 Ressources-Onelab/Levitation/ldc.png        | Bin 0 -> 55847 bytes
 Ressources-Onelab/Levitation/levitation.geo |  78 ++++++++++
 Ressources-Onelab/Levitation/levitation.pro | 164 ++++++++++++++++++++
 6 files changed, 411 insertions(+)
 create mode 100644 Ressources-Onelab/Levitation/BH.pro
 create mode 100644 Ressources-Onelab/Levitation/F.dat
 create mode 100644 Ressources-Onelab/Levitation/data.geo
 create mode 100644 Ressources-Onelab/Levitation/ldc.png
 create mode 100644 Ressources-Onelab/Levitation/levitation.geo
 create mode 100644 Ressources-Onelab/Levitation/levitation.pro

diff --git a/Ressources-Onelab/Levitation/BH.pro b/Ressources-Onelab/Levitation/BH.pro
new file mode 100644
index 0000000..c48b926
--- /dev/null
+++ b/Ressources-Onelab/Levitation/BH.pro
@@ -0,0 +1,65 @@
+Function{
+
+  // Materiau magnetique
+
+  // Ferrite
+  Mat_h = {0.000000, 44.635198, 47.996938, 54.360481, 57.254136, 63.513926, 66.205407, 
+    83.184012, 128.638642, 150.321852, 280.295679, 307.761975, 317.501481, 
+    486.037901, 775.608272, 869.477778, 1359.072840, 1373.269136, 2431.451852,
+    5699.176543, 6389.154321, 8458.007407, 61532.617284, 73419.641975, 
+    197003.703704, 321027.901235, 324350.000000};
+  
+  Mat_b = {0.000000, 0.068851, 0.079231, 0.096630, 0.104285, 0.117920, 0.123374, 0.150912,
+    0.191749, 0.202635, 0.239024, 0.243936, 0.245556, 0.267244, 0.290565, 0.296190,
+    0.312896, 0.313356, 0.335942, 0.364839, 0.368482, 0.376766, 0.477117, 0.494881,
+    0.666990, 0.828539, 0.832720};
+  
+  // XC10
+  If (TypFe == 2) 
+    Mat_h = {0, 43.92451, 87.84902, 145.3502, 214.3516, 297.1533, 396.5154, 515.7499,
+      658.8312, 830.5289, 1036.566, 1283.811, 1580.504, 1936.536, 2363.775, 2876.462,
+      3491.686, 4229.955, 5115.877, 6178.984, 7454.712, 8985.587, 10822.64, 13027.09,
+      15672.45, 18846.87, 22656.17, 27227.34, 32712.74, 35984.02} ;
+    
+    Mat_b = {0, 0.1116464, 0.2104877, 0.3239492, 0.4408211, 0.5592701, 0.6773683, 0.7932189,
+      0.9050798, 1.011466, 1.111222, 1.203555, 1.288032, 1.364557, 1.433316, 1.494722, 1.549358,
+      1.597921, 1.641505, 1.683981, 1.725604, 1.765532, 1.802967, 1.837184, 1.867554, 1.893545,
+      1.914713, 1.930682, 1.941108, 1.945219} ;
+  EndIf
+
+  // M800
+  If ( TypFe == 3 )
+    Mat_h = { 0, 100, 125, 150, 175, 200, 250, 350, 500, 750, 1000, 1250, 1500, 2000, 2500,
+      5000, 7500, 10000, 15000, 20000, 40000, 50000, 60000, 70000, 80000, 90000, 100000,
+      200000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000} ;
+    
+    Mat_b = { 0, 0.57521, 0.80524, 0.99704, 1.14392, 1.21025, 1.30311, 1.39454, 1.45633, 
+      1.50824, 1.54066, 1.56507, 1.58528, 1.61581, 1.64054, 1.72818, 1.79222, 1.84547,
+      1.92998, 1.99233, 2.07277, 2.09943, 2.12151, 2.14092, 2.15865, 2.17525, 2.19105, 
+      2.33142, 2.46203, 2.59017, 2.71733, 2.84399, 2.97036, 3.09656, 3.22264, 3.34864} ;
+  EndIf
+  
+
+  Mat_b2 = Mat_b()^2;
+  Mat_nu = Mat_h() / Mat_b(); 
+  Mat_nu(0) = Mat_nu(1);
+
+  Mat_nu_b2 = ListAlt[Mat_b2(), Mat_nu()] ;
+  nu_1[] = InterpolationLinear[ SquNorm[$1] ]{ Mat_nu_b2() } ;
+  dnudb2_1[] = dInterpolationLinear[SquNorm[$1]]{ Mat_nu_b2() } ;
+  h_1[] = nu_1[$1] * $1 ;
+  dhdb_1[] = TensorDiag[1,1,1] * nu_1[$1#1] + 2*dnudb2_1[#1] * SquDyadicProduct[#1]  ;
+  dhdb_1_NL[] = 2*dnudb2_1[$1#1] * SquDyadicProduct[#1] ;
+
+  Mat_h2 = Mat_h()^2;
+  Mat_mu = Mat_b() / Mat_h();
+  Mat_mu(0) = Mat_mu(1);
+  
+  Mat_mu_h2 = ListAlt[Mat_h2(), Mat_mu()] ;
+  mu_1[] = InterpolationLinear[ SquNorm[$1] ]{ Mat_mu_h2() } ;
+  dmudh2_1[] = dInterpolationLinear[SquNorm[$1]]{ Mat_mu_h2() } ;
+  b_1[] = mu_1[$1] * $1 ;
+  dbdh_1[] = TensorDiag[1,1,1] * mu_1[$1#1] + 2*dmudh2_1[#1] * SquDyadicProduct[#1]  ;
+  dbdh_1_NL[] = 2*dmudh2_1[$1#1] * SquDyadicProduct[#1] ;
+  
+}
diff --git a/Ressources-Onelab/Levitation/F.dat b/Ressources-Onelab/Levitation/F.dat
new file mode 100644
index 0000000..c2b3a7f
--- /dev/null
+++ b/Ressources-Onelab/Levitation/F.dat
@@ -0,0 +1,9 @@
+0  3.264177182490988
+0  9.542570098691778
+0  8.666095644311994
+0  0.7426940221890674
+0  3.264177182490988
+0  -0.7974006232992313
+0  -0.7709904060265769
+0  3.283543230006086
+0  3.30698956006798
diff --git a/Ressources-Onelab/Levitation/data.geo b/Ressources-Onelab/Levitation/data.geo
new file mode 100644
index 0000000..c481031
--- /dev/null
+++ b/Ressources-Onelab/Levitation/data.geo
@@ -0,0 +1,95 @@
+
+// Parametres geometriques
+//---------------------------
+
+// noyau electroaimant
+hea0 = 3e-2;
+rea0 = 1e-2;
+
+// bobine 
+//dfil = 0.5e-3;
+section0 = 0.52e-6;
+Ns0 = 150;
+kr = 0.6;
+
+// aimant permanent
+rap0 = 0.5e-2;
+hap0 = 1e-2;
+
+// distance inter-aimants
+dia0 = 0.5e-2;
+
+
+// Parametres physiques
+//------------------------
+
+Ibob0 = 10;
+Br0 = 1.0;
+
+
+// Interface graphique 
+//-----------------------
+DefineConstant[  
+  TypFe = {1, Choices {1="Ferrite", 2="XC10", 3="M800"},
+    Name "Modèle/Paramètres/01Bobine/00 Matériau noyau"},
+  hea = {hea0*1e3, Min 10, Max 100, Step 1,  
+    Name "Modèle/Paramètres/01Bobine/01Hauteur (en mm)"},
+  rea = {rea0*1e3, Min 5, Max 50, Step 0.5,  
+    Name "Modèle/Paramètres/01Bobine/02Rayon noyau ferreux (en mm)"},
+  section = {section0*1e6, Choices {0.11="0,11",0.2="0,2",0.33="0,33",
+      0.4="0,4",0.52="0,52",0.7="0,7",0.82="0,82",1.1="1,1",1.3="1,3",
+      1.5="1,5",2.5="2,5",3.3="3,3"},  
+    Name"Modèle/Paramètres/01Bobine/03Section fil (en mm^2)"},
+  Ns = {Ns0, Min 10, Max 250, Step 5,  
+    Name "Modèle/Paramètres/01Bobine/04Nombre de spires"},
+  Ibob = {Ibob0, Min 0, Max 50, Step 0.1,  
+    Name "Modèle/Paramètres/01Bobine/05Courant (en A)"},
+  rap = {rap0*1e3, Min 2.5, Max 25, Step 0.1,  
+    Name "Modèle/Paramètres/02Aimant/01Rayon aimant (en mm)"},
+  hap = {hap0*1e3, Min 5, Max 50, Step 0.5,  
+    Name "Modèle/Paramètres/02Aimant/02Hauteur aimant (en mm)"},
+  Br = {Br0, Choices {0.4 = "Ferrite", 0.9="NdFeB 0,9 T", 
+      1.0="NdFeB 1,0 T", 1.1="NdFeB 1,1 T", 1.2="NdFeB 1,2 T"}, 
+    Name "Modèle/Paramètres/02Aimant/03Type d'aimant"},
+  dia = {dia0*1e3, Min 1, Max 50, Step 0.1, 
+    Name "Modèle/Paramètres/03Dispositif/04Distance aimant-bobine (en mm)"}
+];
+
+
+// retour en m :
+hea = hea*1e-3;
+rea = rea*1e-3;
+section = section*1e-6;
+rap = rap*1e-3;
+hap = hap*1e-3;
+dia = dia*1e-3;
+
+// calculs grandeurs annexes
+//-----------------------------
+htot = hea+dia+hap;
+epbob = Ns*section/kr/hea;
+jeq = Ns*Ibob/(hea*epbob);
+
+rdom = 1.5*Sqrt[(htot/2)^2+(rea+epbob)^2];
+rext = 1.2*rdom;
+
+// Parametres maillage
+//----------------------
+lc = (rap<epbob)?rap:epbob/25;
+lcdom = rdom/25;
+nehea = 40;
+nerea = 20;
+neepbob = 12;
+nerap = 20;
+nehap = 20;
+neent = 25;
+
+// regions physiques
+//---------------------
+BORD = 500;
+STM = 501;
+AIR = 1000;
+NOY = 1001;
+BOB = 1002;
+AIM = 1003;
+INF = 1004;
diff --git a/Ressources-Onelab/Levitation/ldc.png b/Ressources-Onelab/Levitation/ldc.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f9e8c116705b55c3bc9f764379560479016e94a
GIT binary patch
literal 55847
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
D#Fya(

literal 0
HcmV?d00001

diff --git a/Ressources-Onelab/Levitation/levitation.geo b/Ressources-Onelab/Levitation/levitation.geo
new file mode 100644
index 0000000..b233fd6
--- /dev/null
+++ b/Ressources-Onelab/Levitation/levitation.geo
@@ -0,0 +1,78 @@
+// geometrie du probleme
+
+Include "data.geo";
+
+Point(1) = {0,htot/2,0,lc};
+Point(2) = {0,htot/2-hea,0,lc};
+Point(3) = {rea,htot/2-hea,0,lc};
+Point(4) = {rea,htot/2,0,lc};
+Point(5) = {rea+epbob,htot/2,0,lc};
+Point(6) = {rea+epbob,htot/2-hea,0,lc};
+Point(7) = {0,-htot/2,0,lc};
+Point(8) = {rap,-htot/2,0,lc};
+Point(9) = {rap,-htot/2+hap,0,lc};
+Point(10) = {0,-htot/2+hap,0,lc};
+Point(11) = {0,rdom,0,lcdom};
+Point(12) = {rdom,0,0,lcdom};
+Point(13) = {0,-rdom,0,lcdom};
+Point(14) = {0,rext,0,lcdom};
+Point(15) = {rext,0,0,lcdom};
+Point(16) = {0,-rext,0,lcdom};
+
+c = newp;
+Point(c) = {0,0,0};
+
+Line(1) = {1,2};
+Line(2) = {2,3};
+Line(3) = {3,4};
+Line(4) = {4,1};
+Line(5) = {4,5};
+Line(6) = {5,6};
+Line(7) = {6,3};
+Line(8) = {7,8};
+Line(9) = {8,9};
+Line(10) = {9,10};
+Line(11) = {10,7};
+Line(12) = {11,1};
+Line(13) = {2,10};
+Line(14) = {7,13};
+Circle(15) = {13,c,12};
+Circle(16) = {12,c,11};
+Line(17) = {11,14};
+Circle(18) = {14,c,15};
+Circle(19) = {15,c,16};
+Line(20) = {16,13};
+
+Transfinite Line {1,3,6} = nehea+1; 
+Transfinite Line {2,4} = nerea+1;
+Transfinite Line {5,7} = neepbob+1;
+Transfinite Line {8,10} = nerap+1;
+Transfinite Line {9,11} = nehap+1;
+Transfinite Line {13,12,14} = neent+1;
+
+Line Loop(1) = {1,2,3,4};
+Plane Surface(1) = {1};
+Line Loop(2) = {5,6,7,3};
+Plane Surface(2) = {2};
+Line Loop(3) = {8,9,10,11};
+Plane Surface(3) = {3};
+Line Loop(4) = {12,-4,5,6,7,-2,13,-10,-9,-8,14,15,16};
+Plane Surface(4) = {4};
+Line Loop(5) = {15,16,17,18,19,20};
+Plane Surface(5) = {5};
+
+//Transfinite Surface {1,2,3};
+
+
+Physical Surface(NOY) = {1};
+Physical Surface(BOB) = {2};
+Physical Surface(AIM) = {3};
+Physical Surface(AIR) = {4};
+Physical Surface(INF) = {5};
+Physical Line(BORD) = {18,19,1,13,11,14,12,17,20};
+Physical Line(STM) = {8,9,10};
+
+Color White { Surface{4,5}; }
+Color Gray { Surface{1}; }
+Color Red { Surface{2}; }
+Color Blue { Surface{3}; }
\ No newline at end of file
diff --git a/Ressources-Onelab/Levitation/levitation.pro b/Ressources-Onelab/Levitation/levitation.pro
new file mode 100644
index 0000000..755fc24
--- /dev/null
+++ b/Ressources-Onelab/Levitation/levitation.pro
@@ -0,0 +1,164 @@
+
+// resolution du probleme
+
+Include "data.geo";
+
+Group{
+  Domaine = Region[{NOY,BOB,AIM,AIR,INF}];
+  Air = Region[{AIR}];
+  Fer = Region[{NOY}];
+  NonMag = Region[{BOB,AIM,AIR,INF}];
+  Bobine = Region[{BOB}];
+  Aimant = Region[{AIM}];
+  BoiteInf = Region[{INF}];
+  Bord = Region[{BORD}];
+  STenseur = Region[{STM}];
+  Vol_Force = Region[Air, OnOneSideOf STenseur] ;
+}
+
+Include "BH.pro";
+
+Function{
+  mu0 = 4e-7*Pi;
+  //mur = 500;
+  //nu[#{NonMag}] = 1.0/mu0;
+  //nu[#{Fer}] = 1.0/(mu0*mur);
+  nu[#{NonMag}] = 1.0/mu0;
+  nu[#{Fer}] = nu_1[$1];
+  dhdb_NL[#{Fer}] = dhdb_1[$1];
+  j[#{Bobine}] = Vector[0,0,-jeq];
+  br[#{Aimant}] = Vector[0,Br,0];
+  TM[] = ( SquDyadicProduct[$1] - SquNorm[$1] * TensorDiag[0.5, 0.5, 0.5] ) * nu[] ;
+}
+
+Jacobian{
+  { Name Jvol;
+    Case {   
+      { Region BoiteInf ; Jacobian VolAxiSquSphShell{rdom, rext}; }
+      { Region All ; Jacobian VolAxiSqu ; } 
+    }
+  }
+}
+
+Integration{
+  { Name Integ;
+    Case { 
+      {Type Gauss;
+	Case { 
+	  { GeoElement Line ; NumberOfPoints 2; }
+	  { GeoElement Triangle ; NumberOfPoints 6; } }
+      }
+    }
+  }
+}
+
+Constraint {	
+  { Name Dirichlet ;
+    Case {      
+      { Region Bord ; Type Assign ; Value 0. ; }
+    }
+  }
+  { Name TenseurAimant ;
+    Case {
+      { Region STenseur ; Value 1. ; }
+    }
+  }
+}
+
+FunctionSpace {
+  { Name Hrot ; Type Form1 ; 
+    BasisFunction { 
+      { Name se ; NameOfCoef ae ; Function BF_PerpendicularEdge ; 
+	Support Region[{Domaine}]  ; Entity NodesOf[All] ; }
+    } 
+    Constraint {
+      { NameOfCoef ae  ; EntityType NodesOf ; NameOfConstraint Dirichlet ; }
+    }
+  }
+  { Name TenseurAim ; Type Form0 ;
+    BasisFunction {     
+      { Name sn ; NameOfCoef un ; Function BF_GroupOfNodes ; 
+	Support Air ; Entity GroupsOfNodesOf[ STenseur ] ; }       
+    }
+    Constraint {
+      { NameOfCoef un ; EntityType GroupsOfNodesOf ; NameOfConstraint TenseurAimant ; }       
+    }
+  }
+}
+
+
+Formulation {
+  { Name Magnetostat ; Type FemEquation ;
+    Quantity {
+      { Name a  ; Type Local ; NameOfSpace Hrot ; }
+      { Name un ; Type Local ; NameOfSpace TenseurAim ; } 
+    }
+    Equation {
+      
+      Galerkin { [ nu[{Curl a}]*Dof{Curl a}  , {Curl a} ] ;
+	In Domaine ; Jacobian Jvol ; Integration Integ ; }
+      
+      Galerkin { JacNL [ dhdb_NL[{Curl a}] * Dof{Curl a} , {Curl a} ] ;         In Fer ; Jacobian Jvol ; Integration Integ ; }    
+
+      Galerkin { [ -j[]  , {a} ] ;
+	In Bobine ; Jacobian Jvol ; Integration Integ ; }
+
+      Galerkin{ [ -nu[]*br[] , {Curl a} ] ;
+        In Aimant ; Jacobian Jvol ; Integration Integ ;}
+      
+       Galerkin { [ 0 * Dof{un} , {un} ] ;      
+	 In Air ; Jacobian Jvol ; Integration Integ ; }
+    }   
+  }
+}
+
+
+Resolution {
+  { Name analyse ;
+    System {
+      { Name Sys ; NameOfFormulation Magnetostat ; }
+    }
+    Operation {
+      InitSolution[Sys] ;
+      GenerateJac[Sys] ; 
+      SolveNL[Sys] ;
+      SaveSolution[Sys] ;
+    }
+  }
+}
+
+  PostProcessing {
+    { Name PostProc ; NameOfFormulation Magnetostat ;
+      Quantity {	
+	{ Name j  ; Value { Local { [ j[] ] ; In Bobine ; Jacobian Jvol ; } } }
+        { Name a  ; Value { Local { [ {a} ] ; In Domaine ; Jacobian Jvol ; } } }
+	{ Name az  ; Value { Local { [ Norm[{a}] ] ; In Domaine ; Jacobian Jvol ; } } }
+	{ Name b  ; Value { Local { [ {Curl a} ] ; In Domaine ; Jacobian Jvol ; } } }
+	{ Name normb ; Value { Local { [ Norm[{Curl a}] ] ; In Domaine ; Jacobian Jvol ; } } }
+	{ Name h  ; Value {
+	    Local { [ nu[{Curl a}]*{Curl a} ] ; In Domaine ; Jacobian Jvol ; }  
+	    Local  { [  -nu[]*br[] ] ; In Aimant ; Jacobian Jvol ; }  
+	  } 
+	}
+	{ Name f ; Value { Integral { [ 2*Pi*CompY[- TM[{Curl a}] * {d un}] ] ;
+	      In Vol_Force ; Jacobian Jvol ; Integration Integ ; } } }
+      }
+    }
+  }
+  
+  PostOperation PostOp UsingPost PostProc {
+    Print[ j, OnElementsOf Bobine, File "j.pos"] ;
+    Print[ a, OnElementsOf Domaine, File "a.pos"] ;
+    Print[ b, OnElementsOf Domaine, File "b.pos"] ;
+    Print[ normb, OnElementsOf Domaine, File "normb.pos"] ;
+    Print[ h, OnElementsOf Domaine, File "h.pos"] ;
+    Print[ az, OnElementsOf Domaine, File "az.pos"] ;
+    Echo[ Str["v0 = PostProcessing.NbViews-1;", 
+	"View[v0].IntervalsType = 1;", 
+	"View[v0].NbIso = 40;", 
+	"View[v0].LightLines = 0;"], 
+      File "tmp.geo", LastTimeStepOnly ];
+    Print[ f[Air], OnGlobal, Format Table, File > "F.dat" ,
+      SendToServer "Modèle/Sorties/ Force [N]", Color "AliceBlue"  ];
+  }
+
-- 
GitLab