# 4.5.4. User Functions

User functions are 1D tables specified directly in the input file (at the Sierra scope) that can be used wherever generic expressions are available in Aria (e.g. material properties, boundary conditions, initial conditions, sources). These functions can be either piecewise linear (most common) or piecewise constant (step functions).

A user function is defined at the Sierra-level in the input file. Examples of piecewise linear and piecewise constant functions are shown below. Evaluations outside the table bounds are clipped to the table boundary, not extrapolated.

    Begin Sierra Aria

      # ...

      Begin Definition for Function spec_heat_ss304
        Type is Piecewise Linear
        Begin Values
          293.0  500
          433.0  800
        End Values
      End

    Begin Sierra Aria

      # ...

      Begin Definition for Function heat_flux
        Type is Piecewise Constant
        Begin Values
          0.0  0
          1.0  500
        End Values
      End

These functions can be used for material properties using the `user_function` model:

    specific heat = user_function name = spec_heat_ss304 X = temperature

or in boundary conditions or other places with a similar syntax:

    BC Flux for energy on surface_1 = user_function name = heat_flux X = time

The full set of syntax options for user functions can be found in the User Functions command reference section, which includes additional commands for scaling and offset options for both data columns and several less commonly used options.