Use a function handle to specify these thermal parameters when they depend on
space, temperature, and time:

Thermal conductivity of the material

Mass density of the material

Specific heat of the material

Internal heat source

Temperature on the boundary

Heat flux through the boundary

Convection coefficient on the boundary

Radiation emissivity coefficient on the
boundary

Initial temperature

For example, use function handles to specify the thermal conductivity, internal heat source,
convection coefficient, and initial temperature for this model.

The function must be of the form:

The solver passes the `location`

and `state`

data to your
function:

`location`

— A structure containing these fields:

`location.x`

— The *x*-coordinate of the point
or points

`location.y`

— The *y*-coordinate of the point
or points

`location.z`

— For a 3-D or an axisymmetric geometry, the
*z*-coordinate of the point or points

`location.r`

— For an axisymmetric geometry, the
*r*-coordinate of the point or points

Furthermore, for boundary conditions, the solver passes these data in the
`location`

structure:

`location.nx`

— *x*-component of the
normal vector at the evaluation point or points

`location.ny`

— *y*-component of the
normal vector at the evaluation point or points

`location.nz`

— For a 3-D or an axisymmetric geometry,
*z*-component of the normal vector at the evaluation point or
points

`location.nz`

— For an axisymmetric geometry,
*z*-component of the normal vector at the evaluation point or
points

`state`

— A structure containing these fields for transient or
nonlinear problems:

`state.u`

— Temperatures at the corresponding points of the
location structure

`state.ux`

— Estimates of the
*x*-component of temperature gradients at the corresponding points of
the location structure

`state.uy`

— Estimates of the
*y*-component of temperature gradients at the corresponding points of
the location structure

`state.uz`

— For a 3-D or an axisymmetric geometry,
estimates of the *z*-component of temperature gradients at the
corresponding points of the location structure

`state.ur`

— For an axisymmetric geometry, estimates of the
*r*-component of temperature gradients at the corresponding points
of the location structure

`state.time`

— Time at evaluation points

Thermal material properties (thermal conductivity, mass density, and specific heat) and
internal heat source get these data from the solver:

`location.x`

, `location.y`

,
`location.z`

, `location.r`

Subdomain ID

`state.u`

, `state.ux`

, `state.uy`

,
`state.uz`

, `state.r`

,
`state.time`

Boundary conditions (temperature on the boundary, heat flux, convection coefficient, and
radiation emissivity coefficient) get these data from the solver:

`location.x`

, `location.y`

,
`location.z`

, `location.r`

`location.nx`

, `location.ny`

,
`location.nz`

, `location.nr`

`state.u`

, `state.time`

Initial temperature gets the following data from the solver:

For all thermal parameters, except for thermal conductivity, your function must return a row
vector `thermalVal`

with the number of columns
equal to the number of evaluation points, for example, ```
M =
length(location.y)
```

.

For thermal conductivity, your function must return a matrix
`thermalVal`

with number of rows equal to 1, `Ndim`

,
`Ndim*(Ndim+1)/2`

, or `Ndim*Ndim`

, where
`Ndim`

is 2 for 2-D problems and 3 for 3-D problems. The number of columns
must equal the number of evaluation points, for example, ```
M =
length(location.y)
```

. For details about dimensions of the matrix, see c Coefficient for specifyCoefficients.

If properties depend on the time or temperature, ensure that your function returns a matrix of
`NaN`

of the correct size when `state.u`

or
`state.time`

are `NaN`

. Solvers check whether a problem is
time dependent by passing `NaN`

state values and looking for returned
`NaN`

values.