Page 1 of 1

Surface Heater Boundary Condition [W/m²] in 3D

Posted: 14 Jul 2023, 13:00
by d.kojda
Dear forum users,

I am conducting tests on a simplified cylindrical/rod-shaped object (length l = 1 m, cross-sectional area A = 1 m², and thermal conductivity kappa = 1 W/mK) using the heat equation solver. The temperature at the bottom is fixed at 0 K, while the temperature at the top is set to 300 K.

I have an additional boundary parallel to the top and bottom surfaces where I want to define a heater or cooler with a specific power density in W/m². I'm not interested in setting a general heat flux boundary condition as it controls the overall flux through the object, rather than the incoming/outgoing flux.

While searching through the forum, I came across the idea of using 'temperature loads' as a boundary condition. (However, this approach is not documented in the ElmerModelsManual.pdf for the heat equation's boundary conditions section.) Here is an example of my working application:

Code: Select all

! center_core
Boundary Condition 3
  Target Boundaries(1) = 2
  Temperature Load = REAL -0.486381  !power/number of nodes
  center_bd = Logical True  !this is for masking scalars
End
This temperature load is specified in watts and appears to apply to all nodes. To achieve the desired results, I had to manually divide it by the number of nodes extracted from the boundary surface using gmsh.

However, I am using pyelmer with automated meshing based on several parameters, so manual extraction is not a viable solution.
I am considering implementing nodal statistics of the boundary to make it work, but I'm wondering if Elmer allows for setting a 'load condition' that takes into account the surface size.

Another approach would be use three cylinders, consisting of a very thin center part, and apply a body force. However, this solution does not align with what I was originally seeking.

Any guidance on this matter would be greatly appreciated.

Thank you.

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 14 Jul 2023, 14:28
by kevinarden
  • "I have an additional boundary parallel to the top and bottom surfaces where I want to define a heater or cooler with a specific power density in W/m². I'm not interested in setting a general heat flux boundary condition as it controls the overall flux through the object, rather than the incoming/outgoing flux."
I do not think that the heat flux BC controls the overall flux through the object, I think the the heat flux BC with a transfer coefficient of 1.0 and an external temperature defines a temperature load on the surface, and controls the incoming/outgoing flux. That is the essence of a boundary condition.

Controls of the body in the system has to come from body forces or material properties.

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 14 Jul 2023, 14:34
by Rich_B
Hello,

Posting your working model, including geometry and sif file with instructions on generating the mesh, will help you get more specific help.

Rich.

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 14 Jul 2023, 15:34
by raback
Hi

Neumann condition may be given by "Heat Flux" or "Temperature Load". The difference is that the first one is distributed [W/m^2] and associated to the continuous system while the latter is associated to the discrete matrix [W]. Neither of these controls the total flux but the local one. In the end both these end up to the r.h.s. of the linear system.

The "Varname Load" functionality is explained in the Elmer Solver Manual because it applies to all PDEs.

Any Real valued keyword can be divided by the representative area by using "-distribute" before the value. So this just scales the keyword with the area.

If you have a temperature at BC that is constant but unknown then there is the keyword "Varname Constant" or "Temperature Constant = Logical True" in this case. It sets additional linear constraints to the system. So this could be used in combination of Neumann conditions if you know that the bottom/top elements are at same.

-Peter

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 24 Jul 2023, 10:57
by d.kojda
Hi Peter,

I think the "-distribute" keyword is indeed what I'm looking for. However, it does not have the wished effect run in Version: 9.0 (Rev: Release, Compiled: 2022-08-02, Windows 10).

First, I post the files with the expected result.

I applied -250W/376 nodes = -0.66489361702 Tempearure Load on boundary 3.
The mesh is reduced to keep the 1 MB upload limit.
case.msh
The mesh.
(987.61 KiB) Downloaded 68 times
case.sif
The expected result with power/nodes.
(5.14 KiB) Downloaded 80 times
Result Loads (as expected):
BC1: -249.5933227813 W
BC2: 499.5933219538 W
BC3: -249.9999999815 W

Next, I apply the "-distribute" keyword, but with no effect. I get same results as without the "-distribute".
case_distribute.sif
Giving wrong results using "-distribute".
(5.12 KiB) Downloaded 70 times
Result Loads:
BC1: 18534.69535716 W
BC2: 75637.3290007 W
BC3: -94172.02428662 W

Another side question is about the flux close to the boundary 3 (e.g. by cutting along center axis, or line plot along axis 3). The ideal solution wohld have constant flux in each part and a discontinuity at the boundary. For the solver solution, I get the constant flux far from the boundary. Close to the boundary I have values higher and lower than the max/min expected flux. The amplitude of the wrong flux can be decreased with finer meshes, but the general behaviour remains.

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 24 Jul 2023, 11:41
by kevinarden
In mesh downloaded there appears to be 690 nodes on boundary 2?

Boundary Condition 3
Target Boundaries(1) = 2
Temperature Load = REAL -0.66489361702 !250W / 376 nodes
Temperature Constant = Logical True
center_bd = Logical True
End

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 24 Jul 2023, 12:54
by kevinarden
using;
Boundary Condition 3
Target Boundaries(1) = 2
Heat Flux = Real -250
Temperature Constant = Logical True
center_bd = Logical True
End
Results in;
BC1: -249.5933227813 W
BC2: 499.5933219538 W
BC3: -249.9999999815 W

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 24 Jul 2023, 12:56
by d.kojda
Dear kevinarden,

thank you for the question. The mesh has 376 Nodes on surface 2 as shown by the image.
Nodes.PNG
(73.48 KiB) Not downloaded yet
Same surface consist of 690 triangles.
Scaling with 376 is fine here and the solution as expected.

However, do you have a clue for the "-distribute" tag?

Regards

Danny

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 24 Jul 2023, 17:56
by kevinarden
You are right I counted elements not nodes, however I do not know anything about the -distribute flag.

Re: Surface Heater Boundary Condition [W/m²] in 3D

Posted: 26 Jul 2023, 11:17
by d.kojda
Dear kevinarden,

thank you for the solution with "Heat Flux = Real -250". First, I was thinking this works, as the energy through the object (-250 W) is the same as the leaving energy (-250 W).

Therefore, I set "Heat Flux = Real -500" to see the effect on the fluxes and the summed loads. Indeed, this behaves as a surface cooler removing 500 W with
BC1: -199.9419405992 W
BC2: 699.7096512383 W
BC3: -499.7677134548 W

I plotted the flux
ResultFlux-500.PNG
ResultFlux-500.PNG (101.13 KiB) Viewed 1064 times
with also shows that 500 W are removed.
But you see that the flux is the same as the summed load at z = 0.8.

I'm a bit puzzled why the heat flux through the object is the same as the cooling power. Maybe it appears by the construction of the problem. For me it seems this is the resaon why the Heat Flux setting does work here.

Generally one shout destinguish the "Heat Flux" through a boundary and the "distributed Temperature Load" discribing the energy removed at the boundary.

Peter could you please comment why the distributed keyword did not work in the send example.

Danny