diff --git a/Ressources-Onelab/Levitation/BH.pro b/Ressources-Onelab/Levitation/BH.pro deleted file mode 100644 index c48b926d725a78eb0beddd53904b97226172eb22..0000000000000000000000000000000000000000 --- a/Ressources-Onelab/Levitation/BH.pro +++ /dev/null @@ -1,65 +0,0 @@ -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/data.geo b/Ressources-Onelab/Levitation/data.geo deleted file mode 100644 index c481031c481a83950fd3c208340cc3470032eb23..0000000000000000000000000000000000000000 --- a/Ressources-Onelab/Levitation/data.geo +++ /dev/null @@ -1,95 +0,0 @@ - -// 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 deleted file mode 100644 index 6f9e8c116705b55c3bc9f764379560479016e94a..0000000000000000000000000000000000000000 Binary files a/Ressources-Onelab/Levitation/ldc.png and /dev/null differ diff --git a/Ressources-Onelab/Levitation/levitation.geo b/Ressources-Onelab/Levitation/levitation.geo deleted file mode 100644 index b233fd62d80d8fc8ee193e8e363d1a00b56b4247..0000000000000000000000000000000000000000 --- a/Ressources-Onelab/Levitation/levitation.geo +++ /dev/null @@ -1,78 +0,0 @@ -// 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 deleted file mode 100644 index 755fc24ce8ef4439df031d670a0cd785796cb242..0000000000000000000000000000000000000000 --- a/Ressources-Onelab/Levitation/levitation.pro +++ /dev/null @@ -1,164 +0,0 @@ - -// 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" ]; - } -