BicubicSplineFunction

Define a bicubic spline function from interpolated data defined by input parameters.

The BicubicSplineFunction defines a 2D spline shape, which can be evaluated everywhere in the domain by translation. The 2D plane for defining the spline is set by specifying the normal parameter.

The spline is uniquely defined by:

  • its values the 2D plane at the (x1, x2) points, given by the y parameter. The points form a 2D grid, which each x1 being the abscissa for a line in this grid, with points at each x2 specified

  • its derivatives along x1 and x2 at the points on each extremity, given by yx11, yx1n, yx21, yx2n

  • a functional form for the derivative along both directions, given by yx1 and yx2

From this information the bicubic spline is automatically generated. Both the first and second order derivatives of the spline are defined.

Example input syntax

In this example, we define a bicubic spline from a list of points and derivatives. The z normal is assumed by default and the bicubic spline is defined in the XY plane. The grid for the points has 3 points along the x direction and 4 points along the y direction.

[Functions]
  [./yx1]
    type = ParsedFunction
    expression = '3*x^2'
  [../]
  [./yx2]
    type = ParsedFunction
    expression = '6*y^2'
  [../]
  [./spline_fn]
    type = BicubicSplineFunction
    x1 = '0 2 4'
    x2 = '0 2 4 6'
    y = '0 16 128 432 8 24 136 440 64 80 192 496'
    yx11 = '0 0 0 0'
    yx1n = '48 48 48 48'
    yx21 = '0 0 0'
    yx2n = '216 216 216'
    yx1 = 'yx1'
    yx2 = 'yx2'
  [../]
  [./u_func]
    type = ParsedFunction
    expression = 'x^3 + 2*y^3'
  [../]
  [./u2_forcing_func]
    type = ParsedFunction
    expression = '-6*x - 12*y'
  [../]
[]
(moose/test/tests/utils/spline_interpolation/bicubic_spline_interpolation.i)

Input Parameters

  • x1The first independent coordinate.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The first independent coordinate.

  • x2The second independent coordinate.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The second independent coordinate.

  • yThe dependent values

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The dependent values

Required Parameters

  • normal_componentzThe component of the geometry that is normal to the spline x1/x2 values

    Default:z

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:x, y, z

    Controllable:No

    Description:The component of the geometry that is normal to the spline x1/x2 values

  • yx11e30The functional form of the derivative with respect to x1.

    Default:1e30

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:The functional form of the derivative with respect to x1.

  • yx11The values of the derivative wrt x1 on the lower interpolation grid points.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of the derivative wrt x1 on the lower interpolation grid points.

  • yx1nThe values of the derivative wrt x1 on the upper interpolation grid points.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of the derivative wrt x1 on the upper interpolation grid points.

  • yx21e30The functional form of the derivative with respect to x2.

    Default:1e30

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:The functional form of the derivative with respect to x2.

  • yx21The values of the derivative wrt x2 on the lower interpolation grid points.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of the derivative wrt x2 on the lower interpolation grid points.

  • yx2nThe values of the derivative wrt x2 on the upper interpolation grid points.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of the derivative wrt x2 on the upper interpolation grid points.

Optional Parameters

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

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

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

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters