quelques questions sur l'Axi

trophime christophe trophime at labs.polycnrs-gre.fr
Tue Mar 20 12:22:49 CET 2001


Il y a des points que je comprends pas bien. Est-ce que pourrai eclaire
ma 
lanterne?

1) Pour la formulation MagDyn_Axi j'ai declare la formulation de la
facon
suivante :

  Formulation {
    { Name Magnetodynamics_av_Axi ; Type FemEquation ;
      Quantity {
        { Name a  ; Type Local  ; NameOfSpace Hcurl_a_Mag_Axi ; }
        { Name ur ; Type Local  ; NameOfSpace Hregion_u_Mag_Axi ; }
        { Name I  ; Type Global ; NameOfSpace Hregion_u_Mag_Axi [I] ; }
        { Name U  ; Type Global ; NameOfSpace Hregion_u_Mag_Axi [U] ; }
        { Name js ; Type Local  ; NameOfSpace Hregion_j_Mag_Axi ; }
      }
      Equation {
        Galerkin { [ nu[] * Dof{d a} , {d a} ] ; In Domain_Mag ;
                   Jacobian VolAxi ; Integration CurlCurl ; }

        Galerkin { DtDof [ sigma[] * Dof{a} , {a} ] ; In DomainC_Mag ;
                   Jacobian VolAxi ; Integration CurlCurl ; }
        Galerkin { [ sigma[] * Factor[] * Dof{ur} , {a} ] ; In
DomainC_Mag ;
                   Jacobian VolAxi ; Integration CurlCurl ; }

        Galerkin { [ - sigma[] * (Velocity[] *^ Dof{d a}) , {a} ] ;
                   In DomainV_Mag ;
                   Jacobian VolAxi ; Integration CurlCurl ; }

        Galerkin { [ - Dof{js} , {a} ] ; In DomainS_Mag ;
                   Jacobian VolAxi ;
                   Integration CurlCurl ; }

        Galerkin { DtDof [ sigma[] * Dof{a} , {ur} ] ; In DomainC_Mag ;
                   Jacobian VolAxi ; Integration CurlCurl ; }
        Galerkin { [ sigma[] * Factor[] * Dof{ur} , {ur} ] ; In
DomainC_Mag ;
                   Jacobian VolAxi ; Integration CurlCurl ; }
        GlobalTerm { [ Dof{I} , {U}  ] ; In DomainC_Mag ; }
      }
    }
  }

sans rien changer aux definitions des espaces fonctionnels fournis dans
l'exemple
du manuel.

La fonction Factor[] (qui vaut 1/(2*Pi) dans le cas Axi) est juste la
pour que
je garde la meme formulation que le 2D.

Dans le post-processing je definis les grandeurs suivantes :

        { Name V ; Value { Local { [ CompZ[{ur}] ]          ; In
Domain_Mag ; Jacobian VolAxi ;} } }
        { Name jc ; 
          Value { 
            Local { [ - sigma[]*CompZ[Factor[] *{ur}] ] ; In DomainC_Mag
; Jacobian VolAxi ;} 
          } 
        }

En toute logique je me dis que si je trace V (que je multiplie ensuite
par sigma[]/(2*Pi)) et jc
par exemple dans Gnuplot je devrais trouver la meme chose... Et bien
non! La je comprends pas ce
qui ce passe.


Par ailleurs j'ai fait un modele "complet" de deux inducteurs
concentriques
et un modele avec symetrie suivant l'axe Or pour avoir simplement une
moitie du
probleme precedent. J'obtiens bien les memes resultats en terme de
potentiel a,v et
de densite de courant mais par contre pour le courant total I j'obtiens
des resultats
totalement incoherent. Mais cette fois je pense qu'il y a un "probleme"
dans la definition
des contraintes... J'ai simplement ajoute une "ligne" dans la definition
des Group sans
preciser de contrainte pour a et ur. Au niveau de a c'est bien un
neumann homogene qui vient
mais pour ur qu'est-ce qu'il faudrait mettre?


2) Je voudrais juste revenir sur le probleme MagSta_a dans le cas Axi.
La definition de 
l'espace fonctionnel pour js dans l'exemple implique que js est constant
par morceau.
Pour introduire une densite de courant source en 1/r j'ai defini
l'espace comme suit :

    // Source current density js (fully fixed space)
    { Name Hregion_j_MagSta_Axi ; Type Vector ;
      BasisFunction {
        { Name sr ; NameOfCoef jsr ; Function BF_NodeZ ;
          Support DomainS_Mag ; Entity NodesOf[DomainS_Mag ]; }
      }
      Constraint {
        { NameOfCoef jsr ; EntityType NodesOf ;
          NameOfConstraint SourceCurrentDensityZ ; }
      }
    }

et dans le fichier de donnees j'ai par exemple :

    Distribution[ Region[{Ind}] ] = Current[]*75.e-3 / ((75.e-3 *
Log[100./75.] * 50.e-3) * X[]);

avec la contrainte :

    { Name SourceCurrentDensityZ ;
      Case {
        // To use if Static analysis
	{ Region DomainS_Mag ; Value Distribution[] ; }
      }
    }

Si je comprends bien maintenant mon js est "piecewise linear"! et ca
marche bien pour les
cas js uniforme et en 1/r.

Si je veux que la distribution soit prise "exactement", je me suis dit 
que je peux simplement definir la formulation magnetostatique suivante :

    { Name Magnetostatics_a_Axi ; Type FemEquation ;
      Quantity {
        { Name a  ; Type Local ; NameOfSpace Hcurl_a_MagSta_Axi ; }
      }
      Equation {
        Galerkin { [ nu[] * Dof{d a} , {d a} ]  ; In Domain_Mag ;
                   Jacobian VolAxi ; Integration CurlCurl ; }
        Galerkin { [ - Distribution[] , {a} ] ; In DomainS_Mag ; 
                   Jacobian VolAxi ; Integration CurlCurl ; }
      }
    }

Mais si je fais ca tout se passe comme si js (ie Distribution) etait
nul???

3) Enfin je me suis dit que le resultat du probleme magnetodynamique
devrait
me redonner au bout d'un temps assez grand le resultat du probleme
magnetostatique.
J'ai calcule la resistance de mes deux inducteurs (R= \frac{\Pi
(r_{int}+r_{ext})}{\sigma S}
avec S la section de l'inducteur considere). J'ai impose I=1/R pour le
cas stationnaire
et U=1V pour le cas instantionnaire. J'arrive bien a retrouver les memes
densites
de courants, courants totals mais jamais a moins de 1% (ce qui est bien
en soi). 
J'ai beau maille plus finiment et mettre plus de pas temps l'erreur
reste la meme. 
Ca m'etonne un peu.

4) Par ailleurs, il y a toujours le meme probleme avec la transformation
pour AirInf
si je remets des valeurs de Rint et Rext identiques dans le fichier de
donnees et le
fichier equation. Au niveau du calcul des densites de courants en
magnetostatique
il y a aussi toujours un probleme a pas de temps initial "0" (nan et
inf) mais bon
ca c'est pas vraiment ni genant ni anormal.