Thermal model object
ThermalModel object contains information
about a heat transfer problem: the geometry, material properties, internal heat sources,
temperature on the boundaries, heat fluxes through the boundaries, mesh, and initial
ThermalModel object using
createpde with the first argument
AnalysisType — Type of thermal analysis
Type of thermal analysis, specified as
To change a thermal analysis type, assign a new type to
model.AnalysisType. Ensure that all other properties
of the model are consistent with the new analysis type.
Geometry — Geometry description
Geometry description, specified as
a 2-D geometry or
DiscreteGeometry for a 2-D or 3-D
MaterialProperties — Material properties within the domain
object containing material property assignments
Material properties within the domain, specified as an object containing the material property assignments.
HeatSources — Heat source within the domain or subdomain
object containing heat source assignments
Heat source within the domain or subdomain, specified as an object containing heat source assignments.
BoundaryConditions — Boundary conditions applied to the geometry
object containing boundary condition assignments
Boundary conditions applied to the geometry, specified as an object containing the boundary condition assignments.
InitialConditions — Initial temperature or initial guess
object containing the initial temperature assignments within the
Initial temperature or initial guess, specified as an object containing the initial temperature assignments within the geometric domain.
Mesh — Finite element mesh
Finite element mesh, specified as an
FEMesh object. For
details, see FEMesh Properties. You create the mesh by
StefanBoltzmannConstant — Constant of proportionality in Stefan-Boltzmann law governing radiation heat transfer
Constant of proportionality in Stefan-Boltzmann law governing radiation heat transfer, specified as a number. This value must be consistent with the units of the model. Values of the Stefan-Boltzmann constant in commonly used system of units are:
SI – 5.670367e-8 W/(m2·K4)
CGS – 5.6704e-5 erg/(cm2·s·K4)
US customary – 1.714e-9 BTU/(hr·ft2·R4)
SolverOptions — Algorithm options for PDE solvers
Algorithm options for the PDE solvers, specified as a PDESolverOptions Properties object. The
PDESolverOptions include absolute and
relative tolerances for internal ODE solvers, maximum solver iterations, and
|Create 2-D geometry from decomposed geometry matrix|
|Create 2-D or 3-D geometry from mesh|
|Import geometry from STL or STEP file|
|Assign thermal properties of a material for a thermal model|
|Specify internal heat source for a thermal model|
|Specify boundary conditions for a thermal model|
|Set initial conditions or initial guess for a thermal model|
|Create triangular or tetrahedral mesh|
|Solve structural analysis, heat transfer, or electromagnetic analysis problem|
Create and Populate Thermal Model
Create a transient thermal model container.
thermalmodel = createpde("thermal","transient")
thermalmodel = ThermalModel with properties: AnalysisType: "transient" Geometry:  MaterialProperties:  HeatSources:  StefanBoltzmannConstant:  BoundaryConditions:  InitialConditions:  Mesh:  SolverOptions: [1x1 pde.PDESolverOptions]
Create the geometry and include it in the model.
g = @squareg; geometryFromEdges(thermalmodel,g)
ans = AnalyticGeometry with properties: NumCells: 0 NumFaces: 1 NumEdges: 4 NumVertices: 4 Vertices: [4x2 double]
Assign material properties.
thermalProperties(thermalmodel,"ThermalConductivity",79.5,... "MassDensity",7850,... "SpecificHeat",450,... "Face",1)
ans = ThermalMaterialAssignment with properties: RegionType: 'face' RegionID: 1 ThermalConductivity: 79.5000 MassDensity: 7850 SpecificHeat: 450
Specify that the entire geometry generates heat at the rate of 25.
ans = HeatSourceAssignment with properties: RegionType: 'face' RegionID: 1 HeatSource: 25 Label: 
Apply insulated boundary conditions on three edges and the free convection boundary condition on the right edge.
thermalBC(thermalmodel,"Edge",[1,3,4],"HeatFlux",0); thermalBC(thermalmodel,"Edge",2,... "ConvectionCoefficient",5000,... "AmbientTemperature",25)
ans = ThermalBC with properties: RegionType: 'Edge' RegionID: 2 Temperature:  HeatFlux:  ConvectionCoefficient: 5000 Emissivity:  AmbientTemperature: 25 Vectorized: 'off' Label: 
Set the initial conditions: uniform room temperature across domain and higher temperature on the left edge.
ans = GeometricThermalICs with properties: RegionType: 'edge' RegionID: 4 InitialTemperature: 100
Specify the Stefan-Boltzmann constant.
thermalmodel.StefanBoltzmannConstant = 5.670367e-8;
Generate the mesh.
ans = FEMesh with properties: Nodes: [2x1541 double] Elements: [6x734 double] MaxElementSize: 0.1131 MinElementSize: 0.0566 MeshGradation: 1.5000 GeometricOrder: 'quadratic'
thermalmodel now contains the following properties.
thermalmodel = ThermalModel with properties: AnalysisType: "transient" Geometry: [1x1 AnalyticGeometry] MaterialProperties: [1x1 MaterialAssignmentRecords] HeatSources: [1x1 HeatSourceAssignmentRecords] StefanBoltzmannConstant: 5.6704e-08 BoundaryConditions: [1x1 ThermalBCRecords] InitialConditions: [1x1 ThermalICRecords] Mesh: [1x1 FEMesh] SolverOptions: [1x1 pde.PDESolverOptions]
Version HistoryIntroduced in R2017a
R2022a: Reduced-order modeling for thermal analysis
You can now approximate the dynamics of the original system with a smaller system
while retaining most of the dynamic characteristics. See
R2021b: Sparse linear models for use with Control System Toolbox
R2020a: Axisymmetric analysis
You can now specify
AnalysisType for axisymmetric models.
Axisymmetric analysis simplifies 3-D thermal problems to 2-D using their symmetry
around the axis of rotation.