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 16:51] – [Heat Source/Flux] vanhulledoc:user:elements:boundaries:flux [2026/07/29 20:13] (current) – [RectangularHeatFluxMaterial] papeleux
Line 1: Line 1:
-====== Heat Source/Flux ====== +====== Heat Flux Material ======
-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.+
  
-''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 functionThis spatial heat distribution function is expressed in a set of local coordinates {$x'$, $y'$, $z'$}, which is handled by the ''HeatInteraction''.+<note important> 
 +This Documentation refers to Metafor version >= 3593. 
 +for more informations on changes see [[https://gitlab.uliege.be/am-dept/MN2L/oo_meta/-/merge_requests/167|MR !167]] for technical informations)
  
- {{:doc:user:elements:boundaries:heat_localcoord.png?400 |}}+for a Metafor version < 3593, please refers to this [[flux_pre3593|page]]. 
 +</note>
  
-Using this set of local coordinates allows to easily define moving/rotating heat source/flux, which is particularly useful for some applications (//e.g.// additive manufacturing). +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.
-===== Materials=====     +
  
-Since flux interactions are boundary conditions interactionsno materials must be associated to the element.+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 XY 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.
  
-===== Element ===== 
  
-Therefore, the first step consist in defining an ''[[doc:user:elements:general:def_element_properties|ElementProperties]]'', as+{{ doc:user:elements:boundaries:heat_localcoord.png?400 |Coordonnées locales du la source de chaleur}}
  
-  prp = ElementProperties(typeEl) +The distribution is following the movement of the Axis (translation/rotation), which is particularly useful for some applications (//e.g.// additive manufacturing).
-  prp.put(param1value1) +
-  prp.depend(param1, fct1, Lock1)) #optional +
-  ...+
  
-where 
-|''typeEl'' | desired element (for example ''Tm[2]HeatFlux[2|3]DElement'')| 
-|''param1''| name of the property associated to the element (for example ''HEATEL_VALUE'')| 
-|''value1''| value of the corresponding property | 
-|''fct1''| function which characterizes the dependency of the property (optional: no fct if no dependency) | 
-|''Lock1''| [[doc:user:general:locks|Lock]] which defines the dependency variable of the property (compulsory if there is a dependency) | 
-  ... 
  
-==== Tm[2]HeatFlux[2|3]DElement ==== +===== Material =====
-=== 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 Heat Flux Distribution (=default) == +Therefore, the first step consist in defining an ''[[doc:user:elements:general:materials|MaterialProperties]]''as
-Heat flux at each Gauss point is equal to ''HEATEL_VALUE'' [W/m$^2$]+
-  prp.put(HEATEL_TYPEHEATEL_CONSTANT)+
  
-== Rectangular Heat Flux Distribution == +  mat materset.define(no, matType ) 
-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 +  mat.put(param1value1) 
-$$ +  mat.depend(param1fct1, Lock1)#optional
-  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_TYPEHEATEL_RECTANGULAR)+
  
-== Ellipsoid Heat Flux Distribution == +where 
-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] +param1 name of the property associated to the element (for example RAY_EMISSIVITY 
-$$ +value1 value of the corresponding property 
-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} +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
-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 Heat Flux 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 ==== +==== UniformHeatFluxMaterial  ====
-=== 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.+The heat flux is directly given by its value given in the Material Parameters $flux = Q$  
 +with :  
 +  * $Q$ : 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.
  
-== Constant Heat Source Distribution (=default) == +=== Parameters ==
-Heat source at each Gauss point is equal to ''HEATEL_VALUE'' [W/m$^3$]. +^   Name                                          ^     Description        Dependency ^ 
-  prp.put(HEATEL_TYPE, HEATEL_CONSTANT)+''HEATFLUX_VALUE'' | Value of the heatFlux |  TM / TO / TX / TY / TZ |
  
-== Rectangular Heat Flux 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 Heat Flux 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 Heat Flux Distribution == +==== RectangularHeatFluxMaterial  ==== 
-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 //etal.// 1986] + 
-$$ +The heat flux is given by its value given in the Material Parameters $flux Q / volif inside a rectangular box (2D or 3D) and $flux = 0$  outside the box
-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 + 
-$$ +with :  
-$+  * $Q: Heat Flux (boundary : W/m² Source : W/m³) 
-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'<+  $vol: Volume of the box : $vol = c 2a 2b
-$+  
-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'$ directionand $f=\frac{ba}{a+a_r}$ is the balancing factor. +As the flux can depend on timesolid temperature, but also current position of the integration point, a distribution can be implemented through dependency function.
-  prp.put(HEATEL_TYPE, HEATEL_DOUBLE_ELLIPSOID)+
  
 === Parameters === === 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'' | dimension of the box in local Z' direction (only for Source Elements. In Boundary elements, c = 1.0) \\ Be Carefull , there are No test if you define C in Boundary element  |  -  |
 +| ''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  |  -  |
  
-^   Name                                          ^    Metafor Code      ^ Dependency +==== EllipsoidHeatFluxMaterial  ====
-| 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 ==== +The heat flux is given by an ellipsoidal distribution : 
-<note important> Only for Metafor version > 3544 </note> +
-=== 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).+
  
-<note>TODO : Ajouter équations de flux </note>+<note importantAdd Drawing </note> 
 + 
 +$flux = Q \frac{6 \sqrt{3}}{a b c \pi sqrt{\pi}} exp^{(-xpart-ypart-zpart)}$  
 + 
 +with :  
 +  * $Q$ : Heat Flux (boundary : W/m² - Source : W/m³).  
 +  * $a$ - $b$ - $c$ : Half diameter of the ellipsoid (related to local axis) 
 +  * $xpart = 3(\frac{x'}{a})^2$ : distribution parameter in first ellipsoid direction 
 +  * $ypart = 3(\frac{y'}{b})^2$ : distribution parameter in second ellipsoid direction 
 +  * $zpart = 3(\frac{z'}{c})^2$ : distribution parameter in third ellipsoid direction 
 +  
 +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 === === Parameters ===
 +^   Name                                          ^     Description        Dependency ^
 +| ''HEATFLUX_VALUE'' | Value of the heatFlux |  TM / TO / TX / TY / TZ |
 +| ''HEATFLUX_A'' | Ellipsoid Half dimension in the local X' direction  |  TM / TX / TY / TZ  |
 +| ''HEATFLUX_B'' | Ellipsoid Half dimension in the local Y' direction  |  TM / TX / TY / TZ  |
 +| ''HEATFLUX_C'' | Ellipsoid Half dimension in the local Z' direction (only for Source Elements = 2 in boundary element) \\ Be Carefull , there are No test if you define C in Boundary element  |  TM / TX / TY / TZ  |
 +| ''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  |  -  |
  
-^   Name                                          ^    Metafor Code      ^ Dependency +==== DoubleEllipsoidHeatFluxMaterial  ====
-| 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''              | +
-| Semi-axis Length ($k_y$)                       ''CONVHEATEL_KY''        -       | +
-| Semi-axis Length ($k_{xr}$)                     ''CONVHEATEL_KXR''              | +
-| Number of integration points                  |   ''NIP''        -       | +
-| Material Stiffness  \\ (STIFF_ANALYTIC - STIFF_NUMERIC) \\ only if element Stiffness == STIFF_ANALYTIC | ''MATERIALSTIFFMETHOD''  |      -       |+
  
-===== Interaction ===== +The heat flux is given by an ellipsoidal distribution wit upstream and downstream different size coefficient (inclined heat source according to first local axis)
-The interaction is defined as:+
  
-  load HeatInteraction(no+<note important> Add Drawing </note> 
-  load.push(gObject1+ 
-  load.push(gObject2+upstream ($x' >= 0$) :  
-  ... +  * $flux Q \frac{2a}{a+ar} \frac{6 \sqrt{3}}{a b c \pi sqrt{\pi}} exp^{(-xpart-ypart-zpart)}$  
-  load.setAxes(Ox, Oz+DownStream ($x' < 0$) :  
-  load.useRescale(bool+  * $flux = Q \frac{2ar}{a+ar} \frac{6 \sqrt{3}}{ar b c \pi sqrt{\pi}} exp^{(-xpartR-ypart-zpart)}$  
-  load.addProperty(prp+ 
-  interactionset.add(load)+ 
 +with :  
 +  * $Q$ : Heat Flux (boundary : W/m² - Source : W/m³) 
 +  * $a$ - $b$ - $c$ : Half diameter of the ellipsoid (related to local axis
 +  * $xpart = 3(\frac{x'}{a})^2$ : distribution parameter in first ellipsoid direction upstream 
 +  * $xpartR = 3(\frac{x'}{ar})^2$ : distribution parameter in first ellipsoid direction downstream 
 +  * $ypart = 3(\frac{y'}{b})^2$ : distribution parameter in second ellipsoid direction 
 +  * $zpart = 3(\frac{z'}{c})^2$ : distribution parameter in third ellipsoid direction 
 +  
 +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'' | Ellipsoid Half dimension in the local X' direction UPSTREAM |  TM / TX / TY / TZ  | 
 +| ''HEATFLUX_AR'' | Ellipsoid Half dimension in the local X' direction DOWNSTREAM |  TM / TX / TY / TZ  | 
 +| ''HEATFLUX_B'' | Ellipsoid Half dimension in the local Y' direction  |  TM / TX / TY / TZ  | 
 +| ''HEATFLUX_C'' | Ellipsoid Half dimension in the local Z' direction (only for Source Elements = 2 in boundary element\\ Be Carefull , there are No test if you define C in Boundary element  |  TM / TX / TY / TZ  | 
 +| ''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  |  -  |
  
-where 
  
-| ''no''       | number of the ''Interaction''  
-| ''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 | 
-| ''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.1733500279.txt.gz · Last modified: by vanhulle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki