OneDimensionalHeatStack

Use 1D Heat Equation to compute boundary conditions

Problem Description

The semi-cylindrical pipe contains water at ambient temperature and is surrounded by a hot pipe liner composed of two concentric layers made of different materials and initialized at different temperatures. The inner liner is titanium, and the outer liner is copper. (See Figure 1 (Left)) The simulation models the heating process of the fluid as it absorbs heat from the surrounding hot pipe. Typically, such models require temperature calculations throughout the entire domain, including within the thin liner regions. However, explicitly resolving the volume of these thin layers can be computationally expensive and unnecessary when their internal temperature gradients can be captured using a one-dimensional stack approach. Therefore, it is preferable to simulate the system as a single-phase problem with stack layers. To achieve this, only the fluid is simulated, with the temperature boundary values obtained by solving a HeatEquation1D at each boundary point. HeatEquation1D is an implicit temperature solver that models the pipe liners as a one-dimensional stack of discrete points normal to the fluid boundary. This stack, representing the liner materials, is referred to as a HeatStack1D. The figure below illustrates the initial conditions of the problem with multiple materials. In the example, the HeatStack1D replaces the hot pipe of different materials. Here should be a picture
Figure 1: Initial temperature distribution in a multi-phase 3D setup (left) vs single-phase fluid with the HeatStack1D approach (right)

Simulation Setup in MESHFREE

The USER_common_variables setup for this example allows the user to choose between multi-phase 3D or the HeatStack1D computation through the ALIAS following:
"TypeOfRun" = "1D" #"1D" or "3D"
For the multi-phase model, the parameter PHASE_distinction must be set to 'YES' in the common_variables file.

Refinement Settings

Since the HeatStack1D only affects the boundary point values, the computation can be accelerated by using adaptive refinement, i.e. fine close to the boundary and coarse in the rest of the fluid. The following ALIAS in USER_common_variables allows to select different refinement settings:
"PCRefinement" = "ADTV" #"CONS" or "ADTV"
"CONS" enables constant refinement and "ADTV" enables adaptive refinement of the fluid domain. The adaptive refinement is done by smoothly varying (See ADTV )the geometry dependent smoothing length defined below:
begin_equation{$geometry_dependent_h$} if (binA("fluid")>0)*(Y%ind_dtb%<2*&Hmin&) :: &Hmin& else :: &Hmax& endif end_equation
The refinement of each HeatStack1D, namely the number of stack points per boundary point, is controlled by the NB_POINTS_BC_HEAT_EQUATION_1D in the common_variables file. The upper limit is 80.

Boundary Conditions with Heat Stack

HeatStack1D provides an option to impose the boundary conditions on the bulk using %HEAT_EQ_1D_BC%, see HeatEquation1D.
BC_T($fluid$) = (%BND_ROBIN%, &htc_in&, [Yopp(%ind_T%)], 0.0, %HEAT_EQ_1D_BC% ) # BC_T($xyz$) = (%BND_ROBIN%, alpha, T0, inertialThickness), i.e. CAUCHY: lambda*dT/dn = alpha*(T-T0)
The HeatEquation1D, with the two liner layers as described, is solved with the following material properties:
HEAT_EQ_1D($fluid$,%ind_T%) = (equn{$Liner_Thickness$}, equn{$Liner_EndInterval_1$}, &TEMP_Ti&, equn{$Liner_EndInterval_2$}, &TEMP_Cu&, &Tamb&) HEAT_EQ_1D($fluid$,%ind_LAM%) = (equn{$Liner_Thickness$}, equn{$Liner_EndInterval_1$}, &LAM_Ti&, equn{$Liner_EndInterval_2$}, &LAM_Cu&) HEAT_EQ_1D($fluid$,%ind_r%) = (equn{$Liner_Thickness$}, equn{$Liner_EndInterval_1$}, &RHO_Ti&, equn{$Liner_EndInterval_2$}, &RHO_Cu&) HEAT_EQ_1D($fluid$,%ind_CV%) = (equn{$Liner_Thickness$}, equn{$Liner_EndInterval_1$}, &CV_Ti&, equn{$Liner_EndInterval_2$}, &CV_Cu&)
Here %ind_T%, %ind_LAM%, %ind_r%, %ind_CV% are the temperature of the liners, conductivity of the liner materials, density of the liner materials, and specific heat capacity of the liner materials respectively. &xxx_Ti& refers to qauntities for the Titanium liner and &xxx_Cu& refers to qantities for the Copper liner. NOTE: MESHFREE does not support negative values in the indices %ind_T%, %ind_LAM%, %ind_r%, %ind_CV% . Such values will result in a termination with an error message. The heat transfer coefficients of the HeatEquation1D must also be defined as follows:
HEAT_EQ_1D_TRANSFER_COEFF_INTERNAL($fluid$) = [&htc_in&] HEAT_EQ_1D_TRANSFER_COEFF_EXTERNAL($fluid$) = [&htc_out&]
Here, HEAT_EQ_1D_TRANSFER_COEFF_INTERNAL is the heat transfer coefficient from HeatStack1D to the fluid and HEAT_EQ_1D_TRANSFER_COEFF_EXTERNAL is the heat transfer coefficient from the HeatStack1D to the outside, for instance ambient temperature.

Additional Parameters and Performance Monitoring

The problem is primarily conceptualized as a cooling problem, so if the ambient temperature is higher than the liner and fluid temperatures, a warning may be triggered. This can be resolved by changing HEAT_EQ_1D_lower_limit in the common_variables file. To ensure numerical stability of the scheme, the fluid and liner temperatures are restricted to not being significantly larger than the ambient temperature. This ratio is controlled by HEAT_EQ_1D_upper_limit variable in the common_variables file. The linear solver for the HeatEquation1D can be adapted by LINEQN_solver_HeatStack1D variable in the common_variables file. For performance monitoring, the HeatEquation1D solver has its own timer called ADMIN_TIME_INTEG.FLIQUID.TEMPERATURE.HeatStack1D, which can be viewed in the TIMECHECK file at TIMECHECK_Level = 4.

Observations and Perfomance Monitoring

The average temperature of the fluid bulk and the average temperature of the boundary of the fluid domain are used to examine the performance and convergence behaviour of the simulation, when certain parameters are varied. The following observations are noted: The average temperature of the fluid bulk is calculated using the following INTEGRATION statement:
INTEGRATION($INT_TEMP_AV_FLUID$) = (%AVERAGE_INT%, [Y%ind_T%], $fluid$, %INTEGRATION_Header%, "Average Fluid Temperature")
  • The influence of the number of HeatStack1D points on the average temperature of the fluid is stronger than the influence of the refinement of the fluid domain.
  • For thicker boundary liners, the number of HeatStack1D points causes large variations in the average temperatures. In such cases a 3D-modelling approach is more suitable.
  • For modest variations in smoothing length (ratio of Hmax/Hmin < 3), the effect of adaptive refinement on the average temperature field is negligible.
  • The computational cost of the HeatStack1D (FLIQUID.TEMPERATURE.HeatStack1D) is significantly smaller compared to the FLIQUID.TEMPERATURE solver, thus making it a practical approach for modeling thin liners.
Here should be a picture
Figure 2: Average fluid bulk temperatures for different number of HeatStack1D points