Transient Heat Transfer
Summary
Solves a transient heat conduction problem with a boundary parameterized by a heat transfer coefficient that exchanges heat with a thermal reservoir.
Description
This problem solves the transient heat equation with strong form:
where , , , and , subject to the initial condition .
In this example, we solve this using the weak form
where
Example File
[Mesh]
type = MFEMMesh
file = gold/mug.e
dim = 3
[]
[Problem]
type = MFEMProblem
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = FIRST
[]
[]
[Variables]
[temperature]
type = MFEMVariable
fespace = H1FESpace
[]
[]
[Functions]
[reservoir_far_temperature]
type = ParsedFunction
expression = 0.5
[]
[heat_transfer_coefficient]
type = ParsedFunction
expression = 5.0
[]
[]
[Kernels]
[diff]
type = MFEMDiffusionKernel
variable = temperature
coefficient = thermal_conductivity
[]
[dT_dt]
type = MFEMTimeDerivativeMassKernel
variable = temperature
coefficient = volumetric_heat_capacity
[]
[]
[BCs]
[bottom]
type = MFEMScalarDirichletBC
variable = temperature
boundary = '1'
value = 1.0
[]
[top]
type = MFEMConvectiveHeatFluxBC
variable = temperature
boundary = '2'
T_infinity = reservoir_far_temperature
heat_transfer_coefficient = heat_transfer_coefficient
[]
[]
[Materials]
[Substance]
type = MFEMGenericConstantMaterial
prop_names = 'thermal_conductivity volumetric_heat_capacity'
prop_values = '1.0 1.0'
[]
[]
[Preconditioner]
[boomeramg]
type = MFEMHypreBoomerAMG
[]
[]
[Solver]
type = MFEMHypreGMRES
preconditioner = boomeramg
l_tol = 1e-16
l_max_its = 1000
[]
[Executioner]
type = MFEMTransient
device = cpu
dt = 2.0
start_time = 0.0
end_time = 6.0
[]
[Outputs]
[ParaViewDataCollection]
type = MFEMParaViewDataCollection
file_base = OutputData/HeatTransfer
vtk_format = ASCII
[]
[]
(test/tests/kernels/heattransfer.i)