Issue in the Heat solver with "Heat Joule": minus values and inconsistent magnitude

Numerical methods and mathematical models of Elmer
Post Reply
ftrillaudp
Posts: 42
Joined: 23 May 2012, 05:26
Antispam: Yes

Issue in the Heat solver with "Heat Joule": minus values and inconsistent magnitude

Post by ftrillaudp »

Dear all,

I have an issue with the Heat Solver (HeatSolver) and the computation of the "Heat Joule", my results span down to minus values. The maximum value is twice as less as expected (benchmark against GetDP on the same mesh):

QElmer = 5.4e4 W/m3
Qgetdp = 1.06e5 W/m3

I am attaching the case.sif and the original *.geo from gmsh. To run in Elmerfem, it is required to set flag_Elmer in the induction.geo file (done by default).

Because of the difference in the Joule heating, the temperature differs quite a bit between solvers. I can provide in a subsequent post the *.pro file to run it with getdp.

Best,

Frederic
case.sif
case file
(4.48 KiB) Downloaded 37 times
induction.geo
gmsh file to generate the mesh to be converted by Elmergrid
(4.13 KiB) Downloaded 29 times
induction_data.geo
data file for the *.geo
(784 Bytes) Downloaded 24 times
raback
Site Admin
Posts: 4825
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Issue in the Heat solver with "Heat Joule": minus values and inconsistent magnitude

Post by raback »

Hi

There is some legacy practices and maybe some never ones that could be used instead.

I would probably use CalcFields to compute the elemental joule heating i.e. "Joule Heating e" (as you do). This kind of field could not be used in early days of Elmer since there could be no dependence on DG fields. Simple nodal field won't do it since joule heating needs to have jumps. You can also study this field and compare to other codes.

To have it as input for HeatSolver (or HeatSolverVec) I would say:

Code: Select all

Volumetric Heat Source = Equals "Joule Heating e"
This is very transparent. The original "Heat Source" is per unit mass but I think the volumetric one this is more handy. Basically the exactly same is done by HeatSolver -> ConvectiveDiffusiveUnisotropic -> Differentials::JouleHeat when "joule heat = True". So I don't really see anything wrong in your setup.

I could imagine that mapping joule heating to DG basis could introduce something strange if the case is extremely nonlinear. We have seen this with extreme B/H curves for other quantities. You cannot really see it when "VtuOutput" smooths things up with "Discontinuous Bodies" ("Discontinuous Galerkin" for VTU solver maintains all discontinuities).

We have implemented some regularizations for the elemental fields. You can try them out in CalcFields:

Code: Select all

Calculate Elemental Mode = Integer 2 ! values 1-4
These have the following effect:
1) Perform classical mass lumping while fitting
2) Perform total lumping -> same value at every node
3) Use corner points instead of Gaussian quadrature
4) Use center point only instead of Gaussian quadrature + total lumping

I would try out with "2" to see if this might be the problem.

-Peter
ftrillaudp
Posts: 42
Joined: 23 May 2012, 05:26
Antispam: Yes

Re: Issue in the Heat solver with "Heat Joule": minus values and inconsistent magnitude

Post by ftrillaudp »

Hi Peter,

I have done some quick tests adding your recommendation. The losses are not affected by the changes. I am adding the code in case that I have made a mistake adding the lines.

My case is linear and I did some tests to see if the a linear change in losses would provide a corresponding change in temperature. For GetDP, it is more or less the case but not with ElmerSolver. The Joule heat is 0.5*sig*omega*|A|^2, by changing sig (electrical conductivity) by a factor in steady state, I should find the factor in the new max output temperature (at the same spatial position). It is not the case for ElmerSolver. In the extreme case, by increasing the electrical conductivity of one of the material by two orders of magnitude leads to a lower maximum temperature, strange!

I have the feeling that there is a bug or some kind of error in the computation of the steady Joule Heat in the frequency domain case.

I am thinking trying to compute myself the losses to inject them as sources in the heat solver. How is possible to get in an UDF, the real and imaginary part of the magnetic vector potential?

Best and thanks for the help,

Frederic
case.sif
case file
(4.6 KiB) Downloaded 29 times
Post Reply