[Getdp] Complex -> time step coupling : cannot access to real part of field (bug ?)

Gilles Vogt vogtgilles at gmail.com
Wed Mar 25 16:03:59 CET 2015


I just noticed this email in the mailing list:
http://www.geuz.org/pipermail/getdp/2001/000231.html
However, using
      Galerkin { [ -sigma[]*SquNorm[Dt[{a}]+{ur}]  , {t} ];
      In Omega_c2; Integration CurlCurl; Jacobian Vol;  }
obviously does not work either since getdp returns the error "Missing
solution for time derivative computation" for my thermal problem.

I don't know if that should work with complex values though.

Best regards

--
Gilles VOGT

2015-03-20 15:49 GMT+01:00 Gilles Vogt <vogtgilles at gmail.com>:

> I did not find a clear solution, but using GmshRead is a good workaround
> for this problem. I solve the magnetic problem, post-process it, then load
> the ohmic losses map as volumetric power in the dynamic thermal simulation.
>
> However, the issue is not solved per se : I think it might be an issue for
> real magneto-thermal problems (where the permeability is a function of
> temperature).
>
> Best regards,
>
> --
> Gilles VOGT
> Ingénieur généraliste de l'École Centrale de Lille, docteur en génie
> électrique
> +33 (0)6 25 98 72 02
>
> 2015-03-20 11:53 GMT+01:00 Gilles Vogt <vogtgilles at gmail.com>:
>
>> Hi,
>>
>> I am still working on induction heating 2D coupled problems. My input
>> file is written at the end of this email. As you can see, I solve in
>> complex values the magnetic problem, and use the power from induced
>> currents as heating power.
>> The power is calculated from this code :
>> -sigma[]*((Re[{ur}]-Im[w*{a}])*(Re[{ur}]-Im[w*{a}]) +
>> (Im[{ur}]+Re[w*{a}])*(Im[{ur}]+Re[w*{a}]))
>> Where ur is the scalar electric potential, w=2*pi*f, a the magnetic
>> vector potential.
>> It outputs the correct value when post-processed inside a "NameOfFormulation
>> Magnetodynamics_av_2D" section. However, when post-processed inside a "NameOfFormulation
>> Thermics" section, it outputs only the power from imaginary currents.
>>
>> A full model is attached to this email. You can check that :
>> therm_OhmicL and therm_OhmicL2 give the same results
>> therm_qv gives different results (the formula is the same as
>> therm_OhmicL2 but within the coupled problem).
>>
>> I have been able to confirm that this problem also occurs while solving
>> the problem (the input power is only relative to the imaginary part of
>> currents), and not only in post-pro.
>>
>> My guess is : in the time-step model, real and imaginary part of the
>> complex fields are seen as t0 and t1 steps, and only t1 is considered.
>>
>> I hope someone can confirm the issue, or give me a workaround.
>>
>> Best regards,
>>
>>
>> Here is my .pro file :
>> 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[{d a}] * Dof{d a} , {d a} ]; In Domain_Mag;
>>                  Jacobian Vol; Integration CurlCurl; }
>>
>>       Galerkin { JacNL [ dhdb_NL[{d a}] * Dof{d a} , {d a} ] ;
>>                 In DomainNL ; Jacobian Vol ; Integration I1 ; }
>>
>>       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 { [ - 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; }
>>     }
>>   }
>>
>>
>>   { Name TheDyn; Type FemEquation;
>>     Quantity {
>>       { Name t; Type Local; NameOfSpace Hgrad_T; }
>>       { Name a ; Type Local ; NameOfSpace Hcurl_a_Mag_2D; }
>>       { Name ur; Type Local ; NameOfSpace Hregion_u_Mag_2D; }
>>     }
>>     Equation {
>>       Galerkin { [ lambda[] * Dof{d t} , {d t} ]; In Omega_c; Integration
>> CurlCurl; Jacobian Vol;  }
>>
>>       Galerkin { DtDof [ rho[]*c[] * Dof{t} , {t} ]; In Omega_c;
>> Integration CurlCurl; Jacobian Vol;  }
>>
>>       Galerkin { [ -sigma[]*((Re[{ur}]-Im[w*{a}])*(Re[{ur}]-Im[w*{a}]) +
>> (Im[{ur}]+Re[w*{a}])*(Im[{ur}]+Re[w*{a}]))  , {t} ];
>>       In Omega_c2; Integration CurlCurl; Jacobian Vol;  }
>>
>>       Galerkin { [ -qVol[]  , {t} ];
>>       In DomainS_Mag; Integration CurlCurl; Jacobian Vol;  }
>>
>>       Galerkin { [ hS[]*Dof{t} , {t} ] ;In BdExt; Jacobian Sur ;
>> Integration CurlCurl ; }
>>
>>       Galerkin { [ -hS[]*AmbT[] , {t} ] ; In BdExt ; Jacobian Sur ;
>> Integration CurlCurl ; }
>>     }
>>   }
>> }
>>
>> Resolution {
>>   { Name TheDyn;
>>     System {
>>       { Name T; NameOfFormulation TheDyn; }
>>       { Name B; NameOfFormulation Magnetodynamics_av_2D;
>>          Type ComplexValue; Frequency Freq;}
>>     }
>>     Operation {
>>       InitSolution[B];
>>       IterativeLoop[Nb_max_iter, stop_criterion,
>> relaxation_factor]{GenerateJac[B] ; SolveJac[B] ;}
>>       SaveSolution[B];
>>       InitSolution[T]; SaveSolution[T];
>>       TimeLoopTheta[time0t, time1t, dtimet, theta] {
>>     Generate[T]; Solve[T];
>>     SaveSolution[T];
>>     }
>>     }
>>     }
>>
>> }
>>
>> --
>> Gilles VOGT
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/getdp/attachments/20150325/c4cf153a/attachment.html>