diff --git a/Magnetodynamics/Lib_MagStaDyn_av_2D_Cir.pro b/Magnetodynamics/Lib_MagStaDyn_av_2D_Cir.pro index feb65ed67932eb2371a0c22f82669d1acf649107..fa9c1dc018b310a7897bf1e0325373a8e73dbc1f 100644 --- a/Magnetodynamics/Lib_MagStaDyn_av_2D_Cir.pro +++ b/Magnetodynamics/Lib_MagStaDyn_av_2D_Cir.pro @@ -13,8 +13,8 @@ DefineConstant[ CoefPower = 0.5, // coefficient for power calculations Freq = 50, // frequency (for harmonic simulations) TimeInit = 0, // intial time (for time-domain simulations) - TimeFinal = 1, // final time (for time-domain simulations) - DeltaTime = 0.01, // time step (for time-domain simulations) + TimeFinal = 1/50, // final time (for time-domain simulations) + DeltaTime = 1/500, // time step (for time-domain simulations) InterpolationOrder = 1 // finite element order Val_Rint = 0, // interior radius of annulus shell transformation region (VolInf_Mag) Val_Rext = 0 // exterior radius of annulus shell transformation region (VolInf_Mag) @@ -363,7 +363,7 @@ Resolution { Generate[Sys]; Solve[Sys]; SaveSolution[Sys]; Else InitSolution[Sys]; // provide initial condition - TimeLoopTheta[Time0, TimeMax, DeltaTime, 1.]{ + TimeLoopTheta[TimeInit, TimeFinal, DeltaTime, 1.]{ // Euler implicit (1) -- Crank-Nicolson (0.5) Generate[Sys]; Solve[Sys]; SaveSolution[Sys]; } diff --git a/Magnetodynamics/electromagnet.pro b/Magnetodynamics/electromagnet.pro index eb3d8a93318409f86211d13449c9fd4c94e50df6..ca80df088eb1a4b3543031fffb313883d8711575 100644 --- a/Magnetodynamics/electromagnet.pro +++ b/Magnetodynamics/electromagnet.pro @@ -1,12 +1,16 @@ /* ------------------------------------------------------------------- - Tutorial 7a : magnetostatic field of an electromagnet, bis + Tutorial 7a : magnetic fields of an electromagnet Features: - - Same as Tutorial 2, but using a generic template formulation library + - Use of a template formulation library + - Identical to Tutorial 2 for a static current source + - Frequency-domain solution for a dynamic current source - To compute the solution in a terminal: - getdp electromagnet -solve MagSta_a_2D - getdp electromagnet -pos Map_a + To compute the static solution in a terminal: + getdp electromagnet -solve MagSta_a_2D -pos Map_a + + To compute the time-harmonic dynamic solution in a terminal: + getdp electromagnet -solve MagDyn_a_2D -pos Map_a To compute the solution interactively from the Gmsh GUI: File > Open > electromagnet.pro @@ -25,10 +29,11 @@ Group { // Abstract regions used in the "Lib_MagStaDyn_av_2D_Cir.pro" template file // that is included below: - VolCC_Mag = Region[{Air, Core, AirInf}]; // Non-conducting regions + VolCC_Mag = Region[{Air, AirInf}]; // Non-conducting regions + VolC_Mag = Region[{Core}]; // Massive conducting regions VolS_Mag = Region[{Ind}]; // Stranded conductors, i.e., coils - VolInf_Mag = Region[{AirInf}]; // annulus for infinite shell transformation - Val_Rint = rInt; Val_Rext = rExt; // interior and exterior radii of annulus + VolInf_Mag = Region[{AirInf}]; // Annulus for infinite shell transformation + Val_Rint = rInt; Val_Rext = rExt; // Interior and exterior radii of annulus } Function { @@ -41,11 +46,15 @@ Function { nu[ Region[{Air, Ind, AirInf}] ] = 1. / mu0; nu[ Core ] = 1. / (murCore * mu0); + sigma[ Core ] = 1e6 / 10; + sigma[ Ind ] = 5e7; + Ns[ Ind ] = 1000 ; // number of turns in coil Sc[ Ind ] = SurfaceArea[] ; // surface (cross section) of coil // Current density in each coil portion for a unit current (will be multiplied // by the actual total current in the coil) js0[ Ind ] = Ns[]/Sc[] * Vector[0,0,-1]; + CoefGeos[] = 1; } Constraint { @@ -57,11 +66,13 @@ Constraint { } { Name Current_2D; Case { + // represents the phasor amplitude for a dynamic analysis { Region Ind; Value Current; } } } { Name Voltage_2D; Case { + { Region Core; Value 0; } } } } @@ -69,9 +80,10 @@ Constraint { Include "Lib_MagStaDyn_av_2D_Cir.pro"; PostOperation { - { Name Map_a; NameOfPostProcessing MagSta_a_2D; + { Name Map_a; NameOfPostProcessing MagDyn_a_2D; Operation { Print[ a, OnElementsOf Vol_Mag, File "a.pos" ]; + Print[ b, OnElementsOf Vol_Mag, File "b.pos" ]; } } } diff --git a/Magnetodynamics/transfo.pro b/Magnetodynamics/transfo.pro index 5c1def3aac6d751dd2de9bc9d2b76a78c15b033a..906470b2c2dffe2b16d2bbd660147d1371899ae6 100644 --- a/Magnetodynamics/transfo.pro +++ b/Magnetodynamics/transfo.pro @@ -2,13 +2,12 @@ Tutorial 7b : magnetodyamic model of a single-phase transformer Features: - - Time-domain and frequency-domain dynamical problems - Use of a generic template formulation library - - Circuit coupling used as a black-box (see Tutorial 8 for more) + - Frequency- and time-domain dynamic solutions + - Circuit coupling used as a black-box (see Tutorial 8 for details) To compute the solution in a terminal: - getdp transfo -solve MagDyn_a_2D - getdp electromagnet -pos Map + getdp transfo -solve MagDyn_a_2D -pos Map_a To compute the solution interactively from the Gmsh GUI: File > Open > transfo.pro @@ -165,7 +164,7 @@ ElseIf (type_Source == 2) // voltage { Name Voltage_Cir ; Case { - { Region E_in; Value val_E_in; TimeFunction F_Cos_wt_p[]{2*Pi*Freq, phase_E_in};} + { Region E_in; Value val_E_in; TimeFunction F_Cos_wt_p[]{2*Pi*Freq, phase_E_in}; } } } @@ -204,7 +203,7 @@ Constraint { Case { If (type_Source == 1) // Current in each coil (same for PLUS and MINUS portions) - { Region Coil_1; Value 1; } + { Region Coil_1; Value 1; TimeFunction F_Sin_wt_p[]{2*Pi*Freq, 0}; } { Region Coil_2; Value 0; } EndIf }