Step 2: Conjugate Heat Transfer
Complete input file for this step: 02_core.i

Figure 1: Model diagram
In this step, we will add a heating block to our flow channel, set up heat source, and connect the solid block to the flow channel via conjugate heat transfer.
Parameters of the Heated Channel
We include the core parameters as named parameters to the top of the input file so they can be used in the components:
core_length = 1. # m
core_n_elems = 25
core_dia = '${units 2. cm -> m}'
core_pitch = '${units 8.7 cm -> m}'
A_core = '${fparse core_pitch^2 - 0.25 *pi * core_dia^2}'
P_wet_core = '${fparse 4*core_pitch + pi * core_dia}'
Dh_core = '${fparse 4 * A_core / P_wet_core}'
For total power used for heating the block, we prescribe a parameter called tot_power.
tot_power = 2000 # W
Solid Properties
To set up a heat conduction, we will need to define a solid material used in the block with heat conduction. To do that, we put the following block into a top-level SolidProperties block:
[SolidProperties]
[steel]
type = ThermalFunctionSolidProperties
rho = 8050
k = 45
cp = 466
[]
[]
where rho, k, and cp are density, thermal conductivity, and specific heat, respectively. The name steel is arbitrary and is used to refer to this material from other parts of the input file.
Heat Structure
A heat structure is a 2D or 3D component that is used for modeling heat conduction. In our setup, the heating block is a rod, so we use HeatStructureCylindrical for the model. The component takes the position parameter, which is the location in 3D space. The orientation parameter is the axial directional vector, length is the axial length, and n_elems is the number of elements in the axial direction.
The number of axial elements must match the number of elements in the flow channel.
In radial direction we define one block called block and assign our previously defined steel material to it. The number of radial element in this block will be 3.
[Components]
[core_hs]
type = HeatStructureCylindrical
position = '0 0 0'
orientation = '0 0 1'
length = ${core_length}
n_elems = ${core_n_elems}
names = 'block'
widths = '${fparse core_dia / 2.}'
solid_properties = 'steel'
solid_properties_T_ref = '300'
n_part_elems = 3
[]
[]
Heat Source
Our heating will be given by the specified total power parameter. For this, we need to include TotalPower component and link it with another component – HeatSourceFromTotalPower.
[Components]
[total_power]
type = TotalPower
power = ${tot_power}
[]
[]
[Components]
[core_heating]
type = HeatSourceFromTotalPower
hs = core_hs
regions = block
power = total_power
[]
[]
HeatSourceFromTotalPower needs to know which heat structure and which part it acts on, which is done via the hs and regions parameters. The link to the TotalPower component is created via power parameter which takes the name of the TotalPower component.
Heat Transfer
To exchange heat between a flow channel and heat structure, we use the HeatTransferFromHeatStructure1Phase component. We need to specify the flow_channel parameter which takes the name of the connected flow channel, hs parameter which is the name of the heat structure component, hs_side parameter which is the side of the heat structure and can be either inner or outer.
Lastly, we need to specify P_hf, which is the heated perimeter. The heat transfer coefficient Hw is calculated by the closure set.
[Components]
[core_ht]
type = HeatTransferFromHeatStructure1Phase
flow_channel = core_chan
hs = core_hs
hs_side = outer
P_hf = '${fparse pi * core_dia}'
[]
[]
This concludes the step of coupling a flow channel with a heat structure.