/* -------------------------------------------------------------------------- File Core.pro Le 25/11/2009 Ce fichier définit les structures de données pour le problème de l'inducteur avec noyau (magnétodynamique) --------------------------------------------------------------------------*/ Include "Core.don"; Group { Air = Region[104]; // air externe Core = Region[101]; // Noyau Ind = Region[103]; // Inducteur bobiné Entfr = Region[102]; // Air entrefer Line_Left = Region[50]; DomainCC_Mag = Region[ {Air,Entfr,Ind} ]; // Régions non conductrices DomainC_Mag = Region[ {Core} ]; // Régions conductrices DomainS_Mag = Region[ {Ind} ]; // Inducteur bobiné (sans pertes) DomainV_Mag = Region[ {Core} ]; // Région en mouvement Domain_Mag = Region[ {DomainCC_Mag,DomainC_Mag,DomainS_Mag} ]; // Domain complet } Function { mu0 = 4.e-7*Pi; nu [Region[ {Air,Ind,Entfr} ]] = 1./mu0; nu [Core] = 1./(murCore*mu0); sigma [Ind] = 1.0/rhoInd; sigma [Core] = 1.0/rhoCore; Velocity [Core] = 0.0; } Constraint { { Name MagneticVectorPotential_2D; Case { { Region Line_Left ; Value 0.; } // A=0 sur l'axe y } } { Name SourceCurrentDensityZ; Case { { Region Ind; Value Cur_Dens; } // Source de courant } } { Name Voltage_2D; Case { { Region Core; Value 0.; } } } } Jacobian { { Name Vol; Case { { Region All; Jacobian Vol; } } } } Integration { { Name CurlCurl ; Case { { Type Gauss ; Case { { GeoElement Triangle ; NumberOfPoints 4 ; } { GeoElement Quadrangle ; NumberOfPoints 4 ; } } } } } } FunctionSpace { { Name Hcurl_a_Mag_2D ; Type Form1P; BasisFunction { { Name se ; NameOfCoef ae ; Function BF_PerpendicularEdge; Support Domain_Mag ; Entity NodesOf[ All ] ; } } Constraint { { NameOfCoef ae ; EntityType NodesOf ; NameOfConstraint MagneticVectorPotential_2D ; } } } { Name Hregion_u_Mag_2D ; Type Form1P; BasisFunction { { Name sr ; NameOfCoef ur ; Function BF_RegionZ; Support DomainC_Mag ; Entity DomainC_Mag ; } } GlobalQuantity { { Name U; Type AliasOf; NameOfCoef ur; } { Name I; Type AssociatedWith; NameOfCoef ur; } } Constraint { { NameOfCoef U ; EntityType Region; NameOfConstraint Voltage_2D; } { NameOfCoef I ; EntityType Region; NameOfConstraint Current_2D; } } } { Name Hregion_j_Mag_2D ; Type Vector; BasisFunction { { Name sr ; NameOfCoef jsr ; Function BF_RegionZ; Support DomainS_Mag ; Entity DomainS_Mag ; } } Constraint { { NameOfCoef jsr ; EntityType Region; NameOfConstraint SourceCurrentDensityZ ; } } } } Formulation { { Name Magnetodynamics_av_2D ; Type FemEquation ; Quantity { { Name a ; Type Local ; NameOfSpace Hcurl_a_Mag_2D ; } { Name ur ; Type Local ; NameOfSpace Hregion_u_Mag_2D ; } { Name I ; Type Global ; NameOfSpace Hregion_u_Mag_2D [I]; } { Name U ; Type Global ; NameOfSpace Hregion_u_Mag_2D [U]; } { Name js ; Type Local ; NameOfSpace Hregion_j_Mag_2D ; } } Equation { Galerkin { [ nu[] * Dof{d a} , {d a} ] ; In Domain_Mag ; Jacobian Vol ; Integration CurlCurl ; } Galerkin { DtDof [ sigma[] * Dof{a}, {a} ]; In DomainC_Mag; Jacobian Vol ; Integration CurlCurl ; } Galerkin { [ sigma[] * Dof{ur}, {a} ]; In DomainC_Mag; Jacobian Vol ; Integration CurlCurl ; } Galerkin { [ - sigma[] * (Velocity[]*^Dof{d a}), {a} ]; In DomainV_Mag; Jacobian Vol ; Integration CurlCurl ; } Galerkin { [ -Dof{js} , {a} ] ; In DomainS_Mag ; Jacobian Vol ; Integration CurlCurl ; } Galerkin { DtDof [ sigma[] * Dof{a}, {ur} ]; In DomainC_Mag; Jacobian Vol ; Integration CurlCurl ; } Galerkin { [ sigma[] * Dof{ur}, {ur} ]; In DomainC_Mag; Jacobian Vol ; Integration CurlCurl ; } GlobalTerm { [ Dof{I} , {U} ]; In DomainC_Mag; } } } } Resolution { { Name MagDyn_av_2D ; System { { Name Sys_Mag ; NameOfFormulation Magnetodynamics_av_2D ; Type ComplexValue; Frequency Freq; } } Operation { Generate[Sys_Mag] ; Solve[Sys_Mag] ; SaveSolution[Sys_Mag] ; } } } PostProcessing { { Name MagDyn_av_2D ; NameOfFormulation Magnetodynamics_av_2D ; Quantity { { Name a ; Value { Local { [ {a} ] ; In Domain_Mag ; Jacobian Vol ; } } } { Name az ; Value { Local { [ CompZ[{a}] ] ; In Domain_Mag ; Jacobian Vol ; } } } { Name by ; Value { Local { [ CompY[{d a}] ] ; In Domain_Mag ; Jacobian Vol ; } } } { Name h ; Value { Local { [ nu[]*{d a} ] ; In Domain_Mag ; Jacobian Vol ; } } } { Name j ; Value { Local { [ -sigma[]*(Dt[{a}]+{ur}) ] ; In DomainC_Mag ; Jacobian Vol ; } } } { Name jz ;Value { Local { [ -sigma[]*CompZ[Dt[{a}]+{ur}] ] ; In DomainC_Mag ; Jacobian Vol ; } } } { Name roj2 ;Value { Local { [ -sigma[]*SquNorm[Dt[{a}]+{ur}] ] ; In DomainC_Mag ; Jacobian Vol ; } } } { Name U ; Value { Local { [ {U} ] ; In DomainC_Mag ; } } } { Name I ; Value { Local { [ {I} ] ; In DomainC_Mag ; } } } } } } PostOperation { { Name Map_a ; NameOfPostProcessing MagDyn_av_2D; Operation { Print[az, OnElementsOf Domain_Mag, File "Core_m_a.pos"]; Print[jz, OnElementsOf Domain_Mag, File "Core_m_j.pos"]; Print[az, OnLine { {0, 0, 0} { Lmod, 0, 0} } {65}, File "az.pos", Format Table ] ; Print[by, OnLine { {0, 0, 0} { Lmod, 0, 0} } {65}, File "by.pos", Format Table ] ; Print[jz, OnLine { {0, 0, 0} { Lmod, 0, 0} } {65}, File "jz.pos", Format Table ] ; } } { Name U_av ; NameOfPostProcessing MagDyn_av_2D; Operation { Print[U, OnRegion Core]; Print[I, OnRegion Core]; } } }