Main Content


Thermal model object


A 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 conditions.


Create a ThermalModel object using createpde with the first argument 'thermal'.


expand all

Type of thermal analysis, returned as 'steadystate', 'transient', 'steadystate-axisymmetric', or 'transient-axisymmetric'.

Geometry description, returned as AnalyticGeometry for a 2-D geometry or DiscreteGeometry for a 2-D or 3-D geometry.

Material properties within the domain, returned as an object containing the material property assignments.

Heat source within the domain or subdomain, returned as an object containing heat source assignments.

Boundary conditions applied to the geometry, returned as an object containing the boundary condition assignments.

Initial temperature or initial guess, returned as an object containing the initial temperature assignments within the geometric domain.

Mesh for solution, returned as a FEMesh Properties object. You create the mesh using the generateMesh function.

Constant of proportionality in Stefan-Boltzmann law governing radiation heat transfer, returned 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)

Inputs for a linearized model, returned as a structure array. The inputs are used by the linearize that extracts a sparss (Control System Toolbox) model from a thermal model.

Inputs for a linearized model, returned as a structure array. The outputs are used by the linearize that extracts a sparss (Control System Toolbox) model from a thermal model.

Algorithm options for the PDE solvers, returned as a PDESolverOptions Properties object. The properties of PDESolverOptions include absolute and relative tolerances for internal ODE solvers, maximum solver iterations, and so on.

Object Functions

geometryFromEdgesCreate 2-D geometry from decomposed geometry matrix
geometryFromMeshCreate 2-D or 3-D geometry from mesh
importGeometryImport 2-D or 3-D geometry from STL data
thermalPropertiesAssign thermal properties of a material for a thermal model
internalHeatSourceSpecify internal heat source for a thermal model
thermalBCSpecify boundary conditions for a thermal model
thermalICSet initial conditions or initial guess for a thermal model
generateMeshCreate triangular or tetrahedral mesh
solveSolve heat transfer, structural analysis, or electromagnetic analysis problem


collapse all

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;
ans = 
  AnalyticGeometry with properties:

       NumCells: 0
       NumFaces: 1
       NumEdges: 4
    NumVertices: 4
       Vertices: [4x2 double]

Assign material properties.

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 25 W/m^3.

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.

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 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]

Introduced in R2017a