With the pressure equation handled, we turn to the heat conduction equation:

$$$$C \frac{\partial T}{\partial t} - \nabla \cdot k \nabla T = 0$$$$

Steady Heat Conduction (5a)

  • Let's initially exclude the time-dependent term and focus on the steady heat conduction equation, given by: $$$$-\nabla \cdot k \nabla T = 0$$$$
  • We are left with another Diffusion-type term which depends on the thermal conductivity, $$$k$$$. This term is implemented in the MOOSE heat_conduction module as HeatConductionKernel.
  • This Kernel is now used in conjunction with a GenericConstantMaterial to perform a steady state heat conduction solve (with $$$T=350$$$ at the inlet and $$$T=300$$$ at the outlet).
  • GernericConstantMaterial is a simple way to define constant material properties.
  • Two input parameters are provided using the usual "list" syntax:
prop_names  = 'conductivity density'
prop_values = '0.01         200'

Steady Heat Conduction Code




Transient Heat Conduction (5b)

  • Now, add back in the time derivative to do a Transient heat conduction calculation: $$$$C \frac{\partial T}{\partial t} - \nabla \cdot k \nabla T = 0$$$$
  • This term already exists in the HeatConduction module as HeatConductionTimeDerivative.
  • We therefore need only update the input file to run the transient case.

MOOSE Time Derivative

MOOSE Executioners

MOOSE TimeSteppers

Transient Heat Conduction Code



Outflow BoundaryCondition (5c)

  • The flow is assumed to exit the pipe into a large tank.
  • This is modeled with the "No BC" boundary condition of Griffiths.
  • In this BC, the the boundary term, $$$-\left < k \nabla T \cdot \mathbf{n}, \psi_i \right >$$$, is computed implicitly rather than being replaced with a known flux, as is done in a NeumannBC.

MOOSE BoundaryConditions

Output BoundaryCondition Code




Create a Test

  • Generate a tests that uses HeatConductionOutflow by mimicking the problem above but limiting the mesh size and the number of timesteps.