Main Content

ThermalModel

Thermal model object

Domain-specific heat transfer workflow is not recommended. New features might not be compatible with this workflow. For help migrating your existing code to the unified finite element workflow, see Migration from Domain-Specific to Unified Workflow.

Description

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.

Creation

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

Properties

expand all

Type of thermal analysis, specified as "steadystate", "transient", "modal", "steadystate-axisymmetric", "transient-axisymmetric", or "modal-axisymmetric".

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 description, specified as AnalyticGeometry for a 2-D geometry or DiscreteGeometry for a 2-D or 3-D geometry.

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

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

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

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

Finite element mesh, specified as an FEMesh object. You create the mesh by using the generateMesh function.

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)

Inputs for a linearized model, specified 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, specified 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, specified 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 geometry from STL or STEP file
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 structural analysis, heat transfer, or electromagnetic analysis problem
reduceReduce structural or thermal model
linearizeLinearize structural or thermal model
linearizeInputSpecify inputs to linearized model
linearizeOutputSpecify outputs of linearized model

Examples

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;
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.

internalHeatSource(thermalmodel,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.

thermalIC(thermalmodel,25);
thermalIC(thermalmodel,100,"Edge",4)
ans = 
  GeometricThermalICs with properties:

            RegionType: 'edge'
              RegionID: 4
    InitialTemperature: 100

Specify the Stefan-Boltzmann constant.

thermalmodel.StefanBoltzmannConstant = 5.670367e-8;

Generate the mesh.

generateMesh(thermalmodel)
ans = 
  FEMesh with properties:

             Nodes: [2x1529 double]
          Elements: [6x728 double]
    MaxElementSize: 0.1131
    MinElementSize: 0.0566
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

thermalmodel now contains the following properties.

thermalmodel
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 History

Introduced in R2017a

expand all