Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:boundaries:flux

This is an old revision of the document!


Heat Flux Material

This Documentation refers to Metafor version >= 3593. for more informations on changes see MR !167 for technical informations).

for a Metafor version < 3593, please refers to this page.

Heat Flux Materials are sources of heat that can be applied on boundary of a mesh (Tm(2)boundary2D(3D)Element) or on the mesh (Tm(2)boundary2D(3D)Element) according to the physic (or its model) of the heat source.

Excepted to the UniformHeatFluxMaterial, the flux is linked to a spatial distribution functions related to a set of local coordinates {$x'$, $y'$, $z'$}, which are handled by the X, Y and Z Axis defined in the Material. The local Axis are Line Objects that are defined in the CurveSet and referred in the material by their number.

Coordonnées locales du la source de chaleur

The distribution is following the movement of the Axis (translation/rotation), which is particularly useful for some applications (e.g. additive manufacturing).

Material

Therefore, the first step consist in defining an MaterialProperties, as

mat = materset.define(no, matType )
mat.put(param1, value1)
mat.depend(param1, fct1, Lock1)) #optional

where param1 name of the property associated to the element (for example RAY_EMISSIVITY value1 value of the corresponding property fct1 function which characterises the dependency of the property (optional: no fct if no dependency) Lock1 Lock which defines the dependency variable of the property (compulsory if there is a dependency)

UniformHeatFluxMaterial

The heat flux is directly given by its value given in the Material Parameters $flux = F$ with :

  • $F$ : Heat Flux (boundary : W/m² - Source : W/m³).

As the flux can depend on time, solid temperature, but also current position of the integration point, a distribution can be implemented through dependency function.

Parameters

Name Description Dependency
HEATFLUX_VALUE Value of the heatFlux TM / TO / TX / TY / TZ

RectangularHeatFluxMaterial

The heat flux is given by its value given in the Material Parameters $flux = F$ if inside a rectangular box (2D or 3D) and $flux = 0$ outside the box.

with :

  • $F$ : Heat Flux (boundary : W/m² - Source : W/m³).

As the flux can depend on time, solid temperature, but also current position of the integration point, a distribution can be implemented through dependency function.

Parameters

Name Description Dependency
HEATFLUX_VALUE Value of the heatFlux TM / TO / TX / TY / TZ
HEATFLUX_A dimension of the box in local X' direction -
HEATFLUX_B dimension of the box in local Y' direction -
HEATFLUX_C
No test

| - |

HEATFLUX_NUM_AX_X number of the Line defining the local X axis -
HEATFLUX_NUM_AX_Z number of the Line defining the local Z axis (optional) -
HEATFLUX_RESCALE option to enforce the rescaling of the heatFlux -

UniformHeatFluxMaterial

The heat flux is directly given by its value given in the Material Parameters $flux = F$ with :

  • $F$ : Heat Flux (boundary : W/m² - Source : W/m³)

Parameters

Name Description Dependency
HEATFLUX_VALUE Value of the heatFlux TM / TO / TX / TY / TZ

Description

Thermal heat flux element in 2/3D, first or second order (thermal field of second order), that can be created on “boundary” geometries (i.e. curves in 2D and sides in 3D).

There are currently 4 different heat flux distributions types that are implemented for this element. These can be selected by using the HEATEL_TYPE parameter when defining the element properties.

Constant Distribution (=default)

Heat flux at each Gauss point is equal to HEATEL_VALUE [W/m$^2$].

prp.put(HEATEL_TYPE, HEATEL_CONSTANT)
Rectangular Distribution

Heat flux at each Gauss point is equal to a uniform distribution of the total heat $Q_{src}$ within a rectangular surface centered on the local heat flux coordinates $$ q = \frac{Q_{src}}{4a b}~~~\text{if } x'\in [-a,~a],~~ y'\in [-b,~b], $$ where $a$ and $b$ are the half lengths of the rectangle in the $x'$ and $y'$ local coordinate directions respectively.

prp.put(HEATEL_TYPE, HEATEL_RECTANGULAR)
Ellipsoid Distribution

Heat flux at each Gauss point is equal to an ellipsoid Gaussian distribution function of the total heat $Q_{src}$ centered on the local heat flux coordinates [Goldak et. al. 1986] $$ q = \frac{Q_{src} 6\sqrt{3}}{ab \pi^\frac{3}{2}}~ e^{-3\left(\frac{x'}{a}\right)^2}~ e^{-3\left(\frac{y'}{b}\right)^2} $$ where $a$ and $b$ are the semi-axes lengths of the ellipsoid in the $x'$ and $y'$ directions respectively.

prp.put(HEATEL_TYPE, HEATEL_ELLIPSOID)
Double Ellipsoid Distribution

Modification of the ellipsoid Gaussian distribution function to account for a different distribution at the front ($x'>=0$) and at the rear ($x'<0$) of the heat flux [Goldak et. al. 1986] $$ q_f = f \frac{Q_{src} 6\sqrt{3}}{ab \pi^\frac{3}{2}}~ e^{-3\left(\frac{x'}{a}\right)^2}~ e^{-3\left(\frac{y'}{b}\right)^2}, ~~~~~~~~x'>=0 $$ $$ q_r = (1-f) \frac{Q_{src} 6\sqrt{3}}{a_rb \pi^\frac{3}{2}}~ e^{-3\left(\frac{x'}{a_r}\right)^2}~ e^{-3\left(\frac{y'}{b}\right)^2}, x'<0 $$ where $a$ and $a_r$ are the front and rear semi-axes lengths in the $x'$ directions, $b$ is the semi-axis length in the $y'$ direction, and $f=\frac{ba}{a+a_r}$ is the balancing factor.

prp.put(HEATEL_TYPE, HEATEL_DOUBLE_ELLIPSOID)

Parameters

Name Metafor Code Dependency
Type of surface distribution HEATEL_TYPE -
Total applied heat $Q_{src}$[W]
(heat per area for HEATEL_CONSTANT)
HEATEL_VALUE TO/TM
Semi-axis Length ($a$) HEATEL_A -
Semi-axis Length ($b$) HEATEL_B -
Semi-axis Length ($a_r$) HEATEL_AR -
Number of integration points NIP -
Material Stiffness
(STIFF_ANALYTIC - STIFF_NUMERIC)
only if element Stiffness == STIFF_ANALYTIC
MATERIALSTIFFMETHOD -

Tm[2]HeatSource[2|3]DElement

Description

Thermal heat source element in 2/3D, first or second order (thermal field of second order), that can be created on “volume” geometries (i.e. sides in 2D and volumes in 3D).

There are currently 4 different types of heat source distributions that are implemented for this element. These can be selected by using the HEATEL_TYPE parameter when defining the element properties.

Constant Distribution (=default)

Heat source at each Gauss point is equal to HEATEL_VALUE [W/m$^3$].

prp.put(HEATEL_TYPE, HEATEL_CONSTANT)
Rectangular Distribution

Heat source at each Gauss point is equal to a uniform distribution of the total heat $Q_{src}$ within a box volume centered on the local heat flux coordinates $$ q = \frac{Q_{src}}{8a b c}~~~\text{if } x'\in [-a,~a],~~ y'\in [-b,~b],~~ z'\in [-c,~c], $$ where $a$, $b$ and $c$ are the half lengths of the rectangle in the $x'$, $y'$ and $z'$ local coordinate directions respectively.

prp.put(HEATEL_TYPE, HEATEL_RECTANGULAR)
Ellipsoid Distribution

Heat source at each Gauss point is equal to an ellipsoid Gaussian distribution function of the total heat $Q_{src}$ centered on the local heat flux coordinates [Goldak et. al. 1986] $$ q = \frac{Q_{src} 12\sqrt{3}}{abc \pi^\frac{3}{2}}~ e^{-3\left(\frac{x'}{a}\right)^2}~ e^{-3\left(\frac{y'}{b}\right)^2}~ e^{-3\left(\frac{z'}{c}\right)^2} $$ where $a$, $b$ and $c$ are the semi-axes lengths of the ellipsoid in the $x'$, $y'$ and $z'$ directions respectively.

prp.put(HEATEL_TYPE, HEATEL_ELLIPSOID)
Double Ellipsoid Distribution

Modification of the ellipsoid Gaussian distribution function to account for a different distribution at the front ($x'>=0$) and at the rear ($x'<0$) of the heat flux [Goldak et. al. 1986] $$ q_f = f \frac{Q_{src} 12\sqrt{3}}{ab \pi^\frac{3}{2}}~ e^{-3\left(\frac{x'}{a}\right)^2}~ e^{-3\left(\frac{y'}{b}\right)^2}~ e^{-3\left(\frac{z'}{c}\right)^2}, ~~~~~~~~x'>=0 $$ $$ q_r = (1-f) \frac{Q_{src} 12\sqrt{3}}{a_rb \pi^\frac{3}{2}}~ e^{-3\left(\frac{x'}{a_r}\right)^2}~ e^{-3\left(\frac{y'}{b}\right)^2}~ e^{-3\left(\frac{z'}{c}\right)^2}, x'<0 $$ where $a$ and $a_r$ are the front and rear semi-axes lengths in the $x'$ directions, $b$ and $c$ are the semi-axes lengths in the $y'$ and $z'$ direction, and $f=\frac{ba}{a+a_r}$ is the balancing factor.

prp.put(HEATEL_TYPE, HEATEL_DOUBLE_ELLIPSOID)

Parameters

Name Metafor Code Dependency
Type of volume distribution HEATEL_TYPE -
Total applied heat $Q_{src}$[W]
(heat per volume $q$[W/m$^3$] for HEATEL_CONSTANT)
HEATEL_VALUE TO/TM
Semi-axis Length ($a$) HEATEL_A -
Semi-axis Length ($b$) HEATEL_B -
Semi-axis Length ($c$) HEATEL_C -
Semi-axis Length ($a_r$) HEATEL_AR -
Number of integration points NIP -
Material Stiffness
(STIFF_ANALYTIC - STIFF_NUMERIC)
only if element Stiffness == STIFF_ANALYTIC
MATERIALSTIFFMETHOD -

Tm[2]ConvectionHeatFlux[2|3]DElement

Metafor version >= 3545

Description

Thermal convection heat flux element in 2/3D, first or second order (thermal field of second order), that can be created on “boundary” geometries (i.e. curves in 2D and sides in 3D). These elements are particularly suited to model moving hot gas torches.

These elements are similar to Tm[2]HeatFlux[2|3]DElement except that heat flux is computed as a convection boundary $$ q = h(x',y')~(T_s - T_f), $$ with the surface temperature $T_s$ and fluid temperature $T_f$ (TEMP_FLUIDE). The convection coefficient $h$ is a space-dependent quantity (in the local coordinates) which writes $$ h(x',y')=A~\mathcal{f}(x',y'), $$ where $A$ is the amplitude of the convection coefficient (CONV_COEF) and $\mathcal{f}\in [0,~1]$ is a spatial distribution function which can be selected using the HEATEL_TYPE parameter.

Rectangular Distribution

Convection coefficient is equal to a constant value within a rectangular surface centered in the local coordinates axes and 0 outside the surface $$ h(x',y') =\begin{cases} A~~\text{if}~~~ x'\in [-k_x,~k_x] ~~ \text{and} ~~ y'\in [-k_y,~k_y],\\ 0~~~\text{else}. \end{cases} $$ where $k_x$ and $k_y$ are the half lengths of the rectangle in the $x'$ and $y'$ directions respectively.

 prp.put(HEATEL_TYPE, CONVHEATEL_RECTANGULAR)
Gaussian Distribution

Convection coefficient is distributed with a Gaussian distribution as defined by [Zacherl et. al. 2023] centered on the local coordinates $$ h(x',y') = A~e^{(-\left[ \frac{x'}{k_x} \right]^2 -\left[ \frac{y'}{k_y} \right]^2)}, $$ where $k_x$ and $k_y$ are concentration coefficients which define the slope of the curve in the $x'$ and $y'$ directions respectively.

 prp.put(HEATEL_TYPE, CONVHEATEL_GAUSSIAN)
Modified Log-Normal Distribution

Convection coefficient is distributed with a modified log-normal distribution as defined by [Zacherl et. al. 2023] centered on the local coordinates $$ h(x',y') = A~e^{(-[\text{ln}\left( \frac{|x'|}{k_x}+1 \right)]^2 -[\text{ln}\left( \frac{|y'|}{k_y}+1 \right)]^2)}, $$ where $k_x$ and $k_y$ are concentration coefficients which define the slope of the curve in the $x'$ and $y'$ directions respectively.

 prp.put(HEATEL_TYPE, CONVHEATEL_LOGNORM)
Combined Distribution

Allows to choose between a Gaussian or log-normal distribution in the front ($x' \geq 0$), rear ($x'<0$) and $y'$ directions. Convection coefficient is distributed as $$ h(x',y') =\begin{cases} A~\mathcal{f}_{xf}(x',k_x)~\mathcal{f}_{y}(y',k_y) ~~~~~ x' \geq 0\\ A~\mathcal{f}_{xr}(x',k_{xr})~\mathcal{f}_{y}(y',k_y) ~~~~ x' < 0. \end{cases} $$ where distribution function $\mathcal{f}$ is either a Gaussian distribution (CONVHEATEL_GAUSSIAN) $$ \mathcal{f_i} = e^{-\left[ \frac{i}{k_i} \right]^2}, $$ or a modified log-normal distribution (CONVHEATEL_LOGNORM) $$ \mathcal{f_i} = e^{-[\text{ln}\left( \frac{|i|}{k_i}+1 \right)]^2}. $$ Difference between these 2 distribution types is highlighted below for $k_i=1$.

Distribution Gaussienne v.s. Log-Normale avec k=1

Example:
Modelling of an inclined hot gas torch in Automated Fiber Placement process (AFP). Convection heat flux element is modelled using a modified log-normal distribution at the rear and Gaussian distributions at the front and along $y'$.

  # convection heat source (LogNorm - Gauss - Gauss)
  prpHeat = ElementProperties(TmConvectionHeatFlux3DElement)
  prpHeat.put(        HEATEL_TYPE,  CONVHEATEL_COMBINE)
  prpHeat.put(        TEMP_FLUIDE,          p['T_HGT'])
  prpHeat.put(          CONV_COEF,          p['HGT_A'])
  prpHeat.put( CONVHEATEL_TYPE_XF,  CONVHEATEL_LOGNORM) #front
  prpHeat.put(      CONVHEATEL_KX,         p['HGT_kf'])
  prpHeat.put( CONVHEATEL_TYPE_XR, CONVHEATEL_GAUSSIAN) #rear
  prpHeat.put(     CONVHEATEL_KXR,         p['HGT_kr'])
  prpHeat.put(  CONVHEATEL_TYPE_Y, CONVHEATEL_GAUSSIAN) #y
  prpHeat.put(      CONVHEATEL_KY,         p['HGT_ky'])

Parameters

Name Metafor Code Dependency
Type of surface distribution HEATEL_TYPE -
Distribution along $x'>=0$
(only for HEATEL_TYPE = CONVHEATEL_COMBINE)
CONVHEATEL_TYPE_XF -
Distribution along $x'<0$
(only for HEATEL_TYPE = CONVHEATEL_COMBINE)
CONVHEATEL_TYPE_XR -
Distribution along $y'$
(only for HEATEL_TYPE = CONVHEATEL_COMBINE)
CONVHEATEL_TYPE_Y -
Fluid temperature $T_f$ TEMP_FLUIDE TO/TM
Amplitude of the convection coefficient $A$ CONV_COEF TO/TM
Concentration factor ($k_x$) CONVHEATEL_KX -
Concentration factor ($k_y$) CONVHEATEL_KY -
Concentration factor ($k_{xr}$) CONVHEATEL_KXR -
Number of integration points NIP -
Material Stiffness
(STIFF_ANALYTIC - STIFF_NUMERIC)
only if element Stiffness == STIFF_ANALYTIC
MATERIALSTIFFMETHOD -

Interaction

The interaction is defined as:

load = HeatInteraction(no)
load.push(gObject1)
load.push(gObject2)
...
load.setAxes(Ox, Oz)
load.useRescale(bool)
load.addProperty(prp)
interactionset.add(load)

where

no number of the Interaction
gObject1, gObject2 mesh geometric entity where the boundary conditions are applied
prp Properties of boundary condition elements to generate
Ox, Oz Curve entities that define the local coordinates $x'$ and $z'$ for the heat distribution function (not necessary for HEATEL_CONSTANT)
Prescribed Displacements and/or Prescribed Rotations can be applied on these curves to obtain a moving heat source
useRescale(bool) Rescaling of the heat flux
= False (default): do nothing
= True: allows the rescaling of all heat source at each beginning of time-step to obtain the exact value of total applied HEATEL_VALUE
:!: not for HEATEL_CONSTANT and Tm[2]ConvectionHeatFlux[2|3]DElement
doc/user/elements/boundaries/flux.1785341773.txt.gz · Last modified: by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki