Fonctions

Christophe Geuzaine Christophe.Geuzaine at ulg.ac.be
Wed Jul 19 10:19:19 CEST 2000


Francois Henrotte wrote:
> 
> > > PostProcessing {
> > >   { Name POST ; NameOfFormulation A ; NameOfSystem SYSTEMA ;
> > >       { Name I  ; Value { Term { [ {I} ] ; In DOMAIN_CND ; } } }
> > >       { Name U  ; Value { Term { [ {U} ] ; In DOMAIN_CND ; } } }
> > >       { Name Intj ;  Type Cumulative ;
> > >       Value { Integral { [CompZ[-sigma[{T}]*(Dt[{a}]+{dV})] ] ;
> > >                   In DOMAIN_CND ; Integration Int1 ; Jacobian JacVol ; }
> > >   } }
> 
> > Je pense que ton probleme vient du fait que, dans le cas d'une grandeur
> > "cumulative" (il faut vraiment qu'on change cette denomonation ---
> > suggestions bienvenues ;-),
> 
> Le probleme n'est pas tant le terme `cumulative' qui decrit bien ce qui
> se passe
> que le fait que le resultat de l'integrale se trouve sur la forme d'une
> carte
> avec une valeur constante la ou un scalaire semblerait bien plus
> indique.

Ben oui, c'est un scalaire. ??

> 
> > on fait la somme des integrales
> > elementaires sur chaque element du domaine specifie dans le
> > PostProcessing (et pas dans la PostOperation).
> 
> ???
> Y a-t-il une bonne raison pour cela que je ne verrais point ???
> Il me semble (de l'exterieur, j'en conviens)
> que ce ne doit pas etre bien difficile de faire l'integration
> sur la `Region' indiquee plutot que sur le `Support'.
> L'information est certainement disponible et le support doit uniquement
> servir de filtre sur les elements.
> Une carte `NonCumulative', serait elle egalement faite sur le `Support'
> ?

Je ne sais plus tres bien pq j'ai programme ca comme ca. De toute facon,
il faudrait qu'on retravaille les integrations en post-pro...

> 
> > Donc, la valeur de 'Intj'
> > sera *toujours* la meme, que tu l'affiches dans PRIMARY ou dans
> > SECONDARY... Autrement dit, ce que tu regardes dans 'i1.pos', ce n'est
> > pas le courant dans PRIMARY, mais la somme des courants dans DOMAIN_CND
> > (== PRIMARY + SECONDARY ?).
> 
> D'accord, il y avait cela mais il y a plus grave.
> Il y a aussi un probleme de Jacobien (le cas que j'etudie est axi).
> Je m'explique.
> L'equation de controle du courant est integree sur
> une section du conducteur, cad une SURFACE.
> Il se fait qu'en 2D cette surface ressemble etrangement
> a une partie du domaine d'etude, mais c'est une illusion.
> La section est une SURFACE, le domaine d'etude est un VOLUME.
> En axi, il doit y avoir un facteur `r' de difference entre les deux
> Jacobiens (de memoire).
> J'ai jete un coup d'oeil dans le code. Je trouve :
> 
>   case JACOBIAN_SUR :
> 
>     switch (Type_Element) {
>     case POINT :
>       *Type_Dimension = _1D ; return (void *)JacobianVol0D ;
>     case LINE        : case LINE_2 :
>       *Type_Dimension = _2D ; return (void *);
>     case TRIANGLE    : case TRIANGLE_2   :
>     case QUADRANGLE  : case QUADRANGLE_2 :
>       *Type_Dimension = _3D ; return (void *)JacobianSur3D ;
>     default:
>   }
> 
> On voit qu'il est impossible d'evaluer un jacobien de surface
> pour un element de forme TRIANGLE ou QUADRANGLE en 2D.
> L'erreur peut etre decrite ainsi:
> "Non, tous les elemens de surface en 2D ne sont pas
> associes a des element de type LINE !
> Les sections de conducteurs sont un contrexemple."
> 
> Tu vas me dire, ca c'est du travail pour toi et tu auras raison.
> Pour faire avancer le schmilblick, peux-tu me dire:
> . Comment disposer de la fonction `r' ou `x' dans les fonctions.
>   J'ai essaye $X, et ai obtenu des zeros partout.
> . Dans quel fichier je puis trouver les lignes de code qui
>   effectuent le changement de coordonnees de l'element de reference
>   vers l'element reel, tant lors de l'assemblage des matrices
> elementaires
>   que lors de l'evaluation des expressions integrees lors du
> post-processing.
> . Je dois avant tout verifie que mes calculs sont corrects (tant pis si
> le post
>   est errone pour l'instant) et donc etre assure que lors du changement
>   de coordonne d'une grandeur de type `Form1P', la composante 33 du
> jacobien
>   est bien prise en consideration.
>   Si cela est vrai, seul demeure un probleme pour l'evaluation explicite
>   du courant dans le post-processing.
> . Tu m'as jadis dit que vous utilisiez couramment la transformation axi
>   avec le carre du rayon (la mienne). Je ne trouve pas dans le code
>   le jacobien de Surface correspondant a cette transformation. Oubli ?
> 
> Tu peux toujours proposer a Dave de refaire quelques cas-test axi pour
> tirer
> tout ce

OK, tu as oublie de specifier le jacobien dans le PostProcessing :

{ Name I  ; Value { Term { [ {I} ] ; In DOMAIN_CND ; } } }

doit etre remplace par

{ Name I  ; Value { Term { [ {I} ] ; In DOMAIN_CND ; Jacobian JacVol ; }
} }

Pour le moment, en post, on considere tjs un jacobien standard. C'est en
effet dangereux qu'il n'y ait pas de warning...

Dis-moi si ca marche,

-- 
Christophe Geuzaine

Tel: +32-(0)4-366.37.10    mailto:Christophe.Geuzaine at ulg.ac.be
Fax: +32-(0)4-366.29.10    http://www.geuz.org