Loading [MathJax]/jax/output/CommonHTML/jax.js

Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:boundaries:flux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:user:elements:boundaries:flux [2024/12/06 15:51] – [Tm[2]ConvectionHeatFlux[2|3]DElement] vanhulledoc:user:elements:boundaries:flux [2024/12/09 11:40] (current) – [Tm[2]ConvectionHeatFlux[2|3]DElement] vanhulle
Line 1: Line 1:
 ====== Heat Source/Flux ====== ====== Heat Source/Flux ======
 +Heat source elements and heat flux boundary elements can be applied using special finite elements. As any finite element, their definition require an ''ElementProperty'' object and an ''Interaction'' (''HeatInteraction'') object. There are no ''Material'' objects associated to these elements.
  
-<note>TODO : Généralités, coordonnées locales </note>+''ElementProperty'' contains the type of element and all necessary information to compute the value of the heat flux/source at each Gauss point with a spatial distribution function. This spatial heat distribution function is expressed in a set of local coordinates {x, y, z}, which is handled by the ''HeatInteraction''.
  
-{{:doc:user:elements:boundaries:heat_localcoord.png?400|}}+{{ doc:user:elements:boundaries:heat_localcoord.png?400 |Coordonnées locales du la source de chaleur}}
  
 +Using this set of local coordinates allows to easily define a moving/rotating heat source/flux, which is particularly useful for some applications (//e.g.// additive manufacturing).
 ===== Materials=====      ===== Materials=====     
  
-Since flux interactions are boundary conditions interactions (''LoadingInteraction''), no materials must be associated to the element.+Since flux interactions are boundary conditions interactions, no materials must be associated to the element.
  
 ===== Element ===== ===== Element =====
Line 32: Line 34:
 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. 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 Heat Flux Distribution (=default) ==+== Constant Distribution (=default) ==
 Heat flux at each Gauss point is equal to ''HEATEL_VALUE'' [W/m2]. Heat flux at each Gauss point is equal to ''HEATEL_VALUE'' [W/m2].
   prp.put(HEATEL_TYPE, HEATEL_CONSTANT)   prp.put(HEATEL_TYPE, HEATEL_CONSTANT)
  
-== Rectangular Heat Flux Distribution ==+== Rectangular Distribution ==
 Heat flux at each Gauss point is equal to a uniform distribution of the total heat Qsrc within a rectangular surface centered on the local heat flux coordinates Heat flux at each Gauss point is equal to a uniform distribution of the total heat Qsrc within a rectangular surface centered on the local heat flux coordinates
 $$ $$
Line 44: Line 46:
   prp.put(HEATEL_TYPE, HEATEL_RECTANGULAR)   prp.put(HEATEL_TYPE, HEATEL_RECTANGULAR)
  
-== Ellipsoid Heat Flux Distribution ==+== Ellipsoid Distribution ==
 Heat flux at each Gauss point is equal to an ellipsoid Gaussian distribution function of the total heat Qsrc centered on the local heat flux coordinates [Goldak //et. al.// 1986] Heat flux at each Gauss point is equal to an ellipsoid Gaussian distribution function of the total heat Qsrc centered on the local heat flux coordinates [Goldak //et. al.// 1986]
 $$ $$
Line 52: Line 54:
   prp.put(HEATEL_TYPE, HEATEL_ELLIPSOID)   prp.put(HEATEL_TYPE, HEATEL_ELLIPSOID)
  
-== Double Ellipsoid Heat Flux Distribution ==+== 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] 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]
 $$ $$
Line 80: Line 82:
 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. 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 Heat Source Distribution (=default) ==+== Constant Distribution (=default) ==
 Heat source at each Gauss point is equal to ''HEATEL_VALUE'' [W/m3]. Heat source at each Gauss point is equal to ''HEATEL_VALUE'' [W/m3].
   prp.put(HEATEL_TYPE, HEATEL_CONSTANT)   prp.put(HEATEL_TYPE, HEATEL_CONSTANT)
  
-== Rectangular Heat Flux Distribution ==+== Rectangular Distribution ==
 Heat source at each Gauss point is equal to a uniform distribution of the total heat Qsrc within a box volume centered on the local heat flux coordinates Heat source at each Gauss point is equal to a uniform distribution of the total heat Qsrc within a box volume centered on the local heat flux coordinates
 $$ $$
Line 92: Line 94:
   prp.put(HEATEL_TYPE, HEATEL_RECTANGULAR)   prp.put(HEATEL_TYPE, HEATEL_RECTANGULAR)
  
-== Ellipsoid Heat Flux Distribution ==+== Ellipsoid Distribution ==
 Heat source at each Gauss point is equal to an ellipsoid Gaussian distribution function of the total heat Qsrc centered on the local heat flux coordinates [Goldak //et. al.// 1986] Heat source at each Gauss point is equal to an ellipsoid Gaussian distribution function of the total heat Qsrc centered on the local heat flux coordinates [Goldak //et. al.// 1986]
 $$ $$
Line 100: Line 102:
   prp.put(HEATEL_TYPE, HEATEL_ELLIPSOID)   prp.put(HEATEL_TYPE, HEATEL_ELLIPSOID)
  
-== Double Ellipsoid Heat Flux Distribution ==+== 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] 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]
 $$ $$
Line 124: Line 126:
  
 ==== Tm[2]ConvectionHeatFlux[2|3]DElement ==== ==== Tm[2]ConvectionHeatFlux[2|3]DElement ====
-<note important> Only for Metafor version >= 3545 </note>+<note important> **Metafor version >= 3545** </note>
 === Description === === 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).+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.
  
-<note>TODO Ajouter équations de flux </note>+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 Ts and fluid temperature Tf (''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 f[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 kx and ky 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 kx and ky 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 kx and ky 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 (x0), rear ($x'<0)andy'$ 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 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 ki=1
 + 
 +{{ doc:user:elements:boundaries:heat_GaussLogNorm.png?400 |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 === === Parameters ===
Line 140: Line 212:
 | Amplitude of the convection coefficient A                              ''CONV_COEF''  |    ''TO/TM''        | | Amplitude of the convection coefficient A                              ''CONV_COEF''  |    ''TO/TM''        |
 | Concentration factor (kx                   |   ''CONVHEATEL_KX''              | | Concentration factor (kx                   |   ''CONVHEATEL_KX''              |
-Semi-axis Length (ky                      ''CONVHEATEL_KY''        -       | +Concentration factor (ky                      ''CONVHEATEL_KY''        -       | 
-Semi-axis Length (kxr                    ''CONVHEATEL_KXR''              |+Concentration factor (kxr                    ''CONVHEATEL_KXR''              |
 | Number of integration points                  |   ''NIP''        -       | | Number of integration points                  |   ''NIP''        -       |
 | Material Stiffness  \\ (STIFF_ANALYTIC - STIFF_NUMERIC) \\ only if element Stiffness == STIFF_ANALYTIC | ''MATERIALSTIFFMETHOD''  |      -       | | Material Stiffness  \\ (STIFF_ANALYTIC - STIFF_NUMERIC) \\ only if element Stiffness == STIFF_ANALYTIC | ''MATERIALSTIFFMETHOD''  |      -       |
  
 ===== Interaction ===== ===== Interaction =====
-<note>TODO : Passage à HeatInteraction </note> 
- 
 The interaction is defined as: The interaction is defined as:
  
-  load = LoadingInteraction(no)+  load = HeatInteraction(no)
   load.push(gObject1)   load.push(gObject1)
   load.push(gObject2)   load.push(gObject2)
   ...   ...
 +  load.setAxes(Ox, Oz)
 +  load.useRescale(bool)
   load.addProperty(prp)   load.addProperty(prp)
   interactionset.add(load)   interactionset.add(load)
  
 where where
- 
  
 | ''no''       | number of the ''Interaction''  | ''no''       | number of the ''Interaction'' 
 | ''gObject1'', ''gObject2''  | mesh geometric entity where the boundary conditions are applied  | ''gObject1'', ''gObject2''  | mesh geometric entity where the boundary conditions are applied 
 | ''prp''      | [[doc:user:elements:general:def_element_properties|Properties]] of [[#Element|boundary condition elements]] to generate | | ''prp''      | [[doc:user:elements:general:def_element_properties|Properties]] of [[#Element|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'')\\ [[doc:user:conditions:displacements]] and/or [[doc:user:conditions: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.1733496701.txt.gz · Last modified: 2024/12/06 15:51 by vanhulle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki