bug post-processing dans MagDyn_t_av_2D?

trophime christophe trophime at labs.polycnrs-gre.fr
Wed Mar 7 09:51:30 CET 2001


Christophe Geuzaine wrote:
> 
> trophime christophe wrote:
> >
> > Je continue mes petits tests avec cette fois les formulations
> > magnetodynamiques
> > du manuel utilisateur. Il me semble qu'il manque un terme dans la
> > "seconde equation",
> > quelquechose du genre :
> >
> >         Galerkin { [ sigma[] * (Velocity[] *^ Dof{d a}) , {ur} ] ; In
> > DomainC_Mag ;
> >                    Jacobian Vol ; Integration CurlCurl ; }
> >
> > puisque il y a le terme Velocity \times \curl a dans la "premiere
> > equation".
> 
> Non, non. Essaie de reetablir la formulation.
> 
> > Et du coup il faut rakouter un vecteur Velocity dans les definitions des
> > fonctions dans CoreMassive.pro. Je comprends d'ailleurs pas pourquoi le
> > programme
> > ne dit pas que cette fonction manque dans l'exemple original.
> 
> Parce que la fonction est declaree par "DefineFunction[Velocity]" au
> debut de la formulation. Le role de ce DefineFunction est de pouvoir
> ecrire des formulations de maniere generale (avec toute une serie de
> termes qui peuvent etre inutiles pour certaines applications). Jette par
> example un oeil a l'explication de la section 2.2 (note 2) ou 3.1.
> 
> >
> > J'ai essaye de fixer le potentiel electrique (enfin \grad U si j'ai bien
> > compris).
> > Dans ce cas la resolution s'acheve pour un residu qui n'est pas en deca
> > du critere
> > d'arret fixe dans le SOLVER.PAR (valeur par defaut 1.e-8) :
> >
> >   65  8.5403044e-07
> >   66  8.5374479e-07
> >   67  8.4690829e-07
> >   68  6.9090031e-07
> > Solver    : 68 Iterations / Residual: 6.909e-07
> >
> > Je me demande si c'est normal.
> 
> Oui. Le critere d'arret est relatif (i.e. la convergence est calculee
> par rapport au premier residu).
> 
> >
> > Enfin si je veux faire de l'instationnaire et non plus du "Fourier"
> > comme
> > dans l'exemple comment je fais pour par exemple imposer U(t). J'ai
> > simplement essaye
> > d'introduire une fonction dependant du temps :
> >
> >     Time_Fct_Ramp[] = ($Time < Tau) ? $Time : Tau;
> >
> > et apres d'imposer dans ce cas le courant :
> >
> >     { Name Current_2D ;
> >       Case {
> >         { Region Ind ; Value Val_I_ * Time_Fct_Ramp[]; }
> >       }
> >     }
> 
> Le probleme vient du fait que tu introduis la variation temporelle dans
> la valeur de la contrainte. Il faut mettre la partie qui depend du temps
> (qui sera reevaluee a chaque pas de temps) dans le champ TimeFunction
> (cf. section 3.3, note 4). La raison en est que seule cette partie sera
> evaluee a chaque pas de temps, et multipliera la valeur donnee apres le
> champ Value.
> 

... ce qui prouve que j'ai pas encore bien lu la doc. Justement je
trouve
que la lecture en est un peu ardu de prime abord. Je trouverai bien de
mettre
une exemple complet construit pas a pas qui illustre un maximum de
choses ou
alors plus d'exemples dans les demos. Une autre
idee serait peut-etre de commencer par le sacro-saint exemple du
laplacien des le
debut et d'examiner le contenu du fichier associe pour donner une idee
de comment
les choses sont mises en place plutot que "d'attaquer" d'emblee avec un
descriptif
des concepts. Mais de tels exemples existent certainement deja dans les
papiers
sur getdp?

Desole de t'importuner encore mais je crois que j'ai trouve un petit
bug.
Maintenant ca marche bien pour la variation U(t) mais au niveau du
post-processing
quand je lance :

getdp CoreMassive_t -msh core.msh [-solve MagDyn_t_av_2D] -pos Map_a

Voila ce que j'obtiens

Loading   : Problem definition 'CoreMassive_t.pro'
Loading   : Problem definition 'Jacobian_Lib.pro'
Loading   : Problem definition 'Integration_Lib.pro'
Loading   : Problem definition 'MagDyn_av_2D.pro'
Info      : Selected Resolution 'MagDyn_t_av_2D'
Loading   : Geometric data 'core.msh'
Info      : System 'Sys_Mag' : Real
P r e - P r o c e s s i n g . . .
Loading   : Pre-Processing data 'CoreMassive_t.pre'
Resources : cpu 0.250000 s / mem 0 kb
E n d   P r e - P r o c e s s i n g
P o s t - P r o c e s s i n g . . .
Loading   : Processing data 'CoreMassive_t.res'
Info      : Selected PostProcessing 'MagDyn_t_av_2D'
Info      : Selected System 'Sys_Mag'
Info      : Selected Mesh 'core.msh'
Operation : PostOperation 1/3 
          > 'Core_m_a.pos'
Operation : PostOperation 2/3 
          > 'Core_m_j.pos'
Error     : Segmentation violation (invalid memory reference)
            ------------------------------------------------------
            You have discovered a bug in GetDP. You may e-mail the
            context in which it occurred to one of the authors:
            type 'getdp -info' to get feedback information


Il ne veut pas me generer de sortie pour la grandeur jz :

    Print[ jz, OnElementsOf DomainC_Mag, File "Core_m_j.pos"] ;

Getdp -info:

Version          : 0.79
Operating System : Linux 2.2.16-3
Build Date       : Mon Mar  5 13:08:56 CET 2001
Build Host       : elap21.montefiore.ulg.ac.be
Packager         : geuzaine
Solver           : Default (real arithmetic, single precision
preconditioning)
E-Mail           : Patrick.Dular at ulg.ac.be,
Christophe.Geuzaine at ulg.ac.be
URL              : http://www.geuz.org/getdp/


Merci et bonne journee
Ch. Trophime