# PiecewiseMulticonstant

The PiecewiseMulticonstant function provides the capability of multi-dimensional piecewise constant interpolation. The data is read from file provided in the data_file argument. Interpolation axes can be a selection of one or multiple of x, y, z, t, the number of interpolation axes is referred to as dimension of the interpolation.

Formatting instructions for the data_file (reproduced from data_file docstring): any empty line and any line beginning with # are ignored, all other lines are assumed to contain relevant information. The file must begin with specification of the grid. This is done through lines containing the keywords: AXIS X; AXIS Y; AXIS Z; or AXIS T. Immediately following the keyword line must be a space-separated line of real numbers which define the grid along the specified axis. These data must be monotonically increasing. After all the axes and their grids have been specified, there must be a line that is DATA. Following that line, function values are given in the correct order (they may be on individual lines, or be space-separated on a number of lines). When the function is evaluated, f(i,j,k,l) corresponds to the i + j*Ni + k*Ni*Nj + l*Ni*Nj*Nk data value. Here i>0 corresponding to the index along the first AXIS, j>0 corresponding to the index along the second AXIS, etc, and Ni = number of grid points along the first AXIS, etc.

The direction parameter controls whether the function takes the value of the abscissa of the user-provided point to the right or left of the value at which the function is evaluated. A direction has to be provided for each dimension.

PiecewiseMulticonstant performs constant interpolation on 1D, 2D, 3D or 4D data. The data_file specifies the axes directions and the function values. If a point lies outside the data range, the appropriate end value is used.

## Input Parameters

• data_fileFile holding data for use with PiecewiseMultiInterpolation. Format: any empty line and any line beginning with # are ignored, all other lines are assumed to contain relevant information. The file must begin with specification of the grid. This is done through lines containing the keywords: AXIS X; AXIS Y; AXIS Z; or AXIS T. Immediately following the keyword line must be a space-separated line of real numbers which define the grid along the specified axis. These data must be monotonically increasing. After all the axes and their grids have been specified, there must be a line that is DATA. Following that line, function values are given in the correct order (they may be on individual lines, or be space-separated on a number of lines). When the function is evaluated, f[i,j,k,l] corresponds to the i + j*Ni + k*Ni*Nj + l*Ni*Nj*Nk data value. Here i>=0 corresponding to the index along the first AXIS, j>=0 corresponding to the index along the second AXIS, etc, and Ni = number of grid points along the first AXIS, etc.

C++ Type:FileName

Options:

Description:File holding data for use with PiecewiseMultiInterpolation. Format: any empty line and any line beginning with # are ignored, all other lines are assumed to contain relevant information. The file must begin with specification of the grid. This is done through lines containing the keywords: AXIS X; AXIS Y; AXIS Z; or AXIS T. Immediately following the keyword line must be a space-separated line of real numbers which define the grid along the specified axis. These data must be monotonically increasing. After all the axes and their grids have been specified, there must be a line that is DATA. Following that line, function values are given in the correct order (they may be on individual lines, or be space-separated on a number of lines). When the function is evaluated, f[i,j,k,l] corresponds to the i + j*Ni + k*Ni*Nj + l*Ni*Nj*Nk data value. Here i>=0 corresponding to the index along the first AXIS, j>=0 corresponding to the index along the second AXIS, etc, and Ni = number of grid points along the first AXIS, etc.

• directionDirection to look to find value for each interpolation dimension.

C++ Type:MultiMooseEnum

Options:left right

Description:Direction to look to find value for each interpolation dimension.

### Optional Parameters

• control_tagsAdds user-defined labels for accessing object parameters via control logic.

C++ Type:std::vector

Options:

Description:Adds user-defined labels for accessing object parameters via control logic.

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Options:

Description:Set the enabled status of the MooseObject.