Main Content

ThermalModel

(To be removed) Thermal model object

ThermalModel will be removed. Use femodel instead. (since R2023a) For more information on updating your code, see Version History.

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
thermalProperties(To be removed) Assign thermal properties of a material for a thermal model
internalHeatSource(To be removed) Specify internal heat source for a thermal model
thermalBC(To be removed) Specify boundary conditions for a thermal model
thermalIC(To be removed) Set 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
linearize(To be removed) Linearize structural or thermal model
linearizeInput(To be removed) Specify inputs to linearized model
linearizeOutput(To be removed) Specify 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: [1×1 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: [4×2 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: []
               InternalBC: []

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: [2×1529 double]
          Elements: [6×728 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: [1×1 AnalyticGeometry]
         MaterialProperties: [1×1 MaterialAssignmentRecords]
                HeatSources: [1×1 HeatSourceAssignmentRecords]
    StefanBoltzmannConstant: 5.6704e-08
         BoundaryConditions: [1×1 ThermalBCRecords]
          InitialConditions: [1×1 ThermalICRecords]
                       Mesh: [1×1 FEMesh]
              SolverOptions: [1×1 pde.PDESolverOptions]

Version History

Introduced in R2017a

expand all