Scaling source term

Consider a heat source defined as boundary in following mesh:

Mesh
The “dent” in the right side of the mesh is a 2D, rectangular source

With height alongside Y-axis defined as $h=8$ meters and width alongside X-axis as $r=0.095$ meters. Since the boundary parallel to Y-axis is axially symmetrical, the two dimensional rectangle will turn into a three dimensional cylinder after the mesh has been rotated by $360°$ with Y-axis boundary as rotation axis.

The source term has to take this into account. Therefore its power has to be scaled - divided by the surface on which it will be delivered to the system.

Following this example. The surface of the cylinder is defined as follows:

$$A=2\pi r(h+r)$$

which will result in following surface:

$$A = 2\pi \cdot 0.095 \cdot (8 + 0.095) = 4.83$$

in $m^2$.

Let’s assume that the heat supply is defined as 900 W. Than we need to scale this value by the surface obtained from the previous equation:

$$S_{scaled}=900/4.83=186.34$$

and this is the value that has to be provided in the project file.

In this example the heat source is introduced as Neumann boundary condition at part of the mesh. First, we can define a parameter called “heater” in the parameters block:

<parameter>
    <name>heater</name>
    <!--values>900/(2*pi*0.095*(0.095+8)</values-->
    <!--values>186.34</values-->
    <type>Constant</type>
    <value>186.34</value>
</parameter>

Now we can refer to this value in the process variables block:

<process_variable>
    <name>temperature</name>
    <components>1</components>
    <order>1</order>
    <initial_condition>293.15</initial_condition>
    <boundary_conditions>
        <boundary_condition>
            <mesh>Mesh_Boundary</mesh>
            <type>Dirichlet</type>
            <component>0</component>
            <parameter>293.15</parameter>
        </boundary_condition>
        <boundary_condition>
            <mesh>Mesh_Heat_Source</mesh>
            <type>Neumann</type>
            <component>0</component>
            <parameter>heater</parameter>
        </boundary_condition>
    </boundary_conditions>
</process_variable>

Notice how different type of boundary conditions are used for the heat source and rest of the boundary. More details on boundary conditions can be found here.


This article was written by Feliks Kiszkurno. If you are missing something or you find an error please let us know.
Generated with Hugo 0.122.0 in CI job 429466 | Last revision: February 26, 2024
Commit: [T/GL/OctTree] Use getPointsInRange() instead of addPoint() be091f3  | Edit this page on